One of the modeling patterns I describe in the new edition of the BPMN book, is „Parallel Checks“. When different persons need to check applications, requests, etc. according to different criteria, these checks can be carried out in parallel. There are two different ways to model this. The simple solution only requires basic BPMN elements, while the more sophisticated solution requires a sub-process and a terminate end event. We start with the simple solution.
Since each check can have a positive or negative result, there can be many different combinations of positive and negative results. If all these possible combinations are considered, the models quickly become large and confusing. However, in most cases it is not important exactly which of the checks have a positive or a negative outcome. Instead, only two cases need to be considered: Either all checks have a positive result, or at least one check has a negative result.
Therefore, in the first diagram the checking activities are not directly followed by exclusive splits. Instead, the parallel paths are joined before there is an exclusive split that distinguishes whether all checks have produced a positive result, or not.
In this model, all parallel checks are always carried out entirely, even if one of the checks has already had a negative result, and the other checks would not be required anymore.
This can be avoided by using a terminate end event, as in the following diagram. If both checks are succesful, both parallel tokens reach the end event of the sub-process, and the parent process continues. If one of the checks produces a negative result, its token flows to the terminate end event. This immediately terminates the entire sub-process, regardless where the other token is. It may either still be in front of the checking activity, or it may already have reached the normal end event.
In the parent process, one token is emitted from the sub-process, regardless whether the application has been accepted or rejected. Therefore, the sub process is followed by an exclusive gateway that routes the sequence flow according to the sub-process’s result.
More about BPMN an modeling patterns in the second edition of „BPMN 2.0 – Introduction to the Standard for Business Process Modeling“: