BPMN vs CMMN Wait State and Criteria Evaluation

Note: I’m asking this question before trying to run any Case(s), just to try to understand better how CMMN and BPMN work with each other.

CMMN Flowable Open Source Documentation says that a Criteria is evaluated:

  • When a wait state plan item such as a human task is triggered to continue.

Let’s say I have a Process Task in a case running a BPMN Process, and this Process have several User Tasks and Intermediate Catch Events. AFAIK User Tasks and Catch Events have their own wait state, which lead to the question: is this wait state separate from CMMN wait state? I’m assuming they run on different engine, and since BPMN’s user tasks and catch events are not plan items they do not trigger criteria evaluation?

Again from Open Source Doc:
When the process task is blocking, the PlanItemInstance will be active until the process instance has completely finished. If the process task is non-blocking, the process instance is started and the plan item instance automatically completes. When the process instance ends there is no impact on the parent case.
Does this mean when the process with blocking state has a wait state (user task, catch/timer events), it will just stay in active state until the process reach an end event and terminated? And criteria(s) will be evaluated when the process task completes?

Hi jy006,

A great set of questions indeed.
Let me try to cover these individually:

is this wait state separate from CMMN wait state? Yes, the BPMN and CMMN engines are separate and hence "Wait States" are unique across models. In your scenario, is a Case instance calls an embedded process, the wait states in the embedded process are not considered in the case. Hence the case will wait for the embedded process to complete before it updates it's state to Completed. Does this mean when the process with blocking state has a wait state (user task, catch/timer events), it will just stay in active state until the process reach an end event and terminated? And criteria(s) will be evaluated when the process task completes?

In short, Yes. The Case plan item (the embedded process) will remain active until such time as the process completes or is terminated.

Hope this helps you.
Cheers,
Greg