Skip to Content

How to build a message queue in SAP PO

I am working on a scenario in SAP PI that receives a synchronous SOAP request from an external system and needs to load that request via an RFC call into BW. A new requirement came up to to only allow a single SOAP request to be processed at a time, so no requests can be processed in parallel. Could somebody suggest a pattern for achieving something like this?

My approach was going to be to use BPM and immediately I ran into some problems. First, is PI able to synchronously call BPM, and if so, how can I configure a BPM end message to be a response to the original synchronous request that came into BPM from PI?

If the above is not possible, then i thought of using a Synch to Asynch bridge pattern. What i am still not sure about is how to restrict BPM to only process a single message at a time. Should i be using an intermediate event to receive, in this case, an asynchronous message from PI ?

As you can tell, i have a lot of questions. It would be great if someone could direct me on the right path.

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

2 Answers

  • May 04, 2017 at 07:21 AM

    Hi,

    You can look at the pattern BpmPatternMulticastSequential. The first step would be to open an SA bridge as it is a synchronous receive. Then you need to find a way to make a multiline message since you need the ForEach mode to have the message sequentially sent.

    Regards,

    Mark

    Add comment
    10|10000 characters needed characters exceeded

  • May 04, 2017 at 11:14 AM

    Hi Leo,

    Talk to your third party system who is calling PI hosted Web service to send SOAP request to PI. They will definitely have some application which is creating the request message and sending the same to PI. On their end, the approach is required to be like - one request is sent to PI; once response will come then they will create the 2nd request and send the same to PI.

    Thanks,

    Apu

    Add comment
    10|10000 characters needed characters exceeded