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) |