cancel
Showing results for 
Search instead for 
Did you mean: 

Message splitting in BPM ?

Former Member
0 Kudos

Hi Guys,

I have a proxy-soap scenario and i am using BPM to handle the asynchr-synchronus messages.

The request coming into xi has multiple transactions in a single xml file and i need to split them into individual transacrions.

I have created a multimapping and i am able to see a seperate messages for each individual transactions. I tried this inititaly with out BPM and able to see all the seperate messages.

when i use the same mapping in a Transformation step in BPM i am able to see sepeate messages for each transaction but all the messages has the data of the last transaction.

any help would be appreciated

Thanks,

srini

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Did you use a block to process multi-line item (splitted message), or you used just loop ? use a block is safe to process multi-line container element.

Liang

Former Member
0 Kudos

Hi Liang,

I have used block in ParForEach mode. If i send a file with 3 transacrions then i am able to see 3 messages, but all the messages has the data of the last transaction.

any help would be appreciated

Thanks,

srini

justin_santhanam
Active Contributor
0 Kudos

Srini,

Did u tested the mapping in Test tab? Are u getting the desired output.

raj.

Former Member
0 Kudos

Hi, Srini:

As Raj mentioned, I am assuming you have tested your multi-mapping in IR.

One thing I can suggest to change the block mode from ParForEach to ForEach, and create a block level container elements (Saying: current, it reference target abstract interface) and point it to the current value of multi-elements.

In your send step inside your block, using your block level containter element.

Liang

Former Member
0 Kudos

Hi Raj,

I have imported the wsdls both for the source and the target and once i have changed the occurance of the target from 0 to unbound the node Messages and Message 1 are added on the top for both the source and target.

you have previously replied to this concern and said at run time they will be removed and the incoming request mathches with the original wsdl.

I have tested this mapping with out BPM and i am able to see all the individual messages for each transaction seperately. Now i am using the same mapping in the BPM in a Transformation step and i see 3 messages but all of them have the data of the last transaction.

Thanks,

srini

Former Member
0 Kudos

Hi Raj,

I have just tested them in the message mapping by replacing the xml of the source under the Messages xml tag in the Test Tab and i am able to see all three different messages.

any help would be appreciated

Thanks,

srini

justin_santhanam
Active Contributor
0 Kudos

If you don't mind, could you send me the WSDL for souce and target.

raj.

Former Member
0 Kudos

Hi Liang,

I have created

block level container elements (Saying: current, it reference target abstract interface) and point it to the current value of multi-elements.

I was having all the container elements as process but there were no block level container elments and afrter defining those now i am able to see all the 3 independent messages with the message details of each transaction.

I appreciated the help and also apprecited the help of raj and you are really experts

Thanks,

srini

Former Member
0 Kudos

Hi Raj,

In my block step i am using a send step which is synchronus and then the reponse i am collecting using a container operation with the append.

Do i need to use the container element outside the block or inside ? ParForEachMode ?

which is better ParForEach or ForEach ?

can you explain a little more

Thanks,

srini

justin_santhanam
Active Contributor
0 Kudos

Srini,

The difference btw For Each and Par For Each is,

For Each first sends the request and wait for the response, once it got the response, then it will send the next message.

Par For Each

Let say if u have 3 messages, then it will send 3 messages simultaneously and wait for the responses. Here correlation comes into picture, where as For Each there is no issue.

I would say it depends on your scenario perspective,but I would prefer to use For-Each.

raj.

Former Member
0 Kudos

Hi Raj,

Thanks for the explanation and regarding the container step, do i need to use this within the Block step to collect all the responses and then append into a single response message

Thanks,

srini

justin_santhanam
Active Contributor
0 Kudos

Srini,

Yes, keep the container inside the block. Collect them using Container (Keep it as Multiline)

raj.

Former Member
0 Kudos

Glad to see your problem has been solved !

Liang

Answers (0)