Everything on Subprocesses in BPMN
Subprocesses in BPMN 2.0
BPMN is a hierarchical modeling language. In another article I discussed the difference between tasks and subprocesses already, but in this article you will learn everything about the use of subprocesses in BPMN.
Nesting of subprocesses
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, in theory you can add as much layers as you need. My advice is, however, to start with a top level diagram that only describes the most important process steps. Then, if more information is needed, you can further specify subprocesses.
The Different Visual Representations of Subprocesses
There are different ways to model subprocesses, also depending on the tool you use. Some tools allow you to expend a subprocesses on the same canvas, others don’t. If you draw a complex subprocess with for example multiple lanes or much process steps, it is better to use a hyperlinked canvas, or a child level canvas, to model the subprocess.
The BPMN 2.0 specification allows you to use both inline expansion and hierarchical expansion with an unlimited number of child level diagrams.
As you can see on the image above, the subprocess is displayed as an opaque rectangle. The flow objects that compose the subprocesses are not visible.
Child Level Diagram
In the second example, below, the subprocess is expanded in a child level diagram, which is also known as hierarchical expansion. From this viewpoint, you are able to see the flow objects that compose the subprocess.
In the third example, below, the subprocess is visualized using inline expansion. As you can see, the shape of the subprocesses is enlarged, and the flow objects that represent the subprocess are placed inside the shape of the subprocess itself.
As discussed, I prefer to use a hyperlinked canvas to display subprocesses since it is more easy to expand the model over time and you have more space to model complex processes.
There are some things you need to keep in mind about subprocesses. When a sequence flow arrives at a subprocess in the top level diagram or parent level diagram, this immediately triggers the start of the subprocess. This means, that in the child level diagram, you can not use specific triggers since the process is initiated at the top level diagram. Specific triggers should thus be included in the top level diagram, not in child level diagrams.
Subprocesses have the same containment rules as pools: sequence flows can not cross subprocesses boundaries, since that would mean that a process flows from one level to another while a subprocess should have a clear start and end state.
Why use subprocesses?
Subprocesses are a great feature of BPMN, since they enable the hierarchical modeling style of BPMN. When you start with modeling a business process, first create a high level overview without too much detail. Then, later on, when you advance with describing, analyzing and improving the process, add detail with subprocesses and repeat the describing, analyzing and improvement practice. Following this method you won’t end up with overdetailed models that make understanding and improving the process more difficult. It also helps to focus on what is most important, instead of modeling unnecessary details which you don’t need. They are also valuable to summarize a process that you don’t fully understand yet.
On top of that, nesting subprocesses in a diagram helps with clear communication with different stakeholders, since you can switch between multiple viewpoints, addressing the concerns of different stakeholders.