CMMN 1.1 RTF Avatar
  1. OMG Issue

CR — Evaluation/Re-evaluation of RequiredRule unclear - what does "maintained" mean?

  • Key: CR-23
  • Legacy Issue Number: 19588
  • Status: closed  
  • Source: Loydl Unternehmensberatung ( Harald Loydl)
  • Summary:

    In Table 7.8, Transition "create", the Description says: "The RepetitionRule and the RequiredRule Boolean expressions MUST be evaluated in this transition, and their Boolean values SHOULD be maintained for the rest of the life of the Stage or Task instance".

    In this Issue we are interested in the usage of the RequiredRule only.

    The first part is clear: "The [...] RequiredRule Boolean expression MUST be evaluated in this transition" - so far, so good.

    The second part of the sentence needs clarification: "and the Boolean values SHOULD be maintained for the rest of the life of the Stage or Task instance".

    Does this mean (1 OR 2):
    1) The Boolean expression of the RequiredRule is evaluated ONLY ONCE (in the 'create' transition) and then gets 'frozen' for the rest of the life cycle of the Stage or Task

    OR

    2) The Boolean expression is evaluated in the 'create' transition AND can be updated by re-evaluating the same RequiredRule-expression at some point(s) during the rest of the life of the Stage or Task? (The re-evaluation might be triggered by any event or item-transition in the case)

    Background:
    We would like to model an optional Task, which CAN turn to a required Task, while in the state 'Available' or 'Enabled' (because the parent-stage of this (Discretionary) Task is already Active).
    The change from optional to required is accomplished with a RequiredRule expression. In our case the change from an optional Task to a required Task should be triggered with an CaseFileItemTransition. Or put it simple: An optional Task changes "suddenly" to 'required' because somebody added a piece of data to the case.

    We would appreciate the clarification of the execution semantics of the RequiredRule.

  • Reported: CMMN 1.0 — Thu, 28 Aug 2014 04:00 GMT
  • Disposition: Resolved — CMMN 1.1
  • Disposition Summary:

    Fix termination criteria for stages

    This issue touches in three areas:
    First, RequiredRule is evaluated in the creation transition, but it is not clear if it is set only once.
    Second, there is a desire to have RequiredRule to be set after creation.
    Third, is that the termination criteria in table 7.8 (page 73) is inconsistent with page 79 section 7.6.1 Stage.autoComplete, table 7.12 Stage Instance termination criteria.

    Note that to solve the second area, we have two options:
    a- try to evaluate RequiredRule of all the milestones, stages, and tasks that are in available or in enabled, when the stage is going to complete. The problem here is that a stage may have a autoComplete false and so a human try to complete it and finds out it cannot be completed because a new required plan item is found. This does not seems right, in addition is expensive to evaluate
    b- evaluate RequiredRule when entering Available or Enabled states. Note that after the plan item reaches Active it is required by default, so we only concerned with Available and Enabled states. Today, we do it when it enters Available, so we just need to consider adding this extra evaluation to Enabled state. In the case described in this issue, this will satisfy the situation. The task transition to Available and RequiredRule evaluates to false, but then a new case file item is added to the case, that can trigger the sentry transition to Enabled (or to Active) and we can then evaluate again the RequiredRule. This seems the best option.

    Proposal

    1- We certainly need to fix the second issue
    2- We should also evaluate RequiredRule on entrance to Enabled state (if it is in "false")

    Page 72, Table 7.8, column 4, row 2 (enable, Available, Enabled): Add the following sentence (at the end):

    If the RequiredRule Boolean expression exists and the current value is "false", then it MUST be re-evaluated in this transition and its Boolean value SHOULD be maintained for the rest of the life of the Stage or Task instance.

    Page 73, Table 7.8, column 4, row 8 (complete, Active, Completed): Rewrite as follows:

    Transition when the Stage or Task instance completes normally. For a Stage instance, this means that all its child Task and Stage instances have reached a terminal or semi-terminal state (all child Task and Stage instances have reached disabled, terminated, completed, or fault). For a Stage instance the termination criteria described in table 7.12 "Stage instance termination criteria" must be satisfied. For a Task instance, this means its purpose has been accomplished (CaseTask instances have launched a new Case instance; ProcessTask instances have launched a Process instance and if output parameters are required, then the Case or Process instance has completed and returned the output parameters; HumanTask instances have been completed by a human; etc.)

    Page 73, Table 7.8, column 4, row 13 last row (re-enable, Disabled, Enabled): Add the following sentence (at the end):

    If the RequiredRule Boolean expression exists and the current value is "false", then it MUST be re-evaluated in this transition and its Boolean value SHOULD be maintained for the rest of the life of the Stage or Task instance.

  • Updated: Tue, 29 Mar 2016 15:06 GMT
  • Attachments: