BPMN 2.1 RTF Avatar
  1. OMG Issue

BPMN21 — Meaning of 'behavior' attribute on MultiInstanceLoopCharacteristics quite confusing

  • Key: BPMN21-276
  • Legacy Issue Number: 15911
  • Status: open  
  • Source: Fraunhofer FOKUS ( Mr. Marc-Florian Wendland)
  • Summary:

    The meaning of the 'behavior' attribute on the MultiInstanceLoopCharacteristics is quite confusing. It is told that:

    • 'None' should throw an event on each instance,
    • 'All' should throw no event at all

    It seems that None and All meaning have been swapped.

    I also think that oneBehaviorEventRef and noneBehaviorEventRef can be merged as they are exclusive, they will never both be filled.

    Another question: what Event will own (composition relationship) the EventDefinition that is referenced by oneBehaviorEventRef or noneBehaviorEventRef ?
    As far as I understood, an EventDefinition can be owned only by an Event.

    My proposed solution:
    1) Rewrite behavior: MultiInstanceBehavior meaning as following:

    behavior: MultiInstanceBehavior =

    { None | First | Each | Complex}

    The attribute behavior acts as a shortcut for specifying when events SHALL be thrown
    from an Activity instance that is about to complete. It can assume val-
    ues of None, One, All, and Complex, resulting in the following behav-
    • None: no Event is ever thrown; a token is produced after completion
    of all instances
    • First: the EventDefinition referenced through the oneEvent
    association will be thrown upon the first instance completing;
    • Each: the EventDefinition which is associated through the
    noneEvent association will be thrown for each instance
    • Complex: the complexBehaviorDefinitions are consulted to
    determine if and which Events to throw.

    For the behaviors of First and Each, a default
    SignalEventDefinition will be thrown which automatically carries
    the current runtime attributes of the MI Activity.
    Any thrown Events can be caught by boundary Events on the Multi-
    Instance Activity.

    3) Change oneBehaviorEventRef and noneBehaviorEventRef composition relationships
    Unless an answer is provided to the referred event definition ownership.

    2) Change the type of oneBehaviorEventRef and noneBehaviorEventRef to ThrowEvent
    Unless an answer is provided to the referred event definition ownership.

    4) Merge oneBehaviorEventRef and noneBehaviorEventRef into 'behaviorEventRef'

  • Reported: BPMN 2.0 — Tue, 4 Jan 2011 05:00 GMT
  • Updated: Fri, 6 Mar 2015 20:57 GMT