Handling Order Supplements in Camunda process engine

Hello All ,

I am looking at a solution to build workflow to handle an order. Let’s say I initiate a process for V1 of the order . While he order is being fulfilled , there is a v2 order being triggered from the sales end point that has additional items in the order .
How to handle this situation in Camunda workflow ? Should I be triggering another process instance to handle the order supplement .
Should all the order supplements be handled with a different process flow ?
This scenario could fit in typical purchase order , or Telecom service fulfillment order .

Thanks in advance for suggestion on how to design the process .

Hi @amitsahoo

It completely depends on business demands.
You can follow two things here:

  1. Start another instance of the process
  2. Add a boundary event to that task of your process till where you can accept the orders.

For ex. If another order is in progress and it is still not in production, then your business allows to accept more orders on the same order I’d.

See this link for some real world bpmn 2.0 examples.

You can also visit below link for camunda best practices.


I hope it helps.


1 Like

Thanks Anmol.

I am trying to create a mental diagram of the process you mentioned but could not figure it out .
I have this process flow

So I can accept order supplements till I start the Activation call activity .
So if you could suggest how I could redesign the process for handling the supplement , that would be of immense help .

Thanks in advance

Hi @amitsahoo

See below high level model according to your requirement.

In your Process Model the task Validate Order, Create Account, Create Services (before activation activity) are common task for ever order that will come into pipeline. BPMN 2.0 standards suggests to use a call activity for the reusable blocks.

I am assuming all your actions before activation activity will be in a call activity as in the image i attached. Now there is a non interrupting boundary event which will catch the other orders in the same instance and redirect to the same call activity.
(As you want the different orders to be generated in the same instance/same running key. )

After the first call activity you can put a conditional flow to check whether the order is still in processing stage.

For that you can either maintain a counter or you can use inbuilt methods. Also Camunda is very rich in REST API’s, so you can use them via a script task/Service Task to the details about current running instance.

I believe this is your test model but its always best to follow the best practice naming standards.


1 Like