Execute Process Model Sequentially

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.

Thanks in advance!!

Hi,

From your description, you have a single business process which processes incoming messages sequentially.

Something like this example (see the little marker on the bottom center of the “main thing” task):

Is it feasible to change your design?

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).

Best regards,

Hi Shiva,

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.

Regards,
Firoz N

Did you produce the process model with the Designer? It’s a nice image!

Hi,

I used bpmn.io which has a simpler interface but I could just as easily use Designer.

But I didn’t have a Designer installation on this machine and bpmn.io runs through the web.

maybe one day SAG decides to go to full web-based development so no installation is required (like Dell Boomi or Camunda)

Best regards,

Hi @Firoz,

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.

Regards,
Holger

1 Like

Hi @Holger_von_Thomsen,

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

Regards,
Firoz N

Hi,

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.

Regards,
Holger