March 17, 2003


BPMN Working Group: Specification Changes For BPMN 0.9.1 R2*

Note: The information presented here represents changes that are being made to the specification between BPMN 0.9.1 R1, which was released to the general public, and BPMN 0.9.1 R2, which will be released to the Working Group at a later date. Very minor typographical or language changes are not listed.

Use of Keywords

The last version of the specification was not very thorough in the use of keywords such as "MUST" and "MAY" when describing the semantics of BPMN elements. All these types of statements were reviewed and the text was modified to apply better use of these keywords.

For example:

  • "If there is a Start Event, then there MUST has to be at least one End Event."

Most of the paragraphs in which these modifications were done are bulleted paragraphs using this type of bullet of four dots in the shape of a diamond or the changes were made in the tables defining the attributes of a modeling object. There were many changes and all of the changes are not presented here. A new version of the specification will be posted at a later date for the members of the working group to review.

Headers and Footers

Added:

  • To right Header: Heading 1 text and Heading 3 text
  • To left Header: Heading 2 text and Heading 3 text

Removed:

  • The date from the Header.

 

Section 2: BPMN Overview

BPMN Scope

Diagram Point of View

Changed:

  • In the first paragraph: "At runtime, the difference between internal and external activities is important in how a Participant can view the status of the activities or trouble-shoot any problems."

 

Section 3: Business Process Diagram Concepts

BPD Core Element Set

Core Element Table

Changed:

  • Decision is change to "Gate."
    • Description of Decision removed: "Decisions are locations within a business process where the flow of control can take two or more alternative paths."
    • Description of Gate added: "A Gate is used to control the divergence and convergence of multiple Sequence Flow. Thus, it will determine branching, forking, merging, and joining of paths. Icons within the diamond shape will indicate the type of behavior."
    • Figure changed so that Name is no longer in center. The figure is blank, but the Gate will have Icons.

BPD Complete Set

Complete Element Table

  • Various changes were made to the table to reflect the changes to the flow control mechanisms.

Flow Object Connection Rules

Sequence Flow Rules

Changed:

  • In the description, the fifth sentance: "The code letters are: 0 (No Connections); 1 (One Connection); M (Multiple Connections); and M(E) (Multiple Exclusive Connections)."
  • In the Connection Rules Table:
    • From Start Event was change from M (many) to 1-M.
    • From Sub-Process was change from M (many) to 0-M.
    • From Task was change from M (many) to 0-M.
    • Decision shape was changed to a more generic Gateway shape.
    • From Gateway was change from M(E) (many--exclusive) to 0-M.
    • From Intermediate Event was change from M (many) to 1-M.
    • To Sub-Process was change from M (many) to 1-M.
    • To Task was change from M (many) to 0-M.
    • To Gateway was change from M (many) to 0-M.
    • To End Event was change from M (many) to 1-M.

Section 4: Business Process Diagram Graphical Objects

Start Event

Initial Description

Added:

  • After the first sentance of the fourth paragraph: "The path of Tokens MUST be explicity traced through the network of Sequence Flow with a Process. There CANNOT be any implicit flow during the course of normal Sequence Flow."
  • After the first bullet element describing the semantics of the Start Event: "If a Process is complex and/or the starting conditions are not obvious, then a Start Event SHOULD be used."

Removed:

  • "A sub-process, which is a process within a process, if expanded to show its detail, MAY also have Start Events." [this statement was redundant because of an earlier semantic definition]

Attributes

Added:

  • Id: This is a unique ID that identifies the Start Event from other objects within the diagram.

 

Changed:

  • Name attribute defined as string.
  • Lane from 0 to 1 (?) to 0 to many (*) to handle a matrix organization of Lanes: "If the Pool has more than one Lane, then the LaneName must be added. There MAY be multiple Lanes listed if the Lanes are organized in matrix or overlap in a non-nested manner."
  • Description attribute defined as string.

 

Removed:

  • Outgoing Sequence Flow
  • Incoming Message Flow
  • Association

Message Flow Connections

Changed:

  • "The trigger attribute of the Start Event MUST must be set to "Message" or "Multiple" if there are any incoming Message Flows."

 

End Event

Initial Description

Added:

  • After the paragraph after Figure 4: "Semantics of the End Event include:"
  • "

End Event Results

Added:

  • To the End Event Types table: A new row before "Multiple."
    • Name: Terminate
    • Description: "This type of End indicates that there is a fatal error and that all activities in the Process should be immediately ended. The Process is ended without compensation or event handling."
    • Figure: shows the Terminate End Event.

 

Attributes

Added:

  • Id (string): This is a unique ID that identifies the End Event from other objects within the diagram.

 

Changed:

  • Name attribute defined as string.
  • Result: a new Result setting was added: Terminate
  • FlowCondition moved to text level 1
  • Complex moved to text level 2
  • Lane from 0 to 1 (?) to 0 to many (*) to handle a matrix organization of Lanes: "If the Pool has more than one Lane, then the LaneName must be added. There MAY be multiple Lanes listed if the Lanes are organized in matrix or overlap in a non-nested manner."
  • Description attribute defined as string.

 

Removed:

  • Incoming Sequence Flow
  • Outgoing Message Flow
  • Association

Mapping Execution languages

BPEL4WS

Added:

  • Before the last mapping (Multiple): A new mapping "Terminate: this will map to the terminate element."

BPML

Added:

  • Before the last mapping (Multiple): A new mapping "Terminate: TBD."

 

Intermediate Event

Intermediate Event Triggers

Changed:

  • First sentance: There are eight seven types of Intermediate Events in BPMN: Message, Timer, Process Error (exception), Compensate, Compensation, Rule, Link, and Multiple.

 

Attributes

Added:

  • Id (string): This is a unique ID that identifies the Intermediate Event from other objects within the diagram.

 

Changed:

  • Name attribute defined as string.
  • Lane from 0 to 1 (?) to 0 to many (*) to handle a matrix organization of Lanes: "If the Pool has more than one Lane, then the LaneName must be added. There MAY be multiple Lanes listed if the Lanes are organized in matrix or overlap in a non-nested manner."
  • Text for ProcessError: "If the Trigger is a Process Error, then the error code MAY can be supplied. If there is no error code, then any Error SHALL will trigger the Event. If there is an error code, then only an Error that matches the error code SHALL trigger the Event."
  • Description attribute defined as string.

 

Removed:

  • Incoming Sequence Flow
  • Outgoing Sequence Flow
  • Incoming Message Flow
  • Association

Sequence Flow Connections

Changed:

  • First Bullet: "If the Intermediate Event is not attached to the boundary of an activity, then it An Intermediate Event MAY be a target for a Sequence Flow; it can have one incoming Flow."
  • New Bullet after first Bullet: "

Mapping to BPEL4WS

Added:

  • For: If the Intermediate Event follows a Decision (e.g., is part of a pick): this will map to an onAlarm element within a pick.

The TimeDate attribute maps to the until attibute of the onAlarm.

The TimeCycle attribute maps to the for attibute of the onAlarm.

  • For: If the Intermediate Event is within the normal flow of the Process (but does not follow a Decision): this will map to a wait.

The TimeDate attribute maps to the until attibute of the wait.

The TimeCycle attribute maps to the for attibute of the wait.

Process

Attributes

Added:

  • Id (string): This is a unique ID that identifies the Process from other objects within the diagram.

 

Changed:

  • Name attribute defined as string.
  • Nested (Boolean) to Type (Embedded | Independent)
  • Description attribute defined as string.

 

Removed:

  • Incoming Message Flow
  • Target
  • Outgoing Message Flow
  • Source
  • Association

Sub-Process

Initial Description

Added:

  • New paragraph after Figure 10: "Expanded Sub-Process may be used for multiple purposes. They can be used to “flatten” a hierarchical process so that all detail can be shown at the same time. They are used to create a context for exception handling that applies to a group of activities (Refer to the section entitled “Exception Flow” on page 93 for more details). Compensations for transactions can be handled the similarly (Refer to the section entitled “Transaction Compensation Flow” on page 97 for more details)."
  • New paragraph after the above paragraph: "Expanded Sub-Process may be used as a mechanism for showing a group of parallel activities in a less-cluttered, more compact way. In Figure 11, activities “C” and “D” are enclosed in an unlabeled Expanded Sub-Process. These two activities will be performed in parallel. Notice that the Expanded Sub-Process does not include a Start Even or an End Event and the Sequence Flow to/from these Events. This usage of Expanded Sub-Processes for “parallel boxes” is the motivation for having Start and End Events being optional objects."
  • New figure after the above paragraph, which shows a "parallel" box.

 

Attributes

Added:

  • Id (string): This is a unique ID that identifies the Sub-Process from other objects within the diagram.

 

Changed:

  • Name attribute defined as string.
  • SubProcessType (Nested | Independent) to Type (Embedded | Reference)
  • LoopType decscription: "ForEach Loops require an expression, which specifies will be used to determine the number of instances."
  • LoopFlowCondition description: "The LoopFlowCondition, applied only to Parallel ForEach loops, acts the similarly is similar to the FlowCondition for the Sub-Process. A Loop Flow Condition of One means that the Token will continue past the Task after only on one of the Sub-Process instances has completed."
  • Lane from 0 to 1 (?) to 0 to many (*) to handle a matrix organization of Lanes: "If the Pool has more than one Lane, then the LaneName must be added. There MAY be multiple Lanes listed if the Lanes are organized in matrix or overlap in a non-nested manner."
  • FlowCondition description: "If there is more than one incoming Sequence Flow, then a Flow Condition MUST must be set. ..."
  • Description attribute defined as string.

 

Removed:

  • Incoming Sequence Flow
  • Outgoing Sequence Flow
  • Incoming Message Flow
  • Target
  • Outgoing Message Flow
  • FlowCondition
  • Complex (under FlowCondition)
  • Source
  • Association

Mapping to BPML

Changed:

  • “If the Sub-Process type is Nested Embedded …”

Task

Attributes

Added:

  • Id (string): This is a unique ID that identifies the Task from other objects within the diagram.

 

Changed:

  • Name attribute defined as string.
  • "None" was added as another possible setting for the Type attribute. This is for "dummy" activities.
  • FlowCondition moved to text level 1
  • Complex moved to text level 2
  • LoopType decscription: "ForEach Loops require an expression, which specifies will be used to determine the number of instances."
  • LoopFlowCondition description: "The LoopFlowCondition, applied only to Parallel ForEach loops, acts the similarly is similar to the FlowCondition for the Task. A Loop Flow Condition of One means that the Token will continue past the Task after only on one of the Task instances has completed."
  • Lane from 0 to 1 (?) to 0 to many (*) to handle a matrix organization of Lanes: "If the Pool has more than one Lane, then the LaneName must be added. There MAY be multiple Lanes listed if the Lanes are organized in matrix or overlap in a non-nested manner."
  • Instantiate description: "... This attribute MAY be set to true if the Task is the first activity after the Start Event or a starting activity if there is no Start Event. Mulitple Tasks MAY have this attribute set to True."
  • FlowCondition description: "If there is more than one incoming Sequence Flow, then a Flow Condition MUST must be set. ..."
  • Description attribute defined as string.

 

 

Removed:

  • Incoming Sequence Flow
  • Outgoing Sequence Flow
  • Incoming Message Flow
  • Outgoing Message Flow
  • Association

Mapping to BPML

Changed:

  •  “If the Time is Parallel, then the Task will be wrapped in an Nested Embedded Process …”

Gateways

  • This section was added to the chapter and the Decisions section was, as a block, was moved one level lower (e.g., Heading 2 is now Heading 3).
  • A new introduction was added.
  • The term "Gateway" was added throughout the document. It replaced or supplemented previous descriptions of controlling Sequence Flow.

Decisions (Branching)

  • The text "(Branching)" was added to this heading.

Changed:

  • The eighth sentance of the first paragraph: "Each Decision Alternative is paired with a single is a condition expression found within an outgoing Sequence Flow."
  • The last sentance of the first paragraph: "The Sequence Flows themselves act only as the path through which the Token travels; they do not have their own conditions that can determine whether they are traveled or not."
  • Figure 14 surrounding text was moved to the general description section for Gateways.

Removed:

  • The last sentance of the first paragraph: "The Sequence Flows themselves act only as the path through which the Token travels; they do not have their own conditions that can determine whether they are traveled or not."

Exclusive General Description

Changed:

  • The first sentance: "The Exclusive Decision has two or more outgoing Sequence Message Flows".

Attributes

Added:

  • Id (string): This is a unique ID that identifies the Decision from other objects within the diagram.
  • Name attribute defined as string added as a sub-attribute for (Data) Alternative.
  • Expression attribute defined as Expression added as a sub-attribute for (Data) Alternative.
  • Name attribute defined as string added as a sub-attribute for (Data) DefaultAlternative.

 

Changed:

  • Name attribute defined as string.
  • Description for DecisionType: "DecisionType is an attribute and is by default Data. Data types are the typical decision as seen in most flowcharts. Event types route the flow based on events, usually messages, that arrive from external sources."
  • (Data) Alternative attribute no longer defined as Expression
  • Description for (Event) Alternative attribute: “The Intermediate Events must be of type Message, Timer, Process Error, or Link.”
  • FlowCondition moved to text level 1
  • Complex moved to text level 2
  • Lane from 0 to 1 (?) to 0 to many (*) in order to handle a matrix organization of Lanes: "If the Pool has more than one Lane, then the LaneName must be added. There MAY be multiple Lanes listed if the Lanes are organized in matrix or overlap in a non-nested manner."
  • Description attribute defined as string.

 

Removed:

  • Incoming Sequence Flow
  • Association

Pool

Initial Description

Added:

  • A new figure showing “internal” activities without a Pool boundary and Message Flow to/from an “external” Pool. The figure is preceded by supporting text, including the definition that all BPDs contain at least one Pool, even if the boundaries are not displayed.

Changed:

  • To the second paragraph: "BPEL4WS also can define an abstract process, but from the point of view of a single participant."
  • Name attribute defined as string.
  • Owner attribute defined as string.
  • Description attribute defined as string.

Attributes

Added:

  • Id (string): This is a unique ID that identifies the Pool from other objects within the diagram.

 

Changed:

  • The SourcePool attribute and the SourceObject attribute were consolidated into a single attribute named Source, which is defined as ObjectName. The source can be a Pool or an object within a Pool.
  • The TargetPool attribute and the TargetObject attribute were consolidated into a single attribute named Target, which is defined as ObjectName. The target can be a Pool or an object within a Pool.

 

Removed:

  • Incoming Message Flow
  • Target
  • Outgoing Message Flow
  • Source
  • Association

Lane

Initial Description

Added:

  • A new figure showing “internal” activities without a Pool boundary and Message Flow to/from an “external” Pool. The figure is preceded by supporting text, including the definition that all BPDs contain at least one Pool, even if the boundaries are not displayed.

Changed:

  • To the first paragraph: "... Our examples place the name as a banner on the left side (for horizontal Pools) or at the top (for vertical Pools) on the other side of the line that separates the Pool name, however, this is not a requirement."
  • In the second paragraph: "... In addition, Lanes can be nested or defined in a matrix."

Attributes

Added:

  • Id (string): This is a unique ID that identifies the Lane from other objects within the diagram.
  • ParentLane (LaneName) to allow nested Lanes: ParentLane is an optional attribute that is used if the Lane is nested within another Lane. Nesting can be multi-level, but only the immediate parent is specified.

 

Changed:

  • Name attribute defined as string.
  • Description attribute defined as string.

 

Removed:

  • Association

Data Object

Attributes

Added:

  • Id (string): This is a unique ID that identifies the Data Object from other objects within the diagram.

 

Changed:

  • Name attribute defined as string.
  • Description attribute defined as string.

 

Removed:

  • Association

Text Annotation

Attributes

Added:

  • Id (string): This is a unique ID that identifies the Text Annotation from other objects within the diagram.

 

Removed:

  • Association

Section 5: Connecting Objects

Connecting Graphical Objects

Sequence Flow

Added:

  • A new paragraph within the introductory text; after Figure 24: "We have avoided the term “Control Flow” when referring the lines represented by Sequence Flow. The control of the starting of an activity is determined not only be Sequence Flow, but also by Message Flow (e.g., when a message arrives), in addition to other process factors, such as delays or timed activities. Thus, we are using a more specific term, “Sequence Flow,” since these lines do illustrate the sequence that activities will be performed."

Attributes

Added:

  • Id (string): This is a unique ID that identifies the Sequence Flow from other objects within the diagram.

 

Changed:

  • Source: from FlowObjectName to FlowObjectId
  • Target: from FlowObjectName to FlowObjectId

 

Removed:

  • Association

Message Flow

Attributes

Added:

  • Id (string): This is a unique ID that identifies the Message Flow from other objects within the diagram.

 

Removed:

  • SourceObject
  • TargetObject
  • Association

 

Changed:

  • Source Pool to Source (defined as ObjectId)
  • TargetPool to Target (defined as ObjectId)

Association

Attributes

Added:

  • Id (string): This is a unique ID that identifies the Association from other objects within the diagram.

 

Changed:

  • Source: from ObjectName to ObjectId
  • Target: from ObjectName to ObjectId

 

*Within quoted text: added text is indicated by blue underlined text; removed text is indicated by red strikethrough text.

Section 9: Open Issues

 

Added:

Removed:

  • Inclusive Decisions
  • Will Decisions have a mandatory default alternative?
  • Enhanced graphical mechanisms for forking, joining, and merging.
  • Expanding Flow Conditions so that multiple Tokens can proceed after a join. This is related to the use of a PassThrough property.
  • Using an Intermediate Event without interrupting an Event Context.
  • Spawning and Synchronizing Activities.
  •