Skip to Content

Adapter Module Development. Set QoS EOIO with Queue Name based on XPath expression

This adapter module allow you to set EOIO QoS and Queue ID in sender channel (even it was configured as EO). Queue Id can be setted as fixed value, or as value from Payload (using XPath).

Module has two parameters: QueueName and XPath.

SenderChannel.PNG

Parameter QueueName is mandatory. Even you fill XPath parameter, you should set QueueName (with any non-empty value).

XPath example for PI message:

For example, we have this message:

<ns0:MT_1 xmlns:ns0='someuri'>
<item>
<ThisIsWillBeUsedForQueueName>1</ThisIsWillBeUsedForQueueName>
</item>
</ns0:MT_1>

Xpath is: //item/ThisIsWillBeUsedForQueueName

In the message Data log you will see (even it is EO sender channel):

    Quality of Service Exactly Once in Order

    Sequence ID : <value from your QueueName or XPath result>

Code of Module in the attachment (this is for PI 7.4, for others may be some differences)

Useful links to create Module:

http://scn.sap.com/community/pi-and-soa-middleware/blog/2014/08/08/pi-74–adapter-module-creation-using-ejb-30

And check comments 😉

ℹ Note: even you select XPI Libraries you can’t add Audit, cause in those libraries is missing one important file com.sap.aii.af.svc_api.jar

You can get it from PI server. Very very great blog for it: http://scn.sap.com/community/pi-and-soa-middleware/blog/2012/10/19/how-to-locate-java-library-resource-during-java-development-in-pi

Another useful link: http://wiki.scn.sap.com/wiki/display/NWTech/Custom+Adapter+Module+Development+-+SAP+PI+7.1

There I found how to get payload.

Have fun 🙂

PS. If you know, how to optimize it or do better – write in comments please. Thx

PPS. Another blog about : http://scn.sap.com/community/pi-and-soa-middleware/blog/2015/01/29/create-sap-pi-adapter-modules-in-ejb-30-standard

Useful links:

Adapter module: Set the file name from Payload using Regular Expression (Regex).

4 Comments
You must be Logged on to comment or reply to a post.