BPMN 2.0 FTF Avatar
  1. OMG Issue

BPMN2 — Semantics for data flow without sequence flow

  • Key: BPMN2-202
  • Legacy Issue Number: 14783
  • Status: closed  
  • Source: NIST ( Mr. Conrad Bock)
  • Summary:

    An activity with data flow input and no incoming sequence flows
    should be given an executable semantics. Then the modeler can focus
    on what data activities accept and provide, without the
    complications of sequencing activities. The semantics could apply
    when input data is taken only at the beginning of activity
    execution, and only from output data that is provided at the end of
    execution of a previous activity in the flow. This isn't the same
    as sequence flow with associated data, because each incoming token
    on a sequence flow "enables the activity independently" (see
    13.1.1. Sequence Flow Considerations). An inclusive merge semantics
    for multiple incoming sequence flows (as in
    <a href="http://www.osoa.org/jira/browse/BPMN-117),">http://www.osoa.org/jira/browse/BPMN-117),</a> helps, but doesn't work
    with mult-token activities or subgraphs in common cases (see
    <a href="http://www.osoa.org/jira/browse/BPMN-254)">http://www.osoa.org/jira/browse/BPMN-254)</a>.

  • Reported: BPMN 2.0b1 — Mon, 23 Nov 2009 05:00 GMT
  • Disposition: Resolved — BPMN 2.0
  • Disposition Summary:

    We propose to relax the sequence flow (SF) connection rules for activities. Any activity may or may not have incoming or outgoing SF, irrespective of the presence of
    start and end events. The semantics we propose for activities without incoming/outgoing SF is as follows:

    • each activity that does not have any incoming SF is triggered (ie receives an implicit token) upon instantiation of the containing (sub-) process
    • each activity that does not have any outgoing SF is treated as if it would be connected to an implicit undecorated end event.
      This requires the following changes to the spec document (referring to dtc/2009-08-14 ):
      in Sect. 10.2 Paragraph "Sequence Flow Connections"
    • in the sentence "If the Activity does not have an incoming Sequence Flow, and there is no Start Event for the Process, then the Activity MUST be instantiated when
      the Process is instantiated.", delete "and there is no Start Event for the Process,"
    • in the sentence "If the Activity does not have an outgoing Sequence Flow, and there is no End Event for the Process, then the Activity marks the end of one or more
      paths in the Process", delete "and there is no End Event for the Process"
      in Sect. 10.4.2 "Start event",
    • delete this:
      "If the Start Event is used, then there MUST NOT be other flow elements that do not have incoming Sequence Flow—all other Flow Objects MUST be a target of at
      least one Sequence Flow. u Exceptions to this are Activities that are defined as being Compensation Activities (have the Compensation Marker). Compensation
      Activities MUST NOT have any incoming Sequence Flow, even if there is a Start Event in the Process level. See page 314 for more information on Compensation
      Activities. u An exception to this is the Intermediate Event, which MAY be without an incoming Sequence Flow (when attached to an Activity boundary). "
      Change this:
      "If the Start Event is not used, then all Flow Objects that do not have an incoming Sequence Flow (i.e., are not a target of a Sequence Flow) SHALL be instantiated
      when the Process is instantiated. There is an assumption that there is only one implicit Start Event, meaning that all the starting Flow Objects will start at the same time.
      u Exceptions to this are Activities that are defined as being Compensation Activities (have the Compensation marker). Compensation Activities are not considered a
      part of the normal flow and MUST NOT be instantiated when the Process is instantiated. See page 314 for more information on Compensation Activities. "
      into this:
      "All Flow Objects that do not have an incoming Sequence Flow (i.e., are not a target of a Sequence Flow) SHALL be instantiated when the Process is instantiated.
      u Exceptions to this are Activities that are defined as being Compensation Activities (have the Compensation marker). Compensation Activities are not considered a
      part of the normal flow and MUST NOT be instantiated when the Process is instantiated. See page 314 for more information on Compensation Activities.
      in Sect. 10.4.3 "End event":
      Delete this:
      "If an End Event is used, then there MUST NOT be other flow elements that do not have any outgoing Sequence Flow—all other Flow Objects MUST be a source of
      at least one Sequence Flow.
      • Exceptions to this are Activities that are defined as being Compensation Activities (have the Compensation marker). Compensation Activities MUST NOT have any
      outgoing Sequence Flow, even if there is an End Event in the Process level. See page 314 for more information on Compensation Activities. "
      In this:
      "If the End Event is not used, then all Flow Objects that do not have any outgoing Sequence Flow (i.e., are not a source of a Sequence Flow) mark the end of a path in
      the Process. However, the Process MUST NOT end until all parallel paths have completed."
      delete "If the End Event is not used, then "
      in Sect. 14.2.1. "Sequence Flow Considerations"
      change this:
      "If an Activity has no incoming Sequence Flow, and there are no Start Events in the containing Process or Sub- Process, the Activity will be instantiated when the
      containing Process or Sub-Process is instantiated. Exceptions to this are Event Sub-Processes and Activities marked as Compensation Activities, as they have
      specialized instantiation behavior. "
      into this:
      "If an Activity has no incoming Sequence Flow, the Activity will be instantiated when the containing Process or Sub-Process is instantiated. Exceptions to this are
      Compensation Activities, as they have specialized instantiation behavior. "
      change this:
      "If the Activity has no outgoing Sequence Flow and there are no End Events in the containing Process or Sub- Process, the Activity will terminate and termination
      semantics for the container applied. "
      into this:
      "If the Activity has no outgoing Sequence Flow, the Activity will terminate without producing any tokens and termination semantics for the container is then applied. "
      Disposition: Resolved
  • Updated: Fri, 6 Mar 2015 20:57 GMT