Hi,
Is there a way to execute a process model in a serial fashion?
We have a process model with multiple sub processes and the subscription trigger is set to serial.
When the receiving document is published multiple times, multiple instances of the process model start.
The requirement is to wait until the first instance of the model is complete and then start the next one.
Otherwise, you’d have to manage messages outside of your process (which removes transparency from your design) or use synchronizing signals in to the process (which adds unneeded complexity).
Each business process all by itself is unique. So each process instance getting created is unique and shouldn’t be causing any problem if you have one instance created after the other or concurrently creating the instances like 10 max as per trigger settings in the subscription Filter.
If you don’t want the process instances to be created concurrently then you have to re-design the solution looks like, control the publishing part and check the status of the process by some functionality and then publish another. I don’t recommend such a thing though.
I thought the subscription trigger setting changed to serial should have helped your cause but looks like it isn’t for some reason. I never tried this though as there was no such requirement.
no, setting the subscription trigger to serial only guarantees that the instances are started in the correct order, but it does not check whether the first instance is completed before starting the next one.
If this is a real requirement that the first instance is completed before starting the next one, you will require a synchronisation outside of the BPM. We are using InputGates and MessageDeliveryLayers (MDL) for this usecase where the InputGate waits for the Reply of the MDL before publishing the next document to the ProcessEngine.
Thanks for correcting me. I thought the process instance subscription trigger will behave like regular trigger. Actually making process instance serial should be handled outside then as you said
the transactions between the steps are handled by the transaction trigger.
Therefore the subscription trigger is not aware of the state of the process instances.