Table 10.94 – CompensationEventDefinition attributes and model associations

Attribute Name

Description/Usage

 

 

activityRef: Activity [0..1]

For a Start Event:

 

This Event “catches” the compensation for an Event Sub-Process. No further

 

information is REQUIRED. The Event Sub-Process will provide the Id necessary

 

to match the Compensation Event with the Event that threw the compensation,

 

or the compensation will have been a broadcast.

 

For an End Event:

 

The Activity to be compensated MAY be supplied. If an Activity is not supplied,

 

then the compensation is broadcast to all completed Activities in the current Sub-

 

Process (if present), or the entire Process instance (if at the global level).

 

For an Intermediate Event within normal flow:

 

The Activity to be compensated MAY be supplied. If an Activity is not supplied,

 

then the compensation is broadcast to all completed Activities in the current Sub-

 

Process (if present), or the entire Process instance (if at the global level). This

 

“throws” the compensation.

 

For an Intermediate Event attached to the boundary of an Activity:

 

This Event “catches” the compensation. No further information is REQUIRED. The

 

Activity the Event is attached to will provide the Id necessary to match the

 

Compensation Event with the Event that threw the compensation, or the

 

compensation will have been a broadcast.

 

 

waitForCompletion:

For a throw Compensation Event, this flag determines whether the throw

boolean = true

Intermediate Event waits for the triggered compensation to complete (the default),

 

 

or just triggers the compensation and immediately continues (the BPMN 1.2

 

behavior).

 

 

Conditional Event

Figure 10.77 shows the variations of Conditional Events.

Figure 10.77 – Conditional Events

The ConditionalEventDefinition 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.95 presents the additional model associations of the ConditionalEventDefinition element.

Figure 10.78 displays the class diagram for the ConditionalEventDefinition.

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

263

Figure 10.78 – ConditionalEventDefinition Class Diagram

The ConditionalEventDefinition 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.95 presents the additional model associations of the ConditionalEventDefinition element.

Table 10.95 – ConditionalEventDefinition model associations

Attribute Name

Description/Usage

 

 

condition: Expression

The Expression might be underspecified and provided in the form of natural

 

 

language. For executable Processes (isExecutable = true), if the trigger is

 

Conditional, then a FormalExpression MUST be entered.

Error Event

Figure 10.79 shows the variations of Conditional Events.

Figure 10.79 – Error Events

Figure 10.80 displays the class diagram for the ErrorEventDefinition.

264

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

Figure 10.80 – ErrorEventDefinition Class Diagram

The ErrorEventDefinition 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.96 presents the additional attributes and model associations of the ErrorEventDefinition element.

Table 10.96 – ErrorEventDefinition attributes and model associations

Attribute Name

Description/Usage

 

 

error: Error [0..1]

If the trigger is an Error, then an Error payload MAY be provided.

 

Escalation Event Definition

Figure 10.81 shows the variations of Escalation Events.

Figure 10.81 – Escalation Events

Figure 10.82 displays the class diagram for the EscalationEventDefinition.

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

265

Figure 10.82 – EscalationEventDefinition Class Diagram

The EscalationEventDefinition 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.97 presents the additional attributes and model associations of the EscalationEventDefinition element.

Table 10.97 – EscalationEventDefinition attributes and model associations

Attribute Name

Description/Usage

 

 

escalationRef: Escalation

If the trigger is an Escalation, then an Escalation payload MAY be

[0..1]

provided.

 

 

 

Link Event Definition

A Link Event is a mechanism for connecting two sections of a Process. Link Events can be used to create looping situations or to avoid long Sequence Flow lines. The use of Link Events is limited to a single Process level (i.e., they cannot link a parent Process with a Sub-Process).

Figure 10.83 shows the variations of Link Events.

Figure 10.83 – Link Events

Paired Link Events can also be used as “Off-Page Connectors” for printing a Process across multiple pages. They can also be used as generic “Go To” objects within the Process level. There can be multiple source Link Events, but there can only be one target Link Event. When used to “catch” from the source Link, the Event marker will be unfilled (see Figure 10.84: upper right). When used to “throw” to the target Link, the Event marker will be filled (see Figure 10.84: upper: lower Left).

266

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

Since Process models often extend beyond the length of one printed page, there is often a concern about showing how Sequence Flow connections extend across the page breaks. One solution that is often employed is the use of Off-Page connectors to show where one page leaves off and the other begins. BPMN provides Intermediate Events of type Link for use as Off-Page connectors (see Figure 10.84 --Note that the figure shows two different printed pages, not two Pools in one diagram). A pair of Link Events is used. One of the pair is shown at the end of one page. This Event is named and has an incoming Sequence Flow and no outgoing Sequence Flows. The second Link Event is at the beginning of the next page, shares the same name, and has an outgoing Sequence Flow and no incoming Sequence Flow.

Request Flights within Parameters

Travel

Order Request Rooms

within Parameters

Source

Link Event

Prepare and

Receive

Send Candidate

Confirmation

Itineraries

 

+

A

2 Days

Send Cancellation

Notice

Page 1

Target

Link Event

Book

Reservations

A

+

Charge

Send Confirmation

Buyer

 

Page 2

Figure 10.84 – Link Events Used as Off-Page Connector

Another way that Link Events can be used is as “Go To” objects. Functionally, they would work the same as for OffPage Connectors (described above), except that they could be used anywhere in the diagram on the same page or across multiple pages. The general idea is that they provide a mechanism for reducing the length of Sequence Flow lines.

Some modelers can consider long lines as being hard to follow or trace. Go To Objects can be used to avoid very long

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

267

Sequence Flows (see Figure 10.85 and Figure 10.86). Both diagrams will behave equivalently. For Figure 10.86, if the “Order Rejected” path is taken from the Decision, then the token traversing the Sequence Flow would reach the source Link Event and then “jump” to the target Link Event and continue down the Sequence Flow. The Process would continue as if the Sequence Flow had directly connected the two objects.

 

Order rejected

 

 

Requested

Ship Order

 

 

Order

 

 

 

 

 

Receive

Order

 

 

Order

accepted Fill Order

 

Close Order

Request

 

 

 

 

Send

Make

Accept

 

Invoice

Payment

Payment

 

Invoice

 

 

Figure 10.85 – A Process with a long Sequence Flow

 

To Close

 

 

To Close

Requested

Order rejected

Ship Order

 

 

Order

 

 

 

 

 

 

Receive

Order

 

 

 

Order

accepted

Fill Order

 

Close Order

Request

 

 

 

 

 

 

Send

Make

Accept

 

 

Invoice

Payment

Payment

Invoice

Figure 10.86 – A Process with Link Intermediate Events used as Go To Objects

Some methodologies prefer that all Sequence Flows only move in one direction; that is, forward in time. These methodologies do not allow Sequence Flows to connect directly to upstream objects. Some consistency in modeling can be gained by such a methodology, but situations that require looping become a challenge. Link Events can be used to make upstream connections and create loops without violating the Sequence Flow direction restriction (see Figure 10.87).

268

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