CMMN: when are sentry conditions evaluated


#1

We have DMN tables that express if a case task should be possible (manual activation). They are called by a bean that is defined as IfPart condition of the sentry (${evaluationBean.evaluate(caseExecution, "activityId"}).

We had to solve the problem, that the transition available->enabled is handled by camunda, but the transition enabled->disabled has to be done manually (variable listener as trigger).

Now we have some cases where we would have expected a reevaluation of the DMN table for available->enabled, but it was not called.

I guess we need a better understanding when camunda evaluates sentry conditions (IfParts).
Can you clarify?


#2

Hi Jan,

The docs at https://docs.camunda.org/manual/7.9/reference/cmmn11/sentry/#ifpart say:

The engine evaluates IfParts at every lifecycle transition of a plan item contained in the sentry’s stage. That means, if an IfPart is not satisfied immediately when all OnParts have occurred, the sentry may still occur at any later lifecycle transition.

Cheers,
Thorben


#3

Does “create a new process variable” count as "lifecycle transition?
Will this still work when I use 7.9s “transient” variable?

If I disable a task, then its onPart is fulfilled and then I re-enable it, will the task be enabled?

So many questions … case task states sound so obvious …


#4

I think lifecycle transition refers to a transition in a plan item’s lifecycle as documented here: https://docs.camunda.org/manual/7.9/reference/cmmn11/concepts/lifecycle/