CMMN 1.1 RTF Avatar
  1. OMG Issue

CR — Wrong manual activation default and missing defaults for ManualActivationRules, RequiredRules and RepetitionRules without condition

  • Key: CR-148
  • Status: open   Implementation work Blocked
  • Source: Camunda Services GmbH ( Mr. Falko Menge)
  • Summary:

    Problem Desciption

    The condition expression of ManualActivationRules, RequiredRules and RepetitionRules is optional as shown in Figure 5.13 (PlanItemControl class diagram) on page 50 (PDF 66).
    Therefore, CMMN has to define default behaviors for two cases:

    1. A ManualActivationRule, RequiredRule and RepetitionRule is not present at all
    2. A ManualActivationRule, RequiredRule or RepetitionRule is present, but has no condition expression defined.

    The following sentences seem to define a default for case 2 in Table 5.49 (PlanItemControl attributes and model associations) on page 50 (PDF 66):

    "A ManualActivationRule comprises of an Expression that MUST evaluate to boolean. If no ManualActivationRule is specified, then the default is considered “true.”"

    However, instead of defining the behavior for a missing condition expression (case 2), it talks about the marker itself and thereby accidentally makes all tasks and stages manual by default if they don't have the manual activation marker (case 1).
    This is completely contradicting the meaning of the manual activation marker: It would mean that a task can only be activated automatically, if it has a ManualActivationRule with a condition set to "false". By having a ManualActivationRule that task also gets the manual activation marker although it is activated automatically. On the other hand a task that has no ManualActivationRule would not get the manual activation marker although it is activated manually.

    Similar sentences are correct for case 1, but fail to define a default for case 2 in Table 5.49 (PlanItemControl attributes and model associations) on page 51 (PDF 67):

    "A RequiredRule comprises of an Expression that MUST evaluate to boolean. If no RequiredRule is specified, the default is “false.”"

    "A RepetitionRule comprises of an Expression that MUST evaluate to boolean. If no RepetitionRule object is specified, the default is “false.”"

    Furthermore, there is a cardinality mismatch between Tables 5.50, 5.51 & 5.52 and MM/XSD for conditions of ManualActivationRules, RequiredRules and RepetitionRules

    Recomendation

    This issue has been confirmed by people that worked in the CMMN specification. In particular: Mike Marin (IBM), Denis Gagné (Trisotech), Henk de Man (VDMbee), Ralf Mueller (Oracle) and Falko Menge (Camunda). They expect to see this issue fixed in the next CMMN version. In the meantime, they encourage all implementers and users of CMMN to read "false" instead of "true" in the description of attribute manualActivationRule in CMMN 1.1 Table 5.49 (PlanItemControl attributes and model associations), because the current specification text can lead to misinterpretations. Correct behavior is described in the following image:

    Proposal for Specification Text

    In Table 5.49 (PlanItemControl attributes and model associations) on page 50 (PDF 66):

    replace the following sentence:

    "If no ManualActivationRule is specified, then the default is considered “true.”"

    with:

    "If no ManualActivationRule is specified, then the default is considered “false.”"

    In Table 5.50 (ManualActivationRule attributes) on page 52 (PDF 68):

    Replace "Expression[1]" with "Expression[0..1]".
    Add the following sentence to the description of the attribute condition:

    "If no Expression is specified, then the default is considered “true.”"

    In Table 5.51 (RequiredRule attributes) on page 52 (PDF 68):

    Replace "Expression[1]" with "Expression[0..1]".
    Add the following sentence to the description of the attribute condition:

    "If no Expression is specified, then the default is considered “true.”"

    In Table 5.52 (RepetitionRule attributes) on page 53 (PDF 69):

    Replace "Expression[1]" with "Expression[0..1]".
    Add the following sentence to the description of the attribute condition:

    "If no Expression is specified, then the default is considered “true.”"

  • Reported: CMMN 1.1 — Mon, 4 Jul 2016 07:39 GMT
  • Updated: Wed, 13 Jul 2016 12:23 GMT