A BPMN event in a business process diagram refers to something that happens and affects the flow of process. There are three types of events to use in business process modeling: Start, intermediate and end.
Start event
A start event indicates the place where and possibly why a process start. Since start event is used for initiating a process, it does not have any incoming sequence flow.
You can define a trigger for start event, to show the condition(s) that will cause a process to initiate.
Trigger name | Representation | Description |
---|---|---|
None | The none start event does not have a defined trigger. | |
Message | This trigger starts the process by receiving a message from a participant. | |
Timer | This trigger starts the process in a specific time-date or a specific cycle (e.g. every Friday). | |
Error | This trigger starts an in-line event sub-process when an error occurs. Note that this trigger can only be used with an event-sub-process. | |
Escalation | This trigger starts or not to start an in-line event sub-process when the constraint specified is not satisfied. Note that this trigger can only be used with an event-sub-process. | |
Compensation | This trigger starts an in-line event sub-process when an compensation occurs, which requires undoing some steps. Note that this trigger can only be used with an event-sub-process. | |
Conditional | This trigger starts the process when a specific condition becomes true. | |
Signal | This trigger starts the process when a signal broadcasted from another process has arrived. Note that signal is different from message in the sense that it has a specific target for message. | |
Multiple | This means that there are multiple triggers of the process. Any one of them can cause the process to start. | |
Parallel Multiple | This means that there are multiple triggers of the process. All of the triggers must be triggered in order to start the process. | |
Link | This trigger provides a means to connect the end result of one process to the start of another. |
Defining a trigger
To define a trigger on an event, right click on the event and select Trigger, then click on the type of trigger from the popup menu.
If you want to edit the properties of the trigger, such as the condition of a conditional trigger, right click on the event and select Open Specification…from the popup menu. Then, click on the … button next to the drop down menu of Trigger to edit its properties in the popup dialog box.
Interrupting or Non-interrupting event sub-process
Start event can be attached to the border of an event sub-process to initiate the sub-process inline. You can define this kind of trigger as either interrupting or non-interrupting, which means to interrupt its containing process or not to interrupt its containing process respectively. To set a trigger to be Interrupting or Non-Interrupting, right click on the event and select/de-select Triggers > Interrupting from the popup menu.
Intermediate event
An intermediate event indicates where something happens in between the start and end event of a process. You can use an intermediate event to show where messages are received or sent, show the necessary delay, perform exception handling and show the need of compensation. You can place an intermediate even in two places: Attaching the boundary of task/sub-process, Normal flow (i.e. connected from a flow without attaching to an activity).
Trigger name | Representation | Description |
---|---|---|
None | The none intermediate event does not have a defined trigger. It is used to indicate change of state in the process. You can only use a none intermediate event in a normal flow. | |
Message | This trigger represents either a send or receive of message | |
Timer | This trigger acts as a delay mechanism on a specific date-time or cycle (e.g. every Friday). You can only use a timer intermediate event in a normal flow. | |
Error | This trigger reacts to a named error or to any error if no name is specified. | |
Escalation | The trigger indicates where an escalation is raised. You can only use an escalation intermediate event in a normal flow. | |
Cancel | This trigger will be fired when a cancel end event is reached within the transaction sub-process. It also shall be triggered if a Transaction Protocol “Cancel” message has been received while the Transaction is being performed. | |
Compensation | The trigger indicates the need of compensation. | |
Conditional | The event will be triggered when the condition specified become true. | |
Link | This trigger is used for linking two sections of a process. You can use it to mode a looping of flow or to avoid having long sequence flow connectors appear on diagram. You can only use a link intermediate event in a normal flow. | |
Signal | This trigger indicates the sending or receiving of signals, which is for general communication within and across process levels, across pools, and between business process diagrams. | |
Multiple | This means that there are multiple triggers defined. Any one of them can cause the event to be triggered. | |
Parallel Multiple | This means that there are multiple triggers defined. All of the triggers must be triggered in order to trigger the multiple event. |
Defining a trigger
To define a trigger on an event, right click on the event and select Trigger, then the type of trigger from the popup menu.
If you want to edit the properties of the trigger, such as the condition of a conditional trigger, right click on the event and select Open Specification…from the popup menu. Then, click on the … button next to the drop down menu of Trigger to edit its properties in the popup dialog box.
Throw and catch
You can set an event to be catch or throw. Catch means to react to a trigger, while throw means to create a trigger. To set, right click on an event and select Trigger, then either Catching or Throwing from the popup menu.
Interrupting or Non-interrupting event
Intermediate event can be attached to the border of an activity. You can set an event to interrupt or not to interrupt the activity to which it is attached. To set a trigger to be Interrupting or Non-Interrupting, right click on the event and select/de-select Triggers > Interrupting from the popup menu.
End event
As an opposite of start event, end event indicates where a process will end. Since end event is used for terminating a process, it does not have any outgoing sequence flow.
You can define a result for end event, to show what will happen when reaching the end.
Trigger name | Representation | Description |
---|---|---|
None | The none end event does not have a defined result. | |
Message | This result ends the process by sending a message to a participant. | |
Error | This result indicates the generation of a named error when the process ends. | |
Escalation | This result indicates the trigger of escalation when the process ends. | |
Cancel | This result indicates that the transaction should be cancelled. | |
Compensation | This result indicates the need of compensation, which require undoing some steps. | |
Signal | This result indicates that a signal will be broadcasted when the process ends. Note that signal is different from message, which has a specific target for message. | |
Terminal | This result indicates that all activities in the process should be immediately ended. | |
Multiple | This result indicates that there are multiple consequences of ending the process. | |
Link | This result provide a means to connect the end result of one process to the start of another. |
Defining a result
To define a result on an event, right click on the event and select Result, then the type of result from the popup menu.
If you want to edit the properties of the result, such as the message produced by a message result, right click on the event and select Open Specification… from the popup menu. Then, click on the … button next to the drop down menu of Result to edit its properties in the popup dialog box.