Dynamically Start Parallel Process Instances in SAP BPM

Introduction: SAP BPM provides the myriad of possibilities to integrate and orchestrate between multiple systems and applications. The orchestration could be system-centric or human centric depending on the business requirements. However, the business requirements could pose an integration challenge that requires thorough knowledge of SAP BPM implementation. This article provides a unique insight on how to start multiple process instances

Challenge: Business requirement is such that message duplication and clustering of messages towards C4C application needs to be achieved. The situation is such that; for every process instance started, it has an intermediate timer event (ITE) of 5mins. During the 5mins duration, collect pattern with an intermediate message event (IME) is implemented to collect messages belonging to the same functional location.

Set-up and Configuration

  1. Create a BPM process development component in NWDS with below example (detailed steps on this will not be provided, other blogs have addressed this already)


2. Configure Message Start Event: Configure the message start event with service interface and leave the default condition.


3. Configure Intermediate Message Event: Configure the intermediate message event with a condition, this condition is defined dynamically, by comparing the incoming value in a specific field and a locally stored field in the Data Object (DO) while the process instance is running. All messages that match the stored “Functional location value” are collected and appended to the Data Object which is a list of value. If the condition on the IME is not fulfilled, the process server starts a new process instance.

Condition: string-equal(incomingString,locallyStoredStringInDO)


Conclusion: Prior to this blog, in the process of development, the information available were practically focused on defining conditions for intermediate message event based on a combination of fixed and dynamic values. This blog has highlighted the possibilities of defining conditions for message event dynamically and starting multiple instances of the same process in parallel.


Written by: Abidemi Olatunbosun

Contributions: Kas Timsi and Ronan Mol


To report this post you need to login first.


You must be Logged on to comment or reply to a post.

  1. Jun Wu

    for the start event,  what value you are comparing??????????? the process is not started, you say “while the process instance is running.”

    1. A. Olatunbosun Post author

      Hi Jun,

      Thanks for your observation, this has been updated for proper understanding.

      If you have additional comments, you could share them again.



        1. A. Olatunbosun Post author

          Please read well, to understand the blog, the condition for the intermediate message event is dynamic, as it is not harded coded, it changes per process instance. If the new incoming message does not satisfy the condition on the intermediate message event, a new process instance is started. I would advise the appropriate words are used if you want to drop comments.

          1. Jun Wu

            it is supposed to be like this.  no one is going to use a hardcoded value in IME.

            your blog tile is misleading also.

              1. Jun Wu

                you completely don’t understand BPM.

                That’s my comment. I know you are not comfortable being challenged.

                you can convey some basic stuff, it is not a problem

                but your blog title and content really don’t match.

                1. A. Olatunbosun Post author

                  perhaps You completely don’t understand basic stuffs about BPM, so fix that, I do not need to proof to you how many years have been building complex BPM processes.

                  People who read and understand do appreciate the blog.

  2. Fatih Pense

    Hi A. Olatunbosun,

    As I understand the BPM in the image, it is a collector pattern with deduplication capabilities?

    You call an EJB to handle deduplication. However, you are using EJB on the first message only. Can you explain that bit, please?

    Also, what do you mean by parallel process?

    Thanks for sharing your experience.



Leave a Reply