BPMN 2.1 RTF Avatar
  1. OMG Issue

BPMN21 — Some Tokens consumed by Complex Gateways don’t reach end nodes

  • Key: BPMN21-205
  • Legacy Issue Number: 15637
  • Status: open  
  • Source: craftware.net ( Eduardo Jara)
  • Summary:

    ANTECEDENTS:

    i) Chapter/Section 7.1.1. Page 27 (“Understanding the Behavior of Diagrams”), it says:
    “A Start Event generates a token that MUST eventually be consumed at an End Event. (which MAY be implicit if not graphically displayed).”.
    --------------------------------------------------------------------------

    ii) Chapter/Section 10.4.3. Page 254, it says:
    “All the tokens that were generated within the Process MUST be consumed by an End Event before the Process has been completed.”

    “For Processes without an End Event, a token entering a path-ending Flow Object will be consumed when the processing performed by the object is completed (i.e., when the path has completed), as if the token had then gone on to reach an End Event. When all tokens for a given instance of the Process are consumed, then the Process will reach a state of being completed.”
    --------------------------------------------------------------------------

    iii) Chapter/Section 10.4.3. Page 257, it says:
    “All tokens that are generated at the Start Event for that Process MUST eventually arrive at an End Event.”.
    --------------------------------------------------------------------------

    iv) Chapter/Section 13.1. Page 440, it says:
    “For a Process instance to become completed, all tokens in that instance MUST reach an end node, i.e., a node without outgoing Sequence Flows.”
    --------------------------------------------------------------------------

    COMMENTS:

    These statements are not entirely correct because Complex Gateways can consume tokens and do not generate an outgoing token. These token “are lost” before they could reach and end node, but the Process instance can become complete anyway.

    In the waiting-for-reset phase the Complex Gateway “consumes a token from each incoming Sequence Flow that has a token and from which it had not yet consumed a token in the first phase …the Gateway might not produce any tokens in this phase and no exception is thrown.” (Table 13.5, p.454).
    Then, the tokens are consumed by the Gateway and will never reach any end node. For example, this is the normal behavior of a 3-of-5 discriminator, where the last two tokens will be consumed by the Gateway and lost.

    SUGGESTION:

    State that in order to be completed all tokes in a Process instance MUS be consumed, which is usually (normally) achieved when the tokens reach end nodes.

  • Reported: BPMN 2.0 — Thu, 23 Sep 2010 04:00 GMT
  • Updated: Fri, 6 Mar 2015 20:57 GMT