Processes

Spec Page Spec Rule Text

157

An Activity MAY be a target for Sequence Flow; it can have multiple incoming*Sequence Flow*. Incoming Sequence Flow MAY be from an alternative path and/or parallel paths.

157

If the Activity does not have an incoming Sequence Flow then the Activity MUST be instantiated when the Process is instantiated.

157

There are two (2) exceptions to this: Compensation Activities and Event Sub-Processes.

157

An Activity MAY be a source for Sequence Flow; it can have multiple outgoing*Sequence Flow*. If there are multiple outgoing Sequence Flow, then this means that a separate parallel path is being created for each Sequence Flow (i.e., tokens will be generated for each outgoing Sequence Flow from the Activity).

157

If the Activity does not have an outgoing Sequence Flow, then the Activity marks the end of one or more paths in the Process. When the Activity ends and there are no other parallel paths active, then the Process MUST be completed.

157

There are two (2) exceptions to this: Compensation Activities and Event Sub-Processes.

157

An Activity MAY be a source for Message Flow; it can have zero or more outgoing Message Flow.

157

An Activity MAY be a source for Message Flow; it can have zero or more outgoing Message Flow.

159

[resourceRef attribute of Activity] Should not be specified when resourceAsisgnmentExpression [attribute from Resource] is provided

159

[resourceAssignmentExpression attribute of Activity] Should not be specified when a resourceRef [attribute from Resource] is provided.

160

A Task is a rounded corner rectangle that MUST be drawn with a single thin line.

160

The use of text, color, size, and lines for a Task MUST follow the rules defined in Section “Use of Text, Color, Size, and Lines in a Diagram” on page 41.

160

A boundary drawn with a thick line SHALL be reserved for Call Activity(Global Tasks).

160

A boundary drawn with a dotted line SHALL be reserved for Event Sub-Processes and thus are not allowed for Tasks.

160

A boundary drawn with a double line SHALL be reserved for Transaction Sub-Processes and thus are not allowed for Tasks.

161

The marker for a Task that is a standard loop MUST be a small line with an arrowhead that curls back upon itself.

161

The loop Marker MAY be used in combination with the compensation marker.

161

The marker for a Task that is a multi-instance MUST be a set of three vertical lines.

161

If the multi-instance instances are set to be performed in sequence rather than parallel, then the marker will be rotated 90 degrees.

161

The multi-instance marker MAY be used in combination with the compensation marker.

161

The marker for a Task that is used for compensation MUST be a pair of left facing triangles (like a tape player “rewind” button).

161

The Compensation Marker MAY be used in combination with the loop marker or the multi-instance marker.

161

All the markers that are present MUST be grouped and the whole group centered at the bottom of the shape.

162

A Service Task is a rounded corner rectangle that MUST be drawn with a single thin line and includes a marker that distinguishes the shape from other Task types.

163

A Send Task is a rounded corner rectangle that MUST be drawn with a single thin line and includes a filled envelope marker that distinguishes the shape from other Task types.

165

A Receive Task is a rounded corner rectangle that MUST be drawn with a single thin line and includes an unfilled envelope marker that distinguishes the shape from other Task types. If the instantiate attribute is set to true, the envelope marker looks like a Message Start Event

167

A User Task is a rounded corner rectangle that MUST be drawn with a single thin line and includes a human figure marker that distinguishes the shape from other Task types.

168

A Manual Task is a rounded corner rectangle that MUST be drawn with a single thin line and includes a hand figure marker that distinguishes the shape from other Task types.

168

A Business Rule Task is a rounded corner rectangle that MUST be drawn with a single thin line and includes a marker that distinguishes the shape from other Task types.

169

A Script Task is a rounded corner rectangle that MUST be drawn with a single thin line and includes a marker that distinguishes the shape from other Task types.

178

A Sub-Process is a rounded corner rectangle that MUST be drawn with a single thin line.

178

The use of text, color, size, and lines for a Sub-Process MUST follow the rules defined in Section “Use of Text, Color, Size, and Lines in a Diagram” on page 41 with the exception that:

178

A boundary drawn with a thick line SHALL be reserved for Call Activity(Sub-Processes).

178

A boundary drawn with a dotted line SHALL be reserved for Event Sub-Processes.

178

A boundary drawn with a double line SHALL be reserved for Transaction Sub-Processes.

178

The Sub-Process marker MUST be a small square with a plus sign (+) inside. The square MUST be positioned at the bottom center of the shape.

180

The marker for a Sub-Process that loops MUST be a small line with an arrowhead that curls back upon itself.

180

The loop marker MAY be used in combination with any of the other markers except the multi-instance marker.

180

The marker for a Sub-Process that has Multiple Instances MUST be a set of three vertical lines in parallel.

180

The multi-instance marker MAY be used in combination with any of the other markers except the loop marker.

180

The marker for an a*d-hoc Sub-Process* MUST be a “tilde” symbol.

180

The ad-hoc marker MAY be used in combination with any of the other markers.

180

The marker for a Sub-Process that is used for compensation MUST be a pair of left facing triangles (like a tape player “rewind” button).

180

The Compensation marker MAY be used in combination with any of the other markers.

180

All the markers that are present MUST be grouped and the whole group centered at the bottom of the Sub-Process.

182

An Event Sub-Process is a rounded corner rectangle that MUST be drawn with a single thin dotted line.

182

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

182

If the Event Sub-Process is collapsed, then its Start Event will be used as a marker in the upper left corner of the shape.

184

A Transaction Sub-Process is a rounded corner rectangle that MUST be drawn with a double thin line.

184

The use of text, color, size, and lines for a Transaction Sub-Process MUST follow the rules defined in Section “Use of Text, Color, Size, and Lines in a Diagram” on page 41.

186

The marker for an Ad-Hoc Sub-Process MUST be a “tilde” symbol.

186

The Ad-Hoc Marker MAY be used in combination with any of the other markers.

188

The list of BPMN elements that MAY be used in an Ad-Hoc Sub-Process: Data Object, Sequence Flow, Association, Data Association, Group, Message Flow(as a source or target), Gateway, and Intermediate Event.

190

If the Call Activity calls a Global Task, then the shape will be the same as a Task, but the boundary of the shape will MUST have a thick line.

190

The Call Activity MUST display the marker of the type of Global Task (e.g., the Call Activity would display the User Task marker if calling a Global User Task).

190

If the Call Activity calls a Process, then there are two (2) options:

190

The details of the called Process can be hidden and the shape of the Call Activity will be the same as a collpased Sub-Process, but the boundary of the shape MUST have a thick line.

190

If the details of the called Process are available, then the shape of the Call Activity will be the same as a expanded Sub-Process, but the boundary of the shape MUST have a thick line

192

The element to be called [by the Call Activity], which will be either a Process or a Global Task. Other CallableElements, such as Choreography, GlobalChoreography*Task*, Conversation, and GlobalCommunication MUST NOT be called by the Call Conversation Activity element.

197

The marker for a Task or a Sub-Process that is a standard loop MUST be a small line with an arrowhead that curls back upon itself.

197

The loop Marker MAY be used in combination with the Compensation Marker.

198

The marker for a Task or Sub-Process that is a multi-instance MUST be a set of three vertical lines.

198

If the multi-instance instances are set to be performed in parallel rather than sequential (the isSequential attribute set to false), then the lines of the marker will vertical.

198

If the multi-instance instances are set to be performed in sequence rather than parallel (the isSequential attribute set to true), then the marker will be horizontal.

198

The Multi-Instance marker MAY be used in combination with the Compensation marker.

212

Data Object elements MUST be contained within Process or Sub- Process elements

220

DataInputs have the same notation as DataObjects, except MUST contain a small, unfilled block arrow.

220

Data Inputs MAY have incoming Data Associations.

220

Only Data Inputs that are contained by Activities or Events MAY be the target of Data Associations in the model.

220

If the Process is being called from a Call Activity, the Data Associations that target the Data Inputs of the Call Activity in the underlying model MAY be visualized such that they connect to the corresponding Data Inputs of the called Process, visually crossing the Call Activity boundary. But note that this is visualization only. In the underlying model, the Data Associations target the Data Inputs of the Call Activity and not the Data Inputs of the called Process.

222

DataOutputs have the same notation as DataObjects, except MUST contain a small, filled block arrow.

222

Data Outputs MAY have outgoing Data Associations.

222

Only Data Outputs that are contained by Activities or Events MAY be the target of Data Associations in the model.

222

If the Process is being called from a Call Activity, the Data Associations that target the Data Outputs of the Call Activity in the underlying model MAY be visualized such that they connect to the corresponding Data Outputs of the called Process, visually crossing the Call Activity boundary. But note that this is visualization only. In the underlying model, the Data Associations originate the Data Outputs of the Call Activity and not the Data Outputs of the called Process.

245

A Start Event is a circle that MUST be drawn with a single thin line.

245

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

245

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

246

A Process may have more than one Process level (i.e., it can include Expanded Sub-Processes or Call Activities that call other Processes). The use of *Start Event*s and End Event is independent for each level of the diagram.

246

A Start Event is OPTIONAL: a Process level—a top-level Process, a Sub-Process (embedded), or a Global Process (called Process - MAY (is no required to) have a Start Event.

246

If a Start Event is not used, then the implicit Start Event for the Process SHALL NOT have a Trigger.

246

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.

246

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.

246

An exception to this is a catching Link Intermediate Event, which is not allowed to have incoming Sequence Flows.

246

An exception to this is an Event Sub-Process, which is not allowed to have incoming Sequence Flow*s and will only be instantiated when its *Start Event is triggered.

246

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.

246

There MAY be multiple *Start Event*s for a given Process level.

246

Each Start Event is an independent Event. That is, a Process instance SHALL be generated when the Start Event is triggered.

247

If the Start Event has no associated EventDefiniton, then the Event MUST be displayed without a marker

247, 249

If there is only one (1) EventDefinition associated with the Start Event and that EventDefinition is of the subclass MessageEventDefinition, then the Event is a Message Start Event and MUST be displayed with an envelope marker

247, 250

If there is only one (1) EventDefinition associated with the Start Event and that EventDefinition is of the subclass TimerEventDefinition, then the Event is a Timer Start Event and MUST be displayed with a clock marker

248, 251

If there is only one (1) EventDefinition associated with the Start Event and that EventDefinition is of the subclass ConditionalEventDefinition, then the Event is a Conditional Start Event and MUST be displayed with a lined paper marker

248, 251

If there is only one (1) EventDefinition associated with the Start Event and that EventDefinition is of the subclass *Signal*EventDefinition, then the Event is a Signal Start Event and MUST be displayed with a triangle marker

248, 252

If the Start Event has more than one associated EventDefiniton, then the Event MUST be displayed with the Multiple Event marker

248, 252

If the Start Event has more than one associated EventDefiniton and theparallelMultiple attribute of the Start Event is true, then the Event MUST be displayed with the Parallel Multiple Event marker

249

For a Message Event Sub-Process that interrupts its containing Process, the boundary of the [Start] Event is solid

249

For a Message Event Sub-Process that does not interrupt its containing Process, the boundary of the [Start] Event is dashed

250

For a Timer Event Sub-Process that interrupts its containing Process, the boundary of the [Start] Event is solid

250

For a Timer Event Sub-Process that does not interrupt its containing Process, the boundary of the [Start] Event is dashed

250

If there is only one (1) EventDefinition associated with the Start Event and that EventDefinition is of the subclass EscalationEventDefinition, then the Event is an Escalation Start Event and uses an arrowhead marker

250

For an Escalation Event Sub-Process that interrupts its containing Process, the boundary of the [Start] Event is solid

250

For an Escalation Event Sub-Process that does not interrupt its containing Process, the boundary of the [Start] Event is dashed

250

If there is only one (1) EventDefinition associated with the Start Event and that EventDefinition is of the subclass ErrorEventDefinition, then the Event is an Error Start Event and uses a lightning marker

251

If there is only one (1) EventDefinition associated with the Start Event and that EventDefinition is of the subclass CompensationEventDefinition, then the Event is a Compensation Start Event and uses a double triangle marker

251

For a Conditional Event Sub-Process that interrupts its containing Process, the boundary of the [Start] Event is solid

251

For a Conditional Event Sub-Process that does not interrupt its containing Process, the boundary of the [Start] Event is dashed

251

For a *Signal Event Sub-Process* that interrupts its containing Process, the boundary of the [Start] Event is solid

251

For a *Signal Event Sub-Process* that does not interrupt its containing Process, the boundary of the [Start] Event is dashed

251

For a Multiple Event Sub-Process that interrupts its containing Process, the boundary of the [Start] Event is solid

251

For a Multiple Event Sub-Process that does not interrupt its containing Process, the boundary of the [Start] Event is dashed

251

For a Parallel Multiple Event Sub-Process that interrupts its containing Process, the boundary of the [Start] Event is solid

251

For a Parallel Multiple Event Sub-Process that does not interrupt its containing Process, the boundary of the [Start] Event is dashed

253

Multiple Sequence Flows MAY originate from a Start Event. For each Sequence Flow that has the Start Event as a source, a new parallel path SHALL be generated.

253

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.

253

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

253

A Start Event MAY be the target for Message Flow; it can have 0 (zero) 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.

253

An End Event is a circle that MUST be drawn with a single thick line.

253

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

253

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

254

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

254

An End Event is OPTIONAL: a given Process level—a Process or an expanded Sub-Process—MAY (is not required to) have this shape:

254

If an End Event is not used, then the implicit End Event for the Process SHALL NOT have a Result.

254

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.

255

If the End Event has no associated EventDefiniton, then the Event will be displayed without a marker

256

If the End Event has more than one associated EventDefiniton, then the Event will be displayed with the Multiple Event marker

257

An End Event MAY have multiple incoming Sequence Flow.

258

An Intermediate Event is a circle that MUST be drawn with a double thin line.

258

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

258

The thickness of the line MUST remain double so that the Intermediate Event may be distinguish from the Start and End Events.

258

The Intermediate Event can be attached to any location of the Activity boundary and the outgoing *Sequence Flow*s can flow in any direction. However, in the interest of clarity of the Diagram, we RECOMMEND that the modeler choose a consistent location on the boundary.

259

If the (throw) Intermediate Event has no associated EventDefiniton, then the Event MUST be displayed without a marker

259

When used to “throw” the Message, the [Intermediate] Event marker MUST be filled

259

When used to “catch” the Message, then the [Intermediate] Event marker MUST be unfilled

259

This [Timer Intermediate] Event MUST be displayed with a clock marker

260

When used to “throw” to the target Link, the [Intermediage Link] Event marker will be filled

261

When used to “catch” from the source Link, the [Intermediage Link] Event marker will be unfilled

261

When used to “catch” the Signal, the [Intermediate] Event marker will be unfilled

261

When used to “throw” the Signal, the [Intermediate] Event marker will be filled

261

When used to “throw” the trigger […] the [Intermediate Multiple] Event marker will be filled

261

When used to “catch” the trigger […] the [Intermediate Multiple] Event marker will be unfilled

261

The Event marker will be an unfilled plus sign

261

The [Intermediate] Event can only receive a Signal when attached to the boundary of an *Activity

261,265

When attached to the boundary of an Activity, the [Intermediate Multiple] Event can only “catch” the trigger

261,265

When attached to the boundary of an Activity, the*[Intermediate Parallel Multiple] Event* can only “catch” the trigger.

261

If used within normal flow, the [Intermediate Parallel Multiple] Event can only “catch” the trigger.

262

For a [Boundary Intermediate] Message Event that interrupts the Activity to which it is attached, the boundary of the Event is solid

262

For a [Boundary Intermediate] Message Event that does not interrupt the Activity to which it is attached, the boundary of the Event is dashed

262

For a [Boundary Intermediate] Timer Event that interrupts the Activity to which it is attached, the boundary of the Event is solid

262

For a [Boundary Intermediate] Timer Event that does not interrupt the Activity to which it is attached, the boundary of the Event is dashed

263

When attached to the boundary of an Activity, this Event is used to "catch" the Compensation Event, thus the Event marker MUST be unfilled (see figure on the right).

263

For a [Boundary Intermediate] Esclation Event that interrupts the Activity to which it is attached, the boundary of the Event is solid

263

For a [Boundary Intermediate] Esclation Event that does not interrupt the Activity to which it is attached, the boundary of the Event is dashed

263

The boundary of the [Compensate] Event is always solid

264

For a [Boundary Intermediate] Conditional Event that interrupts the Activity to which it is attached, the boundary of the Event is solid

264

For a [Boundary Intermediate] Conditional Event that does not interrupt the Activity to which it is attached, the boundary of the Event is dashed

264

For a [Boundary Intermediate] Signal Event that interrupts the Activity to which it is attached, the boundary of the Event is solid

264

For a [Boundary Intermediate] Signal Event that does not interrupt the Activity to which it is attached, the boundary of the Event is dashed

265

If the Intermediate Event has more than one associated EventDefiniton, then the Event will be displayed with the Multiple Event marker.

265

For a [Boundary Intermediate] Multiple Event that interrupts the Activity to which it is attached, the boundary of the Event is solid

265

For a [Boundary Intermediate] Multiple Event that does not interrupt the Activity to which it is attached, the boundary of the Event is dashed

265

For a [Boundary Intermediate] Parallel Multiple Event that interrupts the Activity to which it is attached, the boundary of the Event is solid

265

For a [Boundary Intermediate] Parallel Multiple Event that does not interrupt the Activity to which it is attached, the boundary of the Event is dashed

270

The Compensation Start Event MAY be used for an Event Sub-Process.

270

The throw Compensation Intermediate Event MAY be used in Normal Flow.

270

The Compensation End Event MAY be used within any Sub-Process or Process.

280

The None Start Event MAY be used for a top-level Process or any type of Sub-Process (except an Event Sub-Process).

280

The None End Event MAY be used within any Sub-Process or Process.

282

Timer [Event Definition] attributes are mutually exclusive and if any of the other Timer attributes is set, timeDate MUST NOT be set

282

Timer [Event Definition] attributes are mutually exclusive and if any of the other Timer attributes is set, timeCycle MUST NOT be set

282

Timer [Event Definition] attributes are mutually exclusive and if any of the other Timer attributes is set, timeDuration MUST NOT be set

295

A Gateway is a diamond that MUST be drawn with a single thin line.

295

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

297

A Gateway MAY be a target for Sequence Flow. It can have zero (0), one (1), or more incoming Sequence Flow.

297

If the Gateway does not have an incoming Sequence Flow, and there is no Start Event for the Process, then the Gateway’s divergence behavior, depending on the type of Gateway, SHALL be performed when the Process is instantiated.

297

A Gateway MAY be a source of Sequence Flow; it can have zero (0), one (1), or more outgoing Sequence Flow.

298

The Exclusive Gateway MAY use a marker that is shaped like an “X” and is placed within the Gateway diamond to distinguish it from other Gateways. This marker is not required.

300

The Inclusive Gateway MUST use a marker that is in the shape of a circle or an “O” and is placed within the Gateway diamond to distinguish it from other Gateways.

301

The Parallel Gateway MUST use a marker that is in the shape of a plus sign and is placed within the Gateway diamond to distinguish it from other Gateways.

303

The Complex Gateway MUST use a marker that is in the shape of an asterisk and is placed within the Gateway diamond to distinguish it from other Gateways.

305

An Event Gateway is a diamond that MUST be drawn with a single thin line.

305

The use of text, color, size, and lines for a Event Gateway MUST follow the rules defined in Section “Use of Text, Color, Size, and Lines in a Diagram” on page 41.

305

The marker for the Event Gateway MUST look like a catch Multiple Intermediate Event.

307

If the Event Gateway’s instantiate attribute is set to true, then the marker for the Event Gateway looks like a Multiple Start Event.

307

If the Event Gateway’s instantiate attribute is set to true and theeventGatewayType attribute is set to Parallel, then the marker for the Event Gateway looks like a Parallel Multiple Start Event.

313

A Lane is a square-cornered rectangle that MUST be drawn with a solid single line.

313

The label for the Lane MAY be placed in any location and direction within the Lane, but MUST NOT be separated from the contents of the Lane by a single line (except in the case that there are sub-Lanes within the Lane)