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.

A Message Intermediate Event MAY be the target for a Message Flow; it can have one incoming Message Flow.

A Message Intermediate Event MAY be a source for a Message Flow; it can have one outgoing Message Flow.

A Message Intermediate Event MAY have an incoming Message Flow or an outgoing Message Flow, but not both.

10.5.5 Event Definitions

Event Definitions refers to the triggers of Catch Events (Start and receive Intermediate Events) and the Results of Throw Events (End Events and send Intermediate Events). The types of Event Definitions are:

CancelEventDefinition, CompensationEventDefinition, ConditionalEventDefinition, ErrorEventDefinition, EscalationEventDefinition, MessageEventDefinition, LinkEventDefinition, SignalEventDefinition, TerminateEventDefinition, and

TimerEventDefinition (see Table 10.93). A None Event is determined by an Event that does not specify an Event Definition. A Multiple Event is determined by an Event that specifies more than one Event Definition. The different types of Events (Start, End, and Intermediate) utilize a subset of the available types of Event Definitions.

Table 10.93 – Types of Events and their Markers

Types

Start

 

 

Intermediate

End

Top-

Event

Event

Catching

Boundary

Boundary

Throwing

Level

Sub-Process

Sub-Process

 

Interrupting

Non-

 

 

Interrupting

Non-

 

 

Interrupting

 

 

 

Interrupting

 

 

 

 

None

Message

Timer

Error

Escalation

Cancel

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

259

Table 10.93 – Types of Events and their Markers

Types

Start

 

 

Intermediate

End

Top-

Event

Event

Catching

Boundary

Boundary

Throwing

Level

Sub-Process

Sub-Process

 

Interrupting

Non-

 

 

Interrupting

Non-

 

 

Interrupting

 

 

 

Interrupting

 

 

 

 

Compensation

Conditional

Link

Signal

Terminate

Multiple

Parallel

Multiple

The following sub clauses will present the attributes common to all Event Definitions and the specific attributes for the Event Definitions that have additional attributes. Note that the Cancel and Terminate Event Definitions do not have additional attributes.

Event Definition Metamodel

Figure 10.73 shows the class diagram for the abstract class EventDefinition. When one of the EventDefinition sub-types (e.g., TimerEventDefinition) is defined it is contained in Definitions, or a contained

EventDefinition contained in a throw/catch Event.

260

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

Figure 10.73 – EventDefinition Class Diagram

The EventDefinition element inherits the attributes and model associations of BaseElement (see Table 8.5) through its relationship to RootElement, but does not contain any additional attributes or model associations.

The ErrorEventDefinition, EscalationEventDefinition, and SignalEventDefinition subclasses comprise of attributes to carry data. The data is defined as part of the Events package. The MessageEventDefinition subclass comprises of an attribute that refers to a Message which is defined as part of the Collaboration package.

The following sub clauses will present the sub-types of EventDefinitions.

Cancel Event

Cancel Events are only used in the context of modeling Transaction Sub-Processes (see page 176 for more details on Transactions). There are two variations: a catch Intermediate Event and an End Event.

The catch Cancel Intermediate Event MUST only be attached to the boundary of a Transaction SubProcess and, thus, MAY NOT be used in normal flow.

The Cancel End Event MUST only be used within a Transaction Sub-Process and, thus, MAY NOT be used in any other type of Sub-Process or Process.

Figure 10.74 shows the variations of Cancel Events.

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

261

Figure 10.74 – Cancel Events

The CancelEventDefinition element inherits the attributes and model associations of BaseElement (see Table 8.5) through its relationship to the EventDefinition element (see page 259).

Compensation Event

Compensation Events are used in the context of triggering or handling compensation (see page 301 for more details on compensation). There are four variations: a Start Event, both a catch and throw Intermediate Event, and an End Event.

The Compensation Start Event MAY NOT be used for a top-level Process. The Compensation Start Event MAY be used for an Event Sub-Process.

The catch Compensation Intermediate Event MUST only be attached to the boundary of an Activity and, thus, MAY NOT be used in normal flow.

The throw Compensation Intermediate Event MAY be used in normal flow.

The Compensation End Event MAY be used within any Sub-Process or Process. Figure 10.75 shows the variations of Compensation Events.

Figure 10.75 – Compensation Events

Figure 10.76 displays the class diagram for the CompensationEventDefinition.

Figure 10.76 – CompensationEventDefinition Class Diagram

The CompensationEventDefinition element inherits the attributes and model associations of BaseElement (see Table 8.5) through its relationship to the EventDefinition element (see page 259). Table 10.94 presents the additional attributes and model associations of the CompensationEventDefinition element.

262

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