on 10-02-2009 3:32 PM
JMS -> PI -> SAP (no BPM at this moment)
MQ has data like this:
(1)
JMS ID : c1....afa
Data length: 40
Message data: 11abc
(2)
JMS ID : c1....afa
Data length: 60
Message data: 22xyz...
(3)
JMS ID : c1....afa
Data length: 10
Message data: 33fghad
I want above to read into PI as:
<?xml version="1.0" encoding="utf-8"?>
<ns:MT_data xmlns:ns="http://namespace">
<Recordset>
<Header>
<key>11</key>
<f1>abc</f1>
</Header>
<Line>
<key>22</key>
<f1>xyz</f1>
</Line>
<End>
<key>33</key>
<f1>fghad</f1>
</End>
</Recordset>
</ns:MT_data>
Followed help page http://help.sap.com/saphelp_nw04/Helpdata/EN/24/4cad3baabd4737bab64d0201bc0c6c/content.htm, with xml.conversionType as StructPlain2XML to configure sender JMS channel.
It is converting to XML messages (total 3) with first payload = Header, second payload=Line and 3rd payload=End.
I tried "Correlation Settings" under "Processing Tab" of sender JMS channel to bundle Q having same JMS id (JMS ID : c1....afa) , but no help. It is NOT compiling multiple Q message data to one XI payload.
Question:
Do I need to use BPM to collect JMS data with same JMS ID so that I get header, line and End structures?
Or
Any setting need to be done in JMS sender channel - to bundle multiple JMS message to one XI payload?
Thanks
Edited by: ravi shankar on Oct 2, 2009 4:32 PM
.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
FYI- used java program to group message from existing Q and placed the grouped message into new Q.
To benefit other users, here is the sample java code at http://www.wcsadmin.com/Code/ReadWriteMessage.java
I will be using BPM to group MQ messages as suggested instead of using java program to group the message.
Very useful information. Thanks and awarded points.
Hey Ravi,
As Shabz mentioned, BPM should help you in collecting your 3 JMS messages to creating a single payload out of it.
For this, you can use the BpmPatternCollectPayload pattern available under SAP BASIS SCV.
For more details : http://help.sap.com/saphelp_nwpi71/helpdata/EN/0e/56373f7853494fe10000000a114084/frameset.htm
Thanks,
Pooja Pandey
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
if those are multiple message coming in from JMS, then you will have to use a bpm to collect those message and then do the required transformation to extract and map values to the target field.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Shabarish. Thanks.
Follow-up question reg BPM.
Now there are 3 XI payloads (header, line, end). There are several header, line, end payloads.
How do I relate various XI payloads and form the needed recordset1 (header, line, end), recordset2 (header,line,end)....?
MQ has JMS ID set to same for header, line, end.
In BPM, is there a way to read JMS ID attribute (via PI correlation settings) and group the recordset?
Appreciate the help.
Correlation Settings
Set XI Conversation ID (ConversationID) To:
No value
If you choose this setting, the XI conversation ID is not set.
JMSMessageID (Uniqueness Is JMS-Provider-Dependent)
JMSCorrelationID (Uniqueness Is JMS-Sender-Dependent)
JMSProperty (Uniqueness Is JMS-Sender-Dependent)
Enter the JMS Property Name. This value is set for the XI message ID.
Stored JMSCorrelationId of request
User | Count |
---|---|
87 | |
23 | |
11 | |
9 | |
8 | |
5 | |
5 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.