cancel
Showing results for 
Search instead for 
Did you mean: 

Merging multiple responses to single response

Former Member
0 Kudos

Hi Experts,

I have scenario as follows. BPM triggers syndication from MDM, which will send a message to PI.

PI will send this to 2 systems (SAP and File system). Both target systems will send back responses to PI asynchronously.

PI needs to merge the two responses into one single response and should send it to BPM by triggering web service.

Please note that it might take 20 days or more in getting responses back from both systems (worst case scenario). The average volume is around 400 requests per month.

As per my knowledge we need to use ccBPM here.

1. What is the best way to handle this scenario considering all the four possibilities of responses from both systems (Success-Success, Success-Failure, Failure-Success and Failure-Failure)? How to merge the responses?

2. Is it OK to have the BPM process to be active for 20 odd days until it receives responses from both the systems?

Appreciate your inputs.

Regards,

Prasad

Accepted Solutions (0)

Answers (1)

Answers (1)

baskar_gopalakrishnan2
Active Contributor
0 Kudos

>2. Is it OK to have the BPM process to be active for 20 odd days until it receives responses from both the systems?

NO. I would recommend you to split the requirement into two parts.

Sending PI to two systems (SAP and File) asynchronously even without bpm possible... (seperate scenario)

Receiving response from two systems using BPM and do merge and pass it to the required system (seperate scenario)

No point in running BPM process instance to wait for twenty days to complete the interface flow.

How do you define or distinguish between success and failure response? You might use content based payload to see whether response is sucess or not?

hope that helps.

Former Member
0 Kudos

Hi Baskar,

Thanks for your response. Even with the approach you suggested the ccBPM process will be active for more than 20 days. If process has to collect responses from both systems, then it has to wait for that much period (1 system might send response immediately and another one might take 20 odd days to send the response).

Regards,

Prasad

Former Member
0 Kudos

Hi Prasad,

I would suggest you to rethink the solution. For instance with that:

asynch message like "Source -> PI -> Targets", and "Targets response -> PI -> My Tips", and "My Tips -> Web service".

1. PI -> send request to ext_1 and to ext_2.

2. ext_1 return back a response to PI when he want, and PI just produce a file in a temp folder like "FileResponseOfExt_1.xml".

3. ext_2 return back a response to PI when he want, and PI just produce a file in a temp folder like "FileResponseOfExt_2.xml".

4. and then do a "correlation" interface from "temp folder --> PI (BPM) --> Web service".

so two sender receiver (one per file), and in your BPM has to receive the TWO messages. If no, do nothing in your BPM, and finish your treatment. If you have two, then do two actions: move the two files from "temp folder", and do your mapping to merge two message to send it to web service.

Sender FILE commnication channel shoud have mode "test" (not delete the file or not delete).

GOAL : there is certainly some variant / improvement to do inside the BPM, but here the way: do not wait responses to merge them, but treat the responses only when you receive them. And it's only when you have the two responses (two temp files) that you can do the merging and call your web service. Decorelate, in the time, the response treatements.

I hope this help you.

mickael

Former Member
0 Kudos

Hello Prasad,

I am also into the same trouble. Currently we have designed a Syndicate - Send - Wait - Receive cycle for each system. By any chance were you able to deduce this problem? Generalize the flow in BPM?

Please reply.

Thanks.

Ganesh