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
- 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 checked again via the steps modelled in the process above, and only none-duplicated messages are collected and appended to the Data Object which is a list of values.
Note: If the condition on the IME is not fulfilled, the process server starts a new process instance, which means multiple process instances can be started in parallel for the period of the timer event
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