Advanced Business Process Modeling
This domain tests advanced BPMN 2.0 construct selection and token semantics: event subprocesses, boundary events, compensation, call activities, and gateway behavior. Questions often ask which construct is valid or what happens to tokens when an event fires.
Construct selection rules
- Embedded subprocess is local and contained; a call activity reuses a separately defined process.
- A boundary event attaches to an activity; interrupting cancels the activity, non-interrupting spawns a parallel token.
- An event subprocess is triggered within its scope; interrupting cancels the scope, non-interrupting runs alongside it.
- Compensation undoes completed work; it is not normal error handling. A compensation boundary event attaches to the activity to be compensated.
- A terminate end event ends the entire process instance; an error end event throws to a catching boundary event.
- Link events connect flow segments without sequence flow.
Gateway semantics
- Exclusive: one path, default flow permitted.
- Inclusive: one or more paths, conditions evaluated, default permitted.
- Event-based: race among events, no conditions on outgoing flows.
- Complex: custom activation condition; use sparingly.
Worked example
An order process needs a reminder after two days but must not cancel the order. Model a non-interrupting boundary timer on 'Await payment' that sends a reminder. If payment later fails, a compensation boundary event on 'Reserve inventory' triggers 'Release inventory' when compensation is thrown. A customer cancellation message is caught by a non-interrupting event subprocess at process scope that acknowledges the request while the main flow continues. Reasoning: the timer must not interrupt, compensation is for undo, and the message is a scope-level trigger rather than a boundary on one task.
Traps that cost marks
- Using an interrupting boundary timer when a reminder is required.
- Using an error boundary event for business compensation.
- Attaching a boundary event to a gateway, which BPMN does not allow.
- Putting conditions on an event-based gateway's outgoing flows.
- Using a terminate end event when only one branch should end.