Intro to BPMN (Part 4): You've Got Five New Messages
Let Processes Talk To Each Other.
Last time I showed you, how you can make responsibilities transparent in a process, using a Pool with different Lanes. Every participant got their own lane, with all the tasks they’re responsible for.
Imagine you have more than one process participant, which requires you to add an additional pool. In our example this could mean, that HR is an external process participant. BPMN offers a mechanism to communicate between pools, with other process instances: Messages. Let’s take a look.
Adding More Participants to Our Process
Here’s the scenario:
HR has their own process to handle approved vacation requests.
We inform HR with a message, that we approved a vacation request.
A new process is started, to handle the update in the HR system.
The model below shows, how the model could look like. As usual, new elements are marked as green.
This approach decouples the two processes from each other. The HR process is only started, if a message arrives. The review process can finish as soon as the message has been sent. No need to wait for HR.
The BPMN Building Blocks
Send Task: “Inform HR”
Both the Send Task and the Intermediate Message Throw Event are used to trigger a message. It can be a message to another system, to a task or even a user.
Intermediate Events are events that are neither Start nor End Events, but events that happen during the process execution. They have a double solid border. If they produce an event, the symbol is solid black.
A message is not a broadcast. There is exactly one recipient of this message.
Message Start Event: “Request Approved”
A Message Start Event is a smarter version of the None Start Event. It waits for a certain message and starts the process.
Since it is a receiving event, the symbol is not solid black, but has only a solid, black outline.
There are only catching Start Events. They always wait for an external trigger to start the process or sub-process.
Message Flows: Connecting Pools
A Message Flow has a dashed line with a dot on the starting side and an empty triangle on the destination side.
They signal the communication between two Pools. They are used to connect a message send + receive pair, or two pools, or a mix of both.
What’s Next?
Now our model starts to get quite big:
We defined the way, how different participants in a process can collaborate between different pools.
We also learned how we can decouple processes, and let them communicate asynchronously with messages.
Now that we painted a clearer picture of our organization and how we communicate in it, we can take a look at the review process. What happens if the supervisor is also on vacation? The process will wait, even if the vacation of the employee is starting soon…
In the next post we will learn about some escalation mechanisms, to ensure that a process is always able to continue.