Events - Act and React

Objective

After completing this lesson, you will be able to understand how to use events

Using Start, Intermediate, and End Events

Using events in process modeling makes process models more realistic.

Using Events

So far, our processes have had an isolated focus. They didn't consider or react on any external input, such as a message from a customer, except at the start of the process. The entire chapter is about using events as part of the process flow to act and react with the business environment.

Events Mark a State in a Process

Events mark a state in a process, at least at the start and at the end. The BPMN 2.0 notation counts more than 60 different events, which emphasizes their importance for business process modeling.

Events are required to show, at which place the business process has to wait for external input to react accordingly. Those events can be:

  • A response from a customer.
  • A reached point in time.
  • A certain condition, such as a budget approved.

Three Aspects When Using Events

Before we look at the world of events, it's important to know there are three aspects behind the use of events. These aspects are helpful in understanding the event behavior and using them correctly.

  1. There are start events, intermediate events, and end events. Where is an event used?
  2. Events can be catching or throwing. How is an event used?
  3. Events can be specific by a type . Which event is used?

Start, Intermediate, and End Events

Based on their occurrence in the process, events are categorized as start events, intermediate events, and end events. You already know start and end events - let's review them and take a closer look at intermediate events.

Plain Start Event

These events can only occur at the start of a process, as they're representing the trigger. Hence, they can only have one outgoing sequence flow.

Process model with a plain start event (Order received), as described in the preceding text.

Plain Intermediate Event

Intermediate events must have an incoming and outgoing sequence flow. They mark a state in a process without impacting the process flow. The token just "passes through" and marks the state.

Why is this useful? Blank intermediate events can be used to highlight a certain progress (Milestone) in the process flow. For example:

  • Mark a stage as "phase 2 completed".
  • Mark manufacturing status "component X manufactured".
Process model with a plain intermediate event (Order checked), as explained in the preceding text.

Plain End Event

This event marks the end of the process, as it's representing the process goal. Hence, it can only have an incoming sequence flow.

Process model with a plain end event (Order sent), as described in the preceding text.

Intermediate Events as Milestones

In some processes, it is useful to mark the state when a certain milestone has been reached. If the process is applied in a technical environment, the time between different milestones could be measured more specifically. However, such milestones are always optional. Their importance depends on what they are actually describing in the process.

Process model with intermediate events as milestones (Table set and Food is Ready), as described in the preceding text.

Key Takeaways - BPMN Events

1 - Start events: Show which event causes the process to start. 2 - Intermediate events: Stand for a status which is reached in the process and which one wants to record explicitly in the model. They are rarely used but can be very useful – for example, if you understand the status as a milestone and want to measure the time until the milestone is reached. 3 - End events: Mark the status that is reached at the end of a process path. 4 - Naming convention: Events refer to something that has already happened (regardless of the process) – [object] and passivate the [verb], for example, writing “hunger detected”.

Event Types

Events give processes the flexibility to act react with their environment.

We've only used unspecified events so far (so-called "plain events"). Now, it's time to be more specific when we describe a process trigger or an end event. With the need to become more concrete in specifying an event, we have to consider that there is a distinction if the event gets triggered or is a trigger itself.

  1. There are start events, intermediate events, and end events. Where is an event used?
  2. Events can be catching or throwing. How is an event used?
  3. Events can be specified by a type. Which event is used?

Catching and Throwing

All events have one thing in common: They define a certain state, which triggers or ends the process. But how does an event reach such a state? There are two possible options:

  1. The event "waits" to get triggered (it "catches" a trigger from the outside).
  2. The event itself is a trigger (it "throws" a trigger to the outside).

This is the concept of catching and throwing events. If this is too theoretical, let's use an example.

Catching Start Event

Reacting on a Trigger

The start event is always in a "waiting" status to start the process when an order arrives. It "catches" the trigger and starts the process.

The start event (order received) waits to get triggered.

Throwing End Event

Acting as a Trigger

The end event has "thrown" the trigger and set the state.

The end event (order sent) has triggered the state ,which ends the process.

Conclusion

Catching events have an impact on process flows. They can:

  • start processes when they are triggered.
  • continue process flows when they are triggered.

Throwing events can be triggered at the end of the process.

Note

Start events are always catching, whereas end events are always throwing events.

Very good. With the two rather theoretical aspects in mind, we can now tackle the final one. Fortunately, this is visual and you'll learn new BPMN elements.

The Most Common Event Types

All events can be specified, based on their actual nature. They can react to points in time and are triggered by messages or any other external conditions. Based on the real world, not all events be a trigger or got triggered by external influences - it depends on their type.

1. Message Events

Manage Interactions with Messages

In most business processes, communication with external participants is an essential part of the process. However, the term and symbol "message" is not limited to letters, e-mails, or phone calls. Message events represent everything, which can be received or be sent - it stands rather for "interaction" in general.

BPMN counts four different message events, depending on whether we're receiving or sending a message:

Different message events in BPMN: Start Message, Catching Intermediate Message, Throwing Intermediate Message, and End Message.

Example: Ordering a Pizza

Catching an Intermediate Message Event

The receiving of the pizza is indicated by a message event and it must be modeled by using a message event. Otherwise, the task "eat pizza" would be immediately started after the pizza has been ordered (no loss in time).

Hence, we need a message event to express:

  • There is a waiting situation between ordering and eating.
  • The process continues when the pizza arrives or in other words it stops the process flow until the external condition (receiving pizza) becomes true.
Diagram showing the intermediate message event (Pizza received), as described in the preceding text.

Throwing an Intermediate Message Event

The intermediate throwing message event can also be used to model the state the order has been sent. The actual task "send order" is not necessarily required, as the state "pizza order sent" implies the task.

The throwing intermediate message event implicit the task of ordering the pizza

Modeling the ordering task AND the throwing message event would be wrong, as in that case, we would order twice.

An intermediate message event (Pizza order sent) is added before the Pizza received event.

All Message Events Used

In this example, we can see all four different message events.

So, our process starts with receiving a new flyer and ends with providing feedback.

This explains that messages can:

  1. Start processes. For example, by triggering other ones.
  2. Be sent within a process.
  3. Delay a process during its execution.
  4. End a process and trigger other ones.
Process model showing the flow of the steps outlined in the preceding text.

2. Timer Events

React on points in Time

Due to its flexible usage, the timer event is popular in practical modeling with BPMN. It can be used to start a process at a fixed - or relative or even a recurring point in time.

A timer event cannot be triggered by the process, so they are always "catching".

Behind this rule is a real-world logic:

  1. The process itself has no influence on time.
  2. The process can only react to a current or a past point in time.
Clocks to represent the Start Timer event and the Intermediate Timer event.

Note

Timer events are always catching events as a process can only react to a point in time - but cannot control it.

Timer Start Event

Timer start event must be used, whenever the start of a process depends on a certain point a time. There are several options how this time-based start is defined. It can be an interval, a fixed point in time or a relative point to a specific event.

Three options for a timer start event are shown. Fixed point in time: Starting on a set date. Recurring process start: Starting at fixed intervals. Relative to specific event: Starting at a set time before an event.

Using Timer Events

Let's look at our pizza process again, to see how timer events can be used.

With timer start events we have the flexibility to start our process at dinner time and order pizza. Ten minutes later, we can start setting the table to get ready for receiving and eating the pizza.

So, our process:

  • starts time based, at a certain point in time.
  • is delayed by ten minutes. However, this delay doesn't matter as we must wait for the pizza anyway.

Both have in common, that the point in time is known to start or continue the process.

Process model with sample timer events, as described in the preceding text.

Note

Timer events can only be used, when the point in time is known, to start or continue the process.

3. Conditional Events

React on (external) conditions

Some processes start based on external conditions. These conditions are out of the control of the process, which means its unknown when exactly the condition is met - but the process can react to it whenever it's the case. This is the same behavior that we have discussed for timer events, so it's also the same rule:

Note

Conditional events are always catching events, as they occur out of the control of the process - but the process can react to them.
Process model with conditional events, as described in the text.

When to use conditional events?

Isn't everything a condition that must be fulfilled? Yes, but based on our pizza example, there are two uncertainties in the process, which are out of the control of our process:

  • We can't control when the oven reaches 180 degrees.
  • We can't control when the pizza is ready - only when it's burned.

This uncertainty of the event and its fulfillment is a good indicator for a conditional event. In practice, there are some other examples where processes cannot influence the condition:

  1. When a job position gets vacant (to trigger the hiring process).
  2. When an idea is available (to trigger an innovation process).
  3. When a minimum amount of items in stock is reached (to trigger the order process).
  4. When most votes are available (to proceed in the process).

4. Link Events

Link process stages

The link event is to a certain extent a special case: It has no meaning in terms of content, but is only a technical structure element. Two links can replace a sequence flow. This aspect is useful in large process models especially where long sequence flows across different lanes makes the model less readable.

One model contains two links to replace a sequential flow. The other model shows a sequential flow. Both models are identical.

It has no significance related to content, but it facilitates the diagram-creation process. To follow the matching, ensure to name them accordingly in order.

Link events are useful if:

  • You must distribute a process diagram across several pages. Link events allow to link these different process models and enable a "left-to-right" navigation.
  • You have a process with many sequence flows, maybe even across the entire process. Link events help to replace a long sequence flow and keep the process design easy-to-understand.

Note

For matching, the name of two link events must be equal.

Overview of Common Event Types

Not every event type has an occurrence in every event dimension, as shown in the table. It depends on their nature of being only reactive (catching), active (throwing), or even both. As you may remember, start events, for example, can only be catching.

Start: Can always be used as an unspecified start event. Throwing Intermediate: Can be used as a milestone in a process. It marks certain point in a process. End: Represents an unspecified end of a process.
Start:Can be used whenever the process gets triggered by receiving a message, a physical object, or anything else. Catching Intermediate: Represents an incoming message, object, or file and waits until that point of receiving. Throwing Intermediate: Represents a message, physical goods, or files sent to external participants. End: Represents a message, physical goods, or files sent by ending the process at the same time.
Start: Can be used whenever the process start depends on a certain point in time. Catching Intermediate: Delays the process until a given point in time. Can be used to wait for a deadline.
Contidion: Start; Can be used when the process start depends on a condition which is outside the influence of the process (for example, an approved budget or vacant position). Catching Intermediate; Delay the process until an (external) condition is met.
Link: Throwing Intermediate; Catches the token from a throwing link event. Catching Intermediate; Throws a token to a catching link event.

Note

There are even more event types according to BPMN 2.0, but these events are the most important ones used in process modeling.

Special Topic: Attached Intermediate Events

Since you now know the common events in BPMN, it's time to focus on a second specialty of events. They can also be used as a cancel condition to tasks. How does that work? Let's use our pizza example again.

Attached timer event: Using the timer event as a cancel condition.

In this example, we can't decide on a pizza. Hence, after 10 minutes we give up and decide to cook pasta instead.

That means that when we attach an intermediate event, a timer, to a task:

  • It defines a cancel condition, based on a time.
  • We can model an alternative way to the canceled task and proceed with the process.
Pizza ordering example with attached intermediate events (timer event), as described in the preceding text..

Attached Mixed Events: Multiple Cancel Conditions

With our cancel condition on choosing a pizza, it can also happen that the pizza is not available when we're calling the pizzeria. In this process example we want to make sure, we can still eat pasta and not get starved.

To summarize:

  • All catching intermediate events can be used as cancel conditions for tasks.
  • For each attached intermediate event, there must be an alternative path - which can also be the same one.
Attached mixed events (10 minutes passed, chose pizza is out) are added, as described in the preceding text.

Key Takeaways - Event Types

1 - Intermediate events: Can be attached to activities to set an interruption scenario. 2- Links events: Have no semantics but serve as an alternative to sequence flows. 3 - Timer events: Can be used to start a process at fixed, relative and also recurring points in time. 4 - Message event: Can be used to identify your communication in processes, whether it is phone calls, Mail, or sending physical products. 5 - Interuption criteria: All catching intermediate events learned so far can be attached to a task or subprocess, to model an interruption of a standard sequence.

Event-Based Decision

Decision in line with events.

Reacting on Decisions Made Outside of the Process

So far, we considered decisions made as part of the process - and used XOR gateways to route the result. Whenever customers or other external participants are involved, we must react to their decisions before we proceed with our process.

The BPMN has a dedicated gateway to be used to model such cases, the Event-based Gateway.

Note

In business processes, it's often necessary to react to external influences.
In this case, there is an external influence - we are waiting for the external participant to send us the pizza.

Example: What Happens When the Pizza Is Never Delivered?

In our current method, the process would get stuck at the catching message event. If we don't get what we've requested or don't get at a response at all, we must consider alternatives, to ensure that the process can still proceed and doesn't get stuck (and waits forever for an event).

The Event-Based Gateway

The event-based gateway waits for the following intermediate events to happen before it steers the process flow. Whichever of the events happen first is the path that is taken at the gateway. The decision is made outside the process, and we or the event-based gateway just reacts to it.

An event-based gateway (Call pizzeria) is shown in the flow, as described in the preceding text.

Modeling Event-Based Alternatives

In our previous example, it might still be the case that we never receive the pizza. How long can we wait? The following process shows a way of modeling an exit of the loop, while still not losing the possibility of receiving the pizza.

More specifically:

  • We can always receive the pizza.
  • We have an alternative to call the pizzeria three times.
  • We have an exit, if we don't get the pizza after calling three times (90 minutes in total).
Even-based alternatives (Eat pizza, Call the pizzeria, Cancel the order after calling three times, are added to the flow, as described in the preceding text.

Connected Events

Since the event-based gateway works in a way of "reaction" to events, there can only be catching intermediate events connected to it. To proceed, the token waits for the next event to occur.

Sample events are shown under the headings Messages, Conditions, and Time. Messages: money ,goods, and messages. Conditions: Triggered by external influences. Time: Duration, internal, deadline, and time.

Key Takeaways - Event-Based Gateway

1 - Gateway functions: The token waits for the first occurring event. 2 - Merging: While the event-based gateway splits into external events, the merging gateway is always an XOR. 3 - Connected elements: There can only be catching intermediate events connected.

Modeling Exercise - Order Processing (Part 2)

Order Processing: MyStore Inc. - Process documentation for a fictional enterprise.

Background

The management of MyStore Inc. is unhappy with the previous process and also faces the problem that numerous orders have not been paid yet. Soon, orders must only be shipped after prepayment. In addition, the process is to be extended in the case of missing payment after an order. Therefore, the existing process model must be adapted again in consideration of these new findings.

Process Modeling Task.

Revise your existing process model, so it reflects the following change in the process.

The order acceptance department do not create the invoice as before. The finance department now created and send the invoice. If payment is received within seven days, the warehouse sends the goods to the customer while the finance department confirms receipt of payment to the customer. If a payment period of seven days elapses without the customer having paid, a payment reminder is sent. If payment is still not received after a further five days, the order will be canceled and the customer will be informed.

Assignment

  • Transform the process description into a compliant BPMN 2.0 model. We recommend using and editing your model from the Part 1 exercise. You can also create a copy to keep your initial version.
  • Only use the elements that you have already learned and model from the perspective of the MyStore Inc. company. There is still no need to include external process participants.

Estimated time effort: Approximately 45 minutes.

Modeling Tips

Modeling Tip 1: Use two event-based gateways to capture the different possible events, which take place based on the customer "reaction".

Modeling Tip 2: Consider this blank shape model as a design orientation.

Sample model to implement Tip 1. Two event-based gateways are shown.
Double-check your answer.

If you think that you are finished, check your solution again for syntax, semantics, and naming conventions. Also, think about a user-friendly and readable look and feel for your diagram.

Note

There are several solutions for this task. However, you must have covered the same subject matters. The names of the individual elements and the overall design may differ slightly.

If you feel confident with your results, view the sample solution and compare it to your own.

Solution to the Order Processing Exercise - Part 2

Sample solution from order received to order completed.

Log in to track your progress & complete quizzes