An End Event is a modeling element that shows "End" point of one process in BPMN.
Overview of an End Event
In BPMN, events, which are generated within a process and influence the order or the time of activities are classified into three types; Start, Intermediate, and End depending on the point where they are generated. Among them, the End Event shows the place where each process ends. Eight types of End Events (None, Message, Error, Cancel, Compensation, Signal, Terminate, and Multiple) define what happens or what situation occurs as a Result at the end of the process. A Start Event is a Catching Event that plays the only role of catching clues to make a Start Event begin a process, namely a Trigger, while an End Event is a Throwing Event that plays the only role of throwing the final result of the process.
Details about End Events
- Within the processes at the same level, multiple End Events might exist.
- You can choose to write or not to write an End Event within any process including developed Sub-Processes. It is up to the modeler whether to use it or not.
- At least one End Event must exist in the process if there is a Start Event in that process. In the process at the same level, flow of Tokens generated from the start event ends when reaching the End Event.
- When an End Event is used;
- all flow elements except the End Event must stem from Sequence Flow
- all Flow Objects except the End Event should be starting points of at least one Sequence Flow.
- However, a Compensation activity with "Compensation" marker is an exception of this rule. Regardless whether there is an End Event or not, the starting point of Sequence Flow must not be placed at a Compensation activity.
- When an End Event is not used;
- This shows that nothing happens as the final result of the process.
- Any Flow Object will be located at the end of the process unless Sequence Flow originates there. In this case, all processes end only after all parallel routes in the process concludes.
- However, a Compensation activity with "Compensation" marker is an exception of this rule. Usually, a Compensation activity is not considered as a part of flow, but just an activity that make substitute "Compensation." Therefore, do not locate a Compensation activity without a starting point of Sequence Flow at the end of the process.
- The End Event must not be the starting point of the Sequence Flow.
- The End Event must be the end of the Sequence Flow (multiple possibility).
Routes that are split as alternate routes or parallel routes might have the End Event respectively. Because whether to write the End Event or not depends on the modeler, omission of End Events is also possible. The process continues until these entire split routes end.
(*)As an exception, an End Event is used for "a developed Sub-Process", and connects to its boundary. In this case, Sequence Flow that is supposed to connect to the process of higher-order sometimes connects to the End Event instead of the boundary of Sub-Processes.
- An End Event must not be the end of Message Flow.
- The End Event may become the starting point of Message Flow (multiple possibility).
(*)All Messages Flow connects with two different pools. The Message Flow can be connected to the boundary of the pool or to the Flow Objects in the boundary of pools.
Notation for End Events in BPMN
An End Event is generally drawn by a circle with a single thick line. Thickness is to distinguish it from a Start Event. If the circle were drawn with a thin line, it would be the same mark with a Start Event. As a result, there would be no difference between a Start Event and an End Event.
There are 8 types of End Events (see below), and the marker depends on what type of events (Results) is generated when the process ends. Similar to start events or Middle Event, placing a marker with different shapes within the circle distinguishes an End Event from other End Events. All End Events are classified into a throwing event, the inside of the markers is painted out in black color.
Various End Events
|None||This End Event usually used when the modeler does not display the type of Event. In a word, that is when the End Event is not defined by 7 End Events below. It is necessary to be aware of that the flow goes back to its Parent Process when a Sub-Processes ends in the case when this End Event is used as the end of Sub-Processes.|
|Message||This End Event is used when sending messages to participants at the conclusion of the Process.|
|Error|| This End Event is used for generating a named Error. Events that generate Error are:
|Cancel||This End Event is used within a Transaction Sub-Process. When the Transaction is cancelled (unsuccessful termination), it will trigger a Cancel Intermediate Event connected to the Sub-Process boundary. In addition, a Transaction Protocol Cancel message need to be sent to any Entities related to the Transaction.|
|Compensation||This End Event is used when compensation is necessary. When an activity is identified, it will be compensated. All activities that have finished within the Process, starting with the top-level Process and including all Sub-Processes, will be compensated in reverse order. To be compensated, an activity must have a Compensation Intermediate Event connected to its boundary.|
|Signal||This End Event is used for a Signal to be sent when a process ends. Be aware of that the Signal, which is sent to any Process that can accept the Signal, can be transmitted across Process levels or Pools, but is not a Message which has an explicit Source and Target.|
|Terminate||This End Event is used to terminate immediately all activities within the Process. All instances of Multi-Instances are also subject to be ended immediately. In this type of Process Ending, compensation or event handling (e.g., sending message) is not executed.|
|Multiple||This End Event is used when there are multiple consequences of ending the Process. All of consequences will occur (e.g., there might be multiple messages sent) when a Token reach this End Event.|
Changes between BPMN1.0 specification and BPMN 1.1
In the shift from BPMN1.0 specification to BPMN1.1 specification, the following changes in terms of descriptions and names are seen:
- the design of the marker "Message"; "a white letter" has changed to "a black letter."
- the design of the marker of "Error"; extra thick
- Result "Link" has disappeared in BPMN1.1 specification
- Result "Signal" has been added in BPMN1.1 specification
- the design of the marker "Multiple"; a hexagonal star has changed to a pentagon.
- BPMN1.1 specification (January 17, 2008)