- Flow Objects
- Connecting Objects
This article describes the BPMN elements as they are defined within the BPMN 2.0 specification. It furthermore serves as a reference that describes each of the BPMN elements together with the associated notation.
The basic BPMN modelling elements are very similar to flow diagrams. These elements are grouped into five basic categories namely:
- Flow Objects - Flow object elements defines the behavior of a business process.
- Data - Data elements represent the data activities and processes need in order to execute.
- Connecting Objects Connecting object elements indicate the flow and associations within a process.
- Swimlanes - Swimlane elements are used to group processes according to participants.
- Artifacts - Artifact elements provide additional information about the Process.
Flow Objects are the main graphical elements to define the behavior of a business process. There are three Flow Objects:
|Activity||An Activity is a generic term for work that company performs in a Process. An Activity can be atomic or non-atomic (compound). The types of Activities that are a part of a Process Model are: Call Activity, Subprocess and Task, which are rounded rectangles.|
|Gateway||A Gateway is used to control the divergence and convergence of Sequence Flows in a Process. Thus, it will determine branching, forking, merging, and joining of paths. Internal markers will indicate the type of behavior control.|
|Event||An Event is something that “happens” during the course of a Process. These Events affect the flow of the model and usually have a cause (trigger) or an impact (result). There are three types of Events, based on when they affect the flow: Start, Intermediate, and End.|
An Activity is a unit of work that is performed within a Business Process. An Activity can be atomic or non-atomic (compound).
The three types of activities are:
- Task - A Task is an atomic activity since it has no internal sub parts.
- Subprocess - A subprocess is non-atomic (compound), since it has subparts that can be expressed as a process flow.
- Call Activity - A Call Activity identifies a point in the Process where a global Process or a Global Task is used.
A Task is an atomic Activity within a Process flow. A Task is used when the work in the Process cannot be broken down to a finer level of detail. Generally, an end-user and/or applications are used to perform the Task when it is executed.
There are different types of Tasks identified within BPMN.
|Service Task||A Service Task is a Task that uses some sort of service, which could be a Web service or an automated application.|
|Send Task||A Send Task is a simple Task that is designed to send a Message to an external Participant (relative to the Process). Once the Message has been sent, the Task is completed.|
|Receive Task||A Receive Task is a simple Task that is designed to wait for a Message to arrive from an external Participant (relative to the Process). Once the Message has been received, the Task is completed.|
|User Task||A User Task is a typical “workflow” Task where a human performer performs the Task with the assistance of a software application and is scheduled through a task list manager of some sort.|
|Manual Task||A Manual Task is a Task that is expected to be performed without the aid of any business process execution engine or any application. An example of this could be a telephone technician installing a telephone at a customer location.|
|Business Rule Task||A Business Rule Task provides a mechanism for the Process to provide input to a Business Rules Engine and to get the output of calculations that the Business Rules Engine might provide.|
|Script Task||A Script Task is executed by a business process engine. The modeler or implementer defines a script in a language that the engine can interpret. When the Task is ready to start, the engine will execute the script. When the script is completed, the Task will also be completed.|
BPMN specifies three types of markers for Task: a Loop marker or a Multi-Instance marker and a Compensation marker. A Task MAY have one or two of these markers.
|Loop||The marker for a Task that is a standard loop MUST be a small line with an arrowhead that curls back upon itself.|
|Multi-Instance||The marker for a Task that is a multi-instance MUST be a set of three vertical lines.|
|Compensation||The marker for a Task that is used for compensation MUST be a pair of left facing triangles|
A Subprocess is an Activity whose internal details have been modeled using Activities, Gateways, Events, and Sequence Flows. A Subprocess is a graphical object within a Process, but it also can be “opened up” to show a lower-level Process. Subprocesses define a contextual scope that can be used for attribute visibility, transactional scope, for the handling of exceptions, of Events, or for compensation.
The Subprocess can be in a collapsed view that hides its details or a Subprocess can be in an expanded view that shows its details within the view of the Process in which it is contained. In the collapsed form, the Subprocess object uses a marker to distinguish it as a Subprocess, rather than a Task.
There are different types of Subprocesses.
|Embedded Subprocess||A Subprocess is an Activity whose internal details have been modeled using Activities, Gateways, Events, and Sequence Flows.|
|Event Subprocess||An Event Subprocess is a specialized Subprocess that is used within a Process (or Subprocess). An Event Subprocess is not part of the normal flow of its parent Process—there are no incoming or outgoing Sequence Flows.|
|Transaction Subprocess||A Transaction is a specialized type of Subprocess that will have a special behavior that is controlled through a transaction protocol. There are three basic outcomes of a Transaction: Successful completion, Failed completion & Hazard.|
BPMN specifies five types of standard markers for Subprocesses. The (Collapsed) Subprocess marker can be combined with four other markers: a loop marker or a multi-instance marker, a Compensation marker, and an Ad-Hoc marker. A collapsed Subprocess MAY have one to three of these other markers, in all combinations except that loop and multi-instance cannot be shown at the same time.
|Loop||The marker for a Subprocess that loops MUST be a small line with an arrowhead that curls back upon itself.|
|Multi-Instance||The marker for a Subprocess that has multiple instances MUST be a set of three vertical lines in parallel.|
|Compensation||The marker for a Subprocess that is used for compensation MUST be a pair of left facing triangles.|
|Ad-Hoc||The marker for an ad-hoc Subprocess MUST be a “tilde” symbol.|
A Call Activity executes another process that may be external to the process definition.
|Call Activity||A Call Activity identifies a point in the Process where a global Process or a Global Task is used. The Call Activity acts as a ‘wrapper’ for the invocation of a global Process or Global Task within the execution. The activation of a call Activity results in the transfer of control to the called global Process or Global Task.|
Gateways are used to control how Sequence Flows interact as they converge and diverge within a Process. If the flow does not need to be controlled, then a Gateway is not needed. The term “Gateway” implies that there is a gating mechanism that either allows or disallows passage through the Gateway. As tokens arrive at a Gateway they can be merged together on input and/or split apart on output as the Gateway mechanisms are invoked.
Gateways, like Activities, are capable of consuming or generating additional tokens, effectively controlling the execution semantics of a given Process.
|Exclusive Gateway||A diverging Exclusive Gateway (Decision) is used to create alternative paths within a Process flow. This is basically the “diversion point in the road” for a Process. For a given instance of the Process, only one of the paths can be taken.|
|Inclusive Gateway||A diverging Inclusive Gateway (Inclusive Decision) can be used to create alternative but also parallel paths within a Process flow. Unlike the Exclusive Gateway, all condition Expressions are evaluated. The true evaluation of one condition Expression does not exclude the evaluation of other condition Expressions. All Sequence Flows with a true evaluation will be traversed by a token. Since each path is considered to be independent, all combinations of the paths MAY be taken, from zero to all. However, it should be designed so that at least one path is taken.|
|Parallel Gateway||A Parallel Gateway is used to synchronize (combine) parallel flows and to create parallel flows.|
|Complex Gateway||The Complex Gateway can be used to model complex synchronization behavior. An Expression activationCondition is used to describe the precise behavior. For example, this Expression could specify that tokens on three out of five incoming Sequence Flows are needed to activate the Gateway.|
|Event-based Gateway||The Event-Based Gateway represents a branching point in the Process where the alternative paths that follow the Gateway are based on Events that occur, rather than the evaluation of Expressions using Process data (as with an Exclusive or Inclusive Gateway). A specific Event, usually the receipt of a Message, determines the path that will be taken. Basically, the decision is made by another Participant, based on data that is not visible to Process, thus, requiring the use of the Event-Based Gateway.|
An Event is something that “happens” during the course of a Process. These Events affect the flow of the Process and usually have a cause or an impact and in general require or allow for a reaction. The term “event” is general enough to cover many things in a Process. The start of an Activity, the end of an Activity, the change of state of a document, a Message that arrives, etc., all could be considered Events.
Events allow for the description of event-driven processes. In these processes, there are three main types of Events:
- Start Events which indicate where a Process will start
- End Events which indicate where a path of a Process will end
- Intermediate Event
Within these three types, events come in two flavors:
- Events that catch a trigger. All Start Events and some Intermediate Events are catching Events.
- Events that throw a Result. All End Events and some Intermediate Events are throwing Events that MAY eventually be caught by another Event.
|Catching Events||Throwing Events|
|Start Event||Intermediate Event||End Event|
|Standard||Event Subprocess |
|Event Subprocess |
|Parallel Multiple Event|
Activities and processes often need data in order to execute. Data is represented with the four elements:
|Data Object||Data Objects provide information about what Activities require to be performed and/or what they produce, Data Objects can represent a singular object or a collection of objects.|
|Data Inputs||Data requirements are captured as Data Inputs.|
|Data Outputs||Data that is produced is captured using Data Outputs.|
|Data Stores||A Data Store provides a mechanism for Activities to retrieve or update stored information that will persist beyond the scope of the Process.|
There are multiple ways of connecting the Flow Objects to each other or other information.
|Sequence Flow||A Sequence Flow is used to show the order that Activities will be performed in a Process.|
|Message Flow||A Message Flow is used to show the flow of Messages between two Participants that are prepared to send and receive them.|
|Association||An Association is used to link information and Artifacts with BPMN graphical elements. Text Annotations and other Artifacts can be Associated with the graphical elements. The same as an association except, an arrowhead on the Association indicates a direction of flow (e.g., data), when appropriate.|
A Sequence Flow is used to show the order that Activities will be performed in a Process and in a Choreography.
|Normal Flow||Normal flow refers to paths of Sequence Flow that do not start from an Intermediate Event attached to the boundary of an Activity.|
|Uncontrolled Flow||Uncontrolled flow refers to flow that is not affected by any conditions or does not pass through a Gateway. The simplest example of this is a single Sequence Flow connecting two Activities.|
|Conditional Flow||A Sequence Flow can have a condition Expression that are evaluated at runtime to determine whether or not the Sequence Flow will be used.|
|Default Flow||For Data-Based Exclusive Gateways or Inclusive Gateways, one type of flow is the default condition flow. This flow will be used only if all the other outgoing conditional flow is not true at runtime.|
There are two ways of grouping the primary modeling elements through Swimlanes:
|Pool||A Pool is the graphical representation of a Participant in a Collaboration. It also acts as a “swimlane” and a graphical container for partitioning a set of Activities from other Pools. A Pool MAY have internal details, in the form of the Process that will be executed. Or a Pool MAY have no internal details, i.e., it can be a “black box.”|
|Lane||A Lane is a sub-partition within a Process, sometimes within a Pool, and will extend the entire length of the Process, either vertically or horizontally. Lanes are used to organize and categorize Activities.|
Artifacts are used to provide additional information about the Process. The current set of Artifacts includes:
|Group||A Group is a grouping of graphical elements that are within the same Category. This type of grouping does not affect the Sequence Flows within the Group. The Category name appears on the diagram as the group label.|
|Text Annotation||Text Annotations are a mechanism for a modeler to provide additional text information for the reader of a BPMN Diagram.|
Congratulations! You have finished the post about BPMN 2.0 Elements. Follow me on any of the different social media platforms and feel free to leave comments.