Message Events

Message events are events which reference a named message. A message has a name and a payload and is always directed at a single receiver.
The graphical representation of the message can vary depending on the phase in which the message is sent/received
bpmn tutorial introduction example
Start: A Message arrives from a participant and triggers the start of the Process.

Intermediate Event: A message arrives from a participant and triggers the Event. This causes the process to continue if it was waiting for the message, or changes the flow for exception handling. When used to “catch” the message, then the Event marker will be unfilled. When used to “throw” the message, the Event marker will be filled.

Intermediate Boundary event: A Message arrives from a participant and triggers the Event. If a Message Event is attached to the boundary of an Activity, it will change the Normal Flow into an Exception Flow upon being triggered.
For a Message Event that interrupts the Activity to which it is attached, the boundary of the Event is solid.
For a Message Event that does not interrupt the Activity to which it is attached, the boundary of the Event is dashed.

End: This type of End indicates that a message is sent to a participant at the conclusion of the Process.

Timer Events

Timer events are events which are triggered by defined timer. They can be used as start event, intermediate event or boundary event.

bpmn howto tutorial introduction essentials

Start: A specific time-date or a specific cycle (e.g., every day at 9am) can be set that will trigger the start of the Process.

Intermediate Event: A specific time-date or a specific cycle (e.g., every Tuesday at 9am) can be set that will trigger the Event. If used within the main flow it acts as a delay mechanism. If used for exception handling it will change the Normal Flow into an Exception Flow.

Intermediate boundary: A specific time-date or a specific cycle (e.g., every day at 9am) can be set that will trigger the Event. If a Timer Event is attached to the boundary of an Activity, it will change the Normal Flow into an Exception Flow upon being triggered.

For a Timer Event that interrupts the Activity to which it is attached, the boundary of the Event is solid. For a Timer Event that does not interrupt the Activity to which it is attached, the boundary of the Event is dashed.

Signal Events

This type of event is used for sending or receiving Signals. A Signal is for general communication within the process components. A BPMN Signal is similar to a signal flare that shot into the sky for anyone who might be interested to notice and then react. Thus, there is a source of the Signal, but no specific intended target. This is different than a BPMN Message, which has a specific Source and a specific Target (which can be an Entity or an abstract Role).
bpmn howto quickguide introduction tutorial
Start: A signal arrives that has been broadcast from another Process and triggers the start of the Process. Note that the Signal is not a Message, which has a specific target for the Message.


Intermediate Event: This type of Intermediate Event can send or receive a Signal if the Event is part of a Normal Flow. A signal event can be caught by an intermediate catch signal event.

Intermediate boundary: When attached to the boundary of an activity, the signal will change the Normal Flow into an Exception Flow upon being triggered. The Signal Event differs from an Error Event in that the Signal defines a more general, non-error condition for interrupting activities (such as the successful completion of another activity) as well as having a larger scope than Error Events.
For a Signal Event that interrupts the Activity to which it is attached, the boundary of the Event is solid. For a Signal Event that does not interrupt the Activity to which it is attached, the boundary of the Event is dashed.

Error: This type of End indicates that a Signal will be broadcasted when the End has been reached

Error Events

bpmn 2.0 tutorial introduction quickstart
Start: the Error Start Event is only allowed for triggering an in-line Event Sub-Process. Given the nature of Errors, an Event Sub-Process with an Error trigger will always interrupt its containing Process.

Intermediate boundary: An Intermediate Error Catch Event can only be attached to the boundary of an activity.Note that an Error Event always interrupts the Activity to which it is attached, i.e., there is not a non-interrupting version of this Event. The boundary of the Event is thus always solid.

End: This type of End indicates that a named Error should be generated. The Error will be caught by the Error intermediate event with the same ErrorCode or no ErrorCode which is on the boundary of the nearest enclosing parent activity (hierarchically).
    

Compensation Events

Compensation is a means for “undoing” the effects of an action.

For example, supposing you have booked a ticket to a show at the beginning of your process, then a compensation could be cancelling the reservation.
bpmn 2.0 tutorial example howto
Start: The Compensation Start Event is only allowed for triggering an in-line Compensation Event Sub-Process. This type of Event is triggered when compensation occurs. This Event does not interrupt the Process since the Process has to be completed before this Event can be triggered.

Intermediate: This is used for compensation handling - both activating and performing compensation.
When used in Normal flow, this Intermediate Event indicates that a Compensation is necessary. Thus, it is used to “throw” the Compensation event, and the Event marker MUST be filled. If the Event identifies an activity, then that is the activity (and no other) that will be compensated. Otherwise, the compensation is broadcast to all activities that have completed within the Process Instance, including the top-level Process and including all Sub-Processes. Each completed activity that is subject to compensation will be compensated, in the reverse order of the completion of the activities. To be compensated, an activity MUST have a Compensation Intermediate Event attached to its boundary.

Boundary: A compensation boundary event has a different activation policy from other boundary events. Other boundary events like for instance the signal boundary event are activated when the activity they are attached to is started. The compensation boundary is activated when the activity is attached to completes successfully. At this point, the corresponding subscription to compensation events is created.

When attached to the boundary of an Activity, this Event is used to "catch" the Compensation Event, thus the Event marker MUST be unfilled. The Event will be triggered by a thrown compensation targeting that Activity. When the Event is triggered, the Compensation Activity that is Associated to the Event will be performed.
Note that the interrupting and non-interrupting aspect of other Events does not apply in the case of a Compensation Event. Compensations can only be triggered after completion of the activity to which they are attached.

Thus they cannot interrupt the Activity. The boundary of the Event is always solid.

End: This type of End indicates that a Compensation is necessary. If an activity is identified, then that is the activity that will be compensated. Otherwise, all activities that have completed within the Process, starting with the top-level Process and including all Sub-Processes, are subject to compensation, proceeding in reverse order. To be compensated, an activity MUST have a Compensation Intermediate Event attached to its boundary.

Conditional Events

Real world business processes often embody complex decision making. Conditional events can thus be used for rule-based triggers which are included in the process.

bpmn tutorial howto guide quickstart

Start: This type of event is triggered when a Rule Condition such as "S&P 500 changes by more than 10% since opening", or "Temperature above 300°C" become true. The ConditionExpression for the Event must become false and then true before the Event can be triggered again.

Intermediate: This type of event is triggered when a Rule Condition becomes true.

Boundary: This type of event is triggered when a Rule Condition becomes true. A Condition is a type of Expression. If a Conditional Event is attached to the boundary of an Activity, it will change the normal flow into an exception flow upon being triggered.
For a Conditional Event that interrupts the Activity to which it is attached, the boundary of the Event is solid. For a Conditional Event that does not interrupt the Activity to which it is attached, the boundary of the Event is dashed.

The first part of BPMN tutorial ends here. In the next BPMN tutorial part 2 we will discuss about the other two Flow Objects: Gateways and Activities.

0
0
0
s2smodern

Related articles available on mastertheboss.com

W

i

l

d

F

l

y

 

c

h

e

a

t

s

h

e

e

t