
Continuing our BPMN activity series, in this post, I'll cover sub-processes, transactions, event sub-processes, and call activities.
1. Sub-process
A sub-process is a sequence of activities or events that occur within a larger process.
The marker for a sub-process is represented by a "+" symbol.

Sub-processes can also be expanded to show the internal flow of activities:

2. Transaction
A transaction is a variation of a sub-process. The activities within a transaction must either all succeed or all fail together.
For a transaction, there are typically three outcomes: Successful completion, Failed completion (cancel), and Hazard (an interrupting event without compensation).
Example:
Collapsed transaction:

Expanded transaction:

In this example, the transaction is used to describe a group of activities related to confirming a reservation. The transaction ensures that all reservation-related activities are either completed successfully or fail together.
3. Event sub-process
This is a variation of a sub-process that is triggered by a specific event. In addition to attributes like markers and names, event sub-processes also have an event symbol attached to the upper left corner.
Example:
Collapsed event sub-process:

Expanded event sub-process

In this example, the "Update order" sub-process is triggered by the "Payment successful" event.
4. Call activities
A call activity is a special activity in BPMN used to invoke another BPMN process. Call activities are often used to reuse a process.
While a sub-process is usually defined and used within the current process, a call activity invokes an external process that can be reused in multiple processes.
Example:

According to this example, the payment process, besides being used in purchases, can also be used for service payments (e.g., phone card services, bill payments, etc., all use the same payment process).
That covers the activity notations in BPMN diagrams. In the next post, I'll continue with gateways – another crucial component in BPMN diagrams.
Comments