I was using the CMMN part of the bpmn.io modeler for the first time and found some strange behaviors. I have a case with a stage (obligatory) and a discretionary human task inside the stage. This human task has a sentry as activation criterion. I want to say that this optional task should only be activated, if another, also optional human task is finished. If the other task is in the same stage, everything works as expected. If I move the other task outside the stage, so that one task is inside and the other outside, the discretionary task is changed to an obligatory and I don’t know why. The case is more or less a “redraw” of Knut Hinkelmanns “Write Document” Case (http://knut.hinkelmann.ch/lectures/bpm2013-14/06_CMMN.pdf page 7)
could you please provide your diagram as a cmmn XML file? This would make it a lot easier for us to reproduce the problem. Thanks!
diagram (7).cmmn (22.8 KB)
Here you are.
Thanks for providing the diagram.
The diagram from the lecture slides seems to be based on an early beta state of the CMMN standard (even before 1.0 was released). Since then the standard has changed.
Regarding to version 1.1 of the CMMN standard, the OnPart (sentry) of a discretionary item, which refers to a standard event (transition) of another plan item, must reference to Items that are contained in the same stage as the discretionary item itself.
Therefore it is generally not recommended to connect OnPart-Sentries of discretionary items to plan items beyond the borders of the stage, which contains the discretionary item. Instead it is recommended to model stages with correlating milestones/stages, whose occurrence/completion activate the stages and the contained items and planning tables, instead of completed (discretionary) items.
We are of the opinion that the diagrams from the lecture slides may be outdated and should be reconsidered with the current standard specification in mind.
Another aspect is the behavior in cmmn-js (which is part of the Camunda Modeler). Something seems to be wrong when moving discretionary items connected to sentries. They change to non discretionary items even if they stay in the same scope. I opened an issue for that so we can investigate that.