Everything on Subprocesses in BPMN
Summary of all BPMN 2.0 Level 1 Elements
The Level 1 pallet of BPMN 2.0, the descriptive modeling notation, consists of three main shapes: event, activity and gateway. The shapes are connected using connectors like sequence flows, message flows and dataflows.
Start and End Events
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. Events are circles with open centers to allow internal markers to differentiate different triggers or results.
‘None’ start event
The ‘none’ start event, or none trigger, means: start process manual by task performer when it is placed in a top level diagram. If the none start event is used in a child level diagrams, it means: start the tasks immediately when a sequence flow arrives at the none trigger in the child level diagram.
Message start event
The message trigger, which can only be used in top level diagrams, means that the process starts when an external request is received by the process.
Timer start event
The timer trigger, or timer start event, means that the process starts on scheduled and/or recurring moments in time. Keep in mind that this trigger can also only be used in top level diagrams.Usually, a diagram in BPMN contains only one start event.
‘None’ end event
This is the end event we see most of the time. When a business process model reached an end event, it is complete. When a subprocess reaches an end event, the process flow returns to the parent level process.
Terminate end event
You should use the terminate end event in scenarios where a parallel path is active, but hanging, since the conditions can not be met successfully. The terminate end event thus means: do not wait for the parallel paths to complete. Remember to only use this event in scenario’s with parallel paths.
Message end event
The final end event we discussed is the message end event. Massage end event means send message when reaching the end event.
BPMN Activities and Subprocesses
‘None’ task type
The abstract task type, or none task, has no symbol inside it and should be considered the most basic task type you can use. Often, people start with modelling using none task types, adding detail when the process model advances.
User task type
This task type represents any atomic activity carried out by a human. The task differentiates itself with the person symbol.
Service Task type
The service task type represents any automated atomic activity. Automated means there is no user involved in this process step. Its visualized by a gear symbol inside the task. Remember that a task is the only object in BPMN that can perform work.
Subprocesses are compound activities, which means they are composed of multiple flow objects. Subprocesses are both an activity and a process in the same time. An un-expended subprocess looks like a single activity or task in a top level diagram. But the activity can be opened or expended. When you open up or expand the subprocess, you will find a detailed process, with a start and an end, in the child level diagram. In this subprocess, there can be other collapsed subprocesses, which again can be opened or expended on the grandchild level of a diagram. This nesting of subprocesses in BPMN is not limited by the specification. Read more about subprocesses in this blog.
Gateways in BPMN
In BPMN, gateways control process flow. A gateway tests an outcome of a preceding activity: it can not perform work itself. A gateway can have as many gates as you want, it is not limited to two, and the specification does not describe that they have to connect to the points of the diamond. The XOR gateway can also be drawn with an X inside. The X-OR gateway means: only follow the path of the true data condition. A gateway should be seen as conditional logic: a gateway often tests a decision, that occurred previously, in an activity. The result of that decision, is an end-state of the activity that makes it. The gateway tests the end state of the activity. It does not make a decision, since tasks are the only objects in BPMN stat can perform work.
A parallel gateway is very different than the XOW gateway because you don’t evaluate any conditions or event. Instead, the parallel gateway is used to represent two concurrent tasks in a process flow. It is the same as a fork in a UML activity diagram. The parallel gateway is visualized by the + symbol inside the shape. When a sequence flow arrives at a parallel gateway, two or more concurrent paths are activated. Either of those activities may start first, and they may overlap in time. If two sequence flows arrive or join at a parallel gateway, it means that both activities should be completed before the flow can continue.
Connectors in BPMN 2.0
A Sequence Flow is used to show in which order Activities will be performed in a Process and in a Choreography. The sequence flow, represented by the solid arrow, can only connect to an activity, gateway and event. Sequence flows cannot cross pools or jump levels in a hierarchical business process model.
Sequence flows cannot cross border of pools, but message flows can. Message flows are visualized in BPMN by dashed open arrows with an open circle on the opposite side van the arrow. Message flows can connect to events activities not to gateways.
Data associations are used to define a source and a target, and optionally a transformation. When a data association is executed, data is copied from the source to the target. Dataflows do not alter the flow of a process.
Pools and Lanes
A pool in BPMN is visualized as a rectangle with a label and dividing line. A pool is a container for a BPMN process. The entire chain of flow objects must be contained inside the pool, and the sequence flow cannot cross the boundary of the pool. BPMN experts advice to name a pool after the end-to-end process it represents, not the organization that performs it. This facilitates process awareness, and on top of that, the label of a pool is the only place where you can describe the name of a process. A process pools is the same for all levels of a hierarchical BPMN model.
A lane is a sub-partition within a pool and is used to organize and categorize activities of a process. Most commonly, a lane represents an organizational role, like developer, sales or manager. A pool, which contains an entire process, can thus be compiled of several lanes inside it. The BPMN specification allows other naming conventions so you can use any categorizations that suits your needs. You can use different lanes on different levels of the BPMN diagram.
Black box pools
In BPMN, you use a black box pool to visualize entities that do interact with the process, but are no member of the process providers organization. The Blackbox pool should always be placed above the internal process pool and cannot contain anything. It should stay empty.
Data Objects, Data Stores and Call Activities
Data objects allow you to show data flowing through a process. This flow is different from a message flow or sequence flow, you use a data association flow to indicate how the data flows through the process. This does not affect the sequence flow in a process. Data objects themselves are represented by a page. Data objects represent documents used in a process, both physical and digital. Important to note about data objects, is that they are only available as long as the process instance is live. This means that the data object is not stored after a process is finished.
The difference with the previously described data object, is that a data store is external to the process. However, the process has access to it, so data can be stored and retrieved from the data store. The data store can again be an old-school centralized paper register or a digital storage system.
The call activity should be perceived as a subprocess when a sequence flow arrives at a call activity, but the difference is that the actual process steps are not part of the diagram itself, but external to the diagram. This means that the process steps are stored in a different, external place, just like the data store. If the call activity, however, is needed in a certain process diagram, you can call the activity from the external reference without specifying the steps in a subprocess level diagram. You can thus reuse previously generated building blocks or subprocesses.
Annotation Options in BPMN 2.0
A text annotation can be used to add extra detail to flow objects in a process model. It does not affect the flow but gives details about objects within a flow.
Groups highlight or categorize flow objects and do not affect the flow of the process. Activities can be highlighted to show that they are related, and can be categorized, for example, for analysis purposes or document preparation. A Group is not an activity like a Task or Sub-Process, nor is it an element of the sequence flow like a Gateway. Therefore, you cannot connect a Group to a sequence flow or message flow. However, since Groups are not limited by the pool and swimlane constraints, they can highlight activities that belong to different pools.