|For a large SAP BPM project, we created a proof of concept to investigate the response times of 2 separate SAP systems, being called synchronously in 1 BPM process. An important BPM flow object is the parallel split, to execute certain flows in parallel.|
|As the objects definition states, passes on sequence flow unconditionally to all outgoing gates in parallel, the process is executed in parallel. Or not?|
First, we bumped into OSS note 1676083. This note states that BPM process instances are being executed in sequence even though they are modeled with BPM artifacts implying a parallel semantic. Secondly, when we investigated the Message Monitoring, we saw the messages being executed one after the other. Sequentially.
The solution SAP proposes in the OSS note, to avoid BPMN patterns relying on parallel synchronous execution, obviously does not fulfill our needs and requirements. Also, we wanted to stick to synchronous calls to the different SAP systems.
The only solution we found feasible was building a Sync-Async bridge, in separate processes.
In this case we noticed though, that the overhead time of creating the processes for the Sync -Async bridge is considerable, so this scenario is only suitable for synchronous calls which take a considered amount of time themselves. It is not ideal for performing fast web services calls to different (SAP) applications. But at the end, the effort of creating sub processes is worth it to have real parallel calls in the BPM process.