Skip to Content

PI 7.1 BPM Multiple Receive steps without Correlation

Hi Experts,

I need to create a BPM, and this BPM can be triggered by two different messages. But, each message has to start a new BPM instance, without waiting for any other message.

I've tried to create a Fork Step putting each Receive step (start) in one single branch, but correlation is mandatory doing this way and i don't want to use it.

One possible solution is to raise an exception after each receive step, and catch the exception on a Exception Branch but I dont like it at all.

Has anyone faced a similar problem?

Thanks in advance.

Best regards,


Add comment
10|10000 characters needed characters exceeded

  • Follow
  • Get RSS Feed

4 Answers

  • Best Answer
    Apr 12, 2013 at 11:41 AM

    Hi David,

    for 2 starting messages you need from a logical point of view to define a correlation because otherwise the process engine cannot decide to add a message to an existing instance or starting a new one.

    You might use a dummy correlation but the logical problem remains.


    Add comment
    10|10000 characters needed characters exceeded

    • Hi,

      If the steps are independent of each other, then will it be possible for you to have two separate BPM's with a receive step in each. Is there some reason for which you have both these steps inside the same BPM?

  • avatar image
    Former Member
    Apr 12, 2013 at 03:17 PM

    Hi David,

    Instead of Using FORK, try using the Switch Step and define the variable for Switch as any one of the message's mandatory element that you want the BPM to process.

    Say we choose Message 1 - Employee - Name -> If the field is not empty then let the Switch go to Branch one (Default) and you can include all steps in this branch to process the Message 1.

    If the field is empty, we make the Switch to go to Branch 2 and here all the steps to process Message 2 should be included.

    Hope the above is helpful.

    Thanks & Regards,

    Tejas Bisen

    Add comment
    10|10000 characters needed characters exceeded

  • Apr 12, 2013 at 06:12 PM

    Probably you can use constant correlation.

    However, it is suggested to use constant correlation very carefully because this correlation is true for all running BPM instances.



    Add comment
    10|10000 characters needed characters exceeded

  • Apr 15, 2013 at 07:53 AM

    Thanks all for your replies.

    Adarsh: Use of 2 BPM's for the same process will be hard to maintain.

    Tejas: The problem is to put 2 receive steps, so at your solution I assume that you need one receive step with both messages. It could work but probably it's no so clear for monitoring purposes.

    Samiullah: Thanks, I've never heard about constant correlation, but in my scenario files are independent one from each other and I don't want BPM instances to be waiting.

    Finally, we've decided to let one single receive step at our BPM and put mappings outside that.

    Thanks to all.

    Add comment
    10|10000 characters needed characters exceeded