When a Start Event is not used, then all Flow Objects that do not have an incoming Sequence Flow SHALL be the start of a separate parallel path.

Each path will have a separate unique token that will traverse the Sequence Flow.

Message Flow Connections

NOTE: All Message Flows MUST connect two separate Pools. They MAY connect to the Pool boundary or to Flow Objects within the Pool boundary. They MUST NOT connect two objects within the same Pool.

See “Message Flow Connection Rules” on page 41 for the entire set of objects and how they MAY be a source or targets of a Message Flow.

A Start Event MAY be the target for a Message Flow; it can have zero (0) or more incoming Message Flows. Each Message Flow targeting a Start Event represents an instantiation mechanism (a trigger) for the Process. Only one of the triggers is REQUIRED to start a new Process.

A Start Event MUST NOT be a source for a Message Flow; it MUST NOT have outgoing Message Flows.

10.5.3 End Event

As the name implies, the End Event indicates where a Process will end. In terms of Sequence Flows, the End Event ends the flow of the Process, and thus, will not have any outgoing Sequence Flowsno Sequence Flow can connect from an End Event.

The End Event shares the same basic shape of the Start Event and Intermediate Event, a circle with an open center so that markers can be placed within the circle to indicate variations of the Event.

An End Event is a circle that MUST be drawn with a single thick line (see Figure 10.71).

The use of text, color, size, and lines for an End Event MUST follow the rules defined in “Use of Text, Color, Size, and Lines in a Diagram” on page 39 with the exception that:

The thickness of the line MUST remain thick so that the End Event can be distinguished from the Intermediate and Start Events.

Figure 10.71 – End Event

To continue discussing how flow proceeds throughout the Process, an End Event consumes a token that had been generated from a Start Event within the same level of Process. If parallel Sequence Flows targets the End Event, then the tokens will be consumed as they arrive. All the tokens that were generated within the Process MUST be consumed by an End Event before the Process has been completed. In other circumstances, if the Process is a SubProcess, it can be stopped prior to normal completion through interrupting Intermediate Events (See 10.2.2, “exception flow,” on page 274 for more details). In this situation the tokens will be consumed by an Intermediate Event attached to the boundary of the Sub-Process.

Semantics of the End Event include:

There MAY be multiple End Events within a single level of a Process.

Business Process Model and Notation (BPMN), v2.0.2

245

An End Event is OPTIONAL: a given Process level—a Process or an expanded Sub-ProcessMAY (is NOT REQUIRED to) have this shape:

If an End Event is not used, then the implicit End Event for the Process SHALL NOT have a Result. If there is a Start Event, then there MUST be at least one End Event.

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.

NOTE: A Process MAY have more than one Process level (i.e., it can include Expanded Sub-Processes or a Call Activity that call other Processes). The use of Start and End Events is independent for each level of the Diagram.

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.

End Event Results

There are nine types of End Events in BPMN: None, Message, Escalation, Error, Cancel, Compensation,

Signal, Terminate, and Multiple. These types define the consequence of reaching an End Event. This will be referred to as the End Event Result.

Table 10.88 – End Event Types

Trigger

Description

Marker

 

 

 

 

 

None

The None End Event does not have a defined result.

 

 

 

 

There is no specific EventDefinition subclass (see page 259) for

 

 

 

 

None End Events. If the End Event has no associated

 

 

 

 

EventDefinition, then the Event will be displayed without a marker

 

 

 

 

(see the figure on the right).

 

 

 

 

 

 

 

 

Message

This type of End indicates that a Message is sent to a Participant at the

 

 

 

 

conclusion of the Process. See page 91 for more details on Messages.

 

 

 

 

 

 

 

 

The actual Participant from which the Message is received can be

 

 

 

 

 

 

 

 

identified by connecting the Event to a Participant using a Message Flow

 

 

 

 

within the definitional Collaboration of the Process – see Table 10.1.

 

 

 

 

 

 

 

 

Error

This type of End indicates that a named Error should be generated. All

 

 

 

 

currently active threads in the particular Sub-Process are terminated as a

 

 

 

 

result. The Error will be caught by a Catch Error Intermediate Event with

 

 

 

 

the same errorCode or no errorCode which is on the boundary of the

 

 

 

 

nearest enclosing parent Activity (hierarchically). The behavior of the

 

 

 

 

Process is unspecified if no Activity in the hierarchy has such an Error

 

 

 

 

Intermediate Event. The system executing the process can define addi-

 

 

 

 

tional Error handling in this case, a common one being termination of the

 

 

 

 

Process instance.

 

 

 

 

 

 

 

 

246

Business Process Model and Notation (BPMN), v2.0.2

Table 10.88 – End Event Types

Escalation

This type of End indicates that an Escalation should be triggered. Other

 

 

active threads are not affected by this and continue to be executed. The

 

 

Escalation will be caught by a Catch Escalation Intermediate Event with

 

 

the same escalationCode or no escalationCode which is on the

 

 

boundary of the nearest enclosing parent Activity (hierarchically). The

 

 

behavior of the Process is unspecified if no Activity in the hierarchy has

 

 

such an Escalation Intermediate Event.

 

 

 

 

Cancel

This type of End is used within a Transaction Sub-Process. It will indi-

 

 

cate that the Transaction should be canceled and will trigger a Cancel

 

 

Intermediate Event attached to the Sub-Process boundary. In addition,

 

 

it will indicate that a TransactionProtocol Cancel Message should

 

 

be sent to any Entities involved in the Transaction.

 

Compensation

This type of End indicates that compensation is necessary. If an Activity

 

 

is identified, and it was successfully completed, then that Activity will be

 

 

compensated. The Activity MUST be visible from the Compensation

 

 

End Event, i.e., one of the following MUST be true:

 

 

• The Compensation End Event is contained in normal flow at the

 

 

same level of Sub-Process.

 

 

• The Compensation End Event is contained in a Compensation

 

 

Event Sub-Process that is contained in the Sub-Process

 

 

containing the Activity.

 

 

• If no Activity is identified, all successfully completed Activities

 

 

visible from the Compensation End Event are compensated, in

 

 

reverse order of their Sequence Flows. Visible means one of the

 

 

following:

 

 

• The Compensation End Event is contained in normal flow and at

 

 

the same level of Sub-Process as the Activities.

 

 

• The Compensation End Event is contained in a Compensation

 

 

Event Sub-Process that is contained in the Sub-Process

 

 

containing the Activities.

 

 

To be compensated, an Activity MUST have a boundary Compensation

 

 

Event or contain a Compensation Event Sub-Process.

 

 

 

 

Signal

This type of End indicates that a Signal will be broadcasted when the

 

 

End has been reached. Note that the Signal, which is broadcast to any

 

 

Process that can receive the Signal, can be sent across Process levels

 

 

or Pools, but is not a Message (that has a specific source and target).

 

 

The attributes of a Signal can be found on page 272.

 

Terminate

This type of End indicates that all Activities in the Process should be

 

 

immediately ended. This includes all instances of multi-instances. The

 

 

Process is ended without compensation or event handling.

 

 

 

 

Business Process Model and Notation (BPMN), v2.0.2

247