Intermediate Events

From ER/Studio Business Architect
Jump to: navigation, search

Go Up to Events (BPM)

An Intermediate Event occurs between a Start Event and an End Event. It is an event that occurs after a Process starts. It affects the flow of the process but does not directly terminate the process. Intermediate Events can be used to:

  • Show where messages are expected or sent within the Process,
  • Show delays that are expected within the Process,
  • Disrupt the normal flow through exception handling, or
  • Show the extra work required for compensation.

An example of one use of Intermediate Events is to represent exception or compensation handling. This is shown by placing an Intermediate Event on the boundary of a Task. The Intermediate Event can attach to any location of the activity boundary and the outgoing Sequence Flow can flow in any direction. Use Cases for each trigger type are discussed in the Using Intermediate Event Triggers topic.

VIEW INTERMEDIATE DIAGRAM.PNG

Using Intermediate Event Triggers

There are many Intermediate Event Triggers and the table below displays the palette icon and description for each:

Triggers Palette Icon Description

Intermediate

ICON - IntermediateEvents.png

This is the normal intermediate event without a specified trigger.

Cancel

ICON - EndEventCancel.png

The Cancel Intermediate Event is used within a Transaction Sub-process and is triggered when a Cancel End Event is reached. It indicates that the Transaction should be canceled and is attached to the Sub-process boundary. It also is triggered if a Transaction Protocol Cancel message is received while the Transaction is performed.

Compensation

ICON - EndEventCompensation.png

Compensation is when activities are invoked that undo an undesirable outcome.

Conditional

ICON - StartEventConditional.png

An event triggered when a condition becomes true.

Error

ICON - EndEventError.png

The trigger sets or catches errors. It sets an error if the Event is part of a Normal Flow. It reacts to a named error when attached to the boundary of an activity.

Escalation

ICON - StartEventEscalation.png

A trigger that raises an escalation that goes to another Process or Sub-Process.

Link

ICON - EndEventLink.png

Connects an End Event of one Process to an Intermediate Event in another Process.

Message

ICON - EndEventMessage.png

A message arrives from a participant and triggers an Event. The Process then continues if it is waiting for a message, or changes the flow for exception handling.

Signal

ICON - StartEventSignal.png

(BPMN 1.1 and later) Similar to a message, when a signal occurs, it triggers an Event. The Process then continues if it is waiting for a signal, or changes the flow for exception handling. The difference between a signal and a message is that a message is intended for a specific recipient.

Timer

ICON - StartEventTimer.png

A specific time-date or cycle is set that triggers an Event. It can act as a delay mechanism if used within the main flow. If used for exception handling, it changes the Normal Flow into an Exception Flow.

Non-Interrupting Intermediate Events

Some Intermediate Events also are available as "Non-Interrupting" events, usually associated with Event Sub-Processes. When a non-interrupting Intermediate Event is triggered, is does not interrupt the process that is already in progress.

Non-Interrupting Intermediate Events include:

  • Conditional
  • Escalation
  • Message
  • Signal
  • Timer

To indicate a Non-Interrupting Event:

  1. Right-click the appropriate event icon, and then select Properties.
  2. On the General tab, click the drop-down list for Intermediate Type, and then select NonInterrupting.

Using the Cancel Intermediate Event

A cancel trigger can be attached to an intermediate event. The resulting event type is always attached to the boundary of a transaction action. It acts as a mechanism to interrupt this transaction action.

In the following example, when buying concert tickets online, if the payment succeeds the tickets are purchased. If the tickets are not paid, the payment action triggers a cancel action. This cancellation action also results in the Cancel Tickets action and the process ends.

VIEW INTERMEDIATE CANCEL EVENT.PNG

Using the Compensation Intermediate Event

A Compensation Association occurs outside the Normal Flow of the Process and is based upon an event (a Cancel Intermediate Event) that is triggered through the failure of a Transaction or a Compensation Event. The target of the Compensation Association must be marked as a Compensation Activity.

Compensation Intermediate Event Use Case

The following is a use case for how a compensation intermediate event would be implemented.

A travel agent books a flight for a corporate client. The normal flow for the business process occurs as follows:

  • There is a start event (message) when a corporate client calls to book a flight.
  • The travel agent makes the necessary arrangements (a Book Flight task) and the flight is booked (end event).
  • However, the corporate client calls back and has to cancel. This is handled by an intermediate compensation event which “interrupts” the normal sequence flow to an outgoing directed association “flow” (compensation association). There is a rollback of travel arrangements (compensation activity) where the travel agent cancels the flight (a Cancel Flight task).
Note: Note that the Book Flight task cannot be compensated by a Cancel Flight task until the Book Flight task has been completed. The end result of this compensation is that the corporate client card is restored to an initial balance of $0.00, unless there are cancellation fees.

VIEW BOOK FLIGHT.PNG

The tasks in the above scenario could be replaced by a Book Flight sub-process (e.g., if there are several steps to booking a flight you may decide to create a sub-process, either embedded or independent) and a Cancel Flight sub-process. These would become compensated sub-processes if the intermediate compensation event is “invoked”.

Placing an Intermediate Compensation Event

  1. From the Business Process Objects Palette, click the drop-down arrow on the Intermediate Event node.
  2. Select the Compensation Intermediate Event icon (ICON INTERMEDIATE COMPENSATION.PNG) and click the task that contains the event you want to compensate (or roll back).
  3. With the automatic connection feature you can then immediately draw an association link to the task containing the information for the roll back. A compensation marker is then automatically placed on the second task.
    VIEW COMPENSATION EVENT.PNG
  4. Press ESC to exit the multi-drop mode.
    Note: The cursor changes from ICON MULTI DROP2.png  to ICON CURSOR.PNG.

Using the Conditional Intermediate Event

The Conditional Intermediate Event is triggered when the conditions for a rule become true during the execution of the process. This trigger can occur in the normal flow of the process or it can be attached to the boundary of an action or it can also be used in an event-based decision pattern.

The conditional intermediate event is used for exception handling when a named rule becomes true. Because the rule intermediate event is only used for exception handling, it has to be placed on the edge of an activity, as it creates an exception flow.

VIEW INTERMEDIATE RULE EVENT.PNG

Also available as Non-Interrupting Intermediate Events. When a non-interrupting Conditional Intermediate Event is triggered, is does not interrupt the process that is already in progress.

Using the Error Intermediate Event

The Process involving an error intermediate event begins with the receipt of a request for an online purchase. After a credit card verification, an online purchase is made. The purchase may take more than one attempt before it is successful. After the purchase is confirmed, a reply is sent.

VIEW INTERMEIDATE ERROR EVENT.PNG

Using the Escalation Intermediate Event

An Escalation Intermediate Event is triggered when a result is not the desired behavior and the process must be diverted from the normal flow to address the escalation.

Also available as Non-Interrupting Intermediate Events. When a non-interrupting Escalation Intermediate Event is triggered, is does not interrupt the process that is already in progress.

Using the Link Intermediate Event

A link is a mechanism for connecting the end event of one process flow to the start event of another process flow. A link intermediate event can be used as an “Off-Page Connector” or as a “Go To object.”

Caution: If your off-page connectors need to be named the same, you must use the Off-page Connector icon instead of the Link Intermediate Event object. You cannot have two Link Intermediate Events with the same name on a diagram.

Using the Link as an Off-Page Connector

If a process model extends beyond the length of one printed page you can use a Link Intermediate Event to show how Sequence Flow connections extend across the page breaks. In the sample below, a pair of Link Intermediate Events is used; one at the end of page one and the second at the beginning of page two. This Event is named and has an incoming Sequence Flow and no outgoing Sequence Flow. The second Link Event shares the same name, and has an outgoing Sequence Flow and no incoming Sequence Flow.

VIEW INTERMEDIATE LINK EVENT.PNG

VIEW INTERMEDIATE LINK EVENT2.PNG

Using Link as a "Go To" Object

Link Intermediate Events can also be used is as "Go To" objects. They work the same as Off-Page Connectors, but can be used on the same page or across multiple pages. They reduce the length of Sequence Flow lines which may be hard to follow or trace. When it is used as a Go To object, the process continues as if the Sequence Flow had directly connected the two objects. The following diagram shows the "Go To" links used in place of a long Sequence Flow link from the first gateway to the Close Order task, thus simplifying the look of the diagram.

VIEW INTERMEDIATE LINK GO TO.PNG

Using the Message Intermediate Event

When placed within the diagram, a message event specifies that the process is waiting for a message in order to resume its activity. There are usually flow links before and/or after this event.

VIEW INTERMEDIATE MESSAGE EVENT.PNG

Also available as Non-Interrupting Intermediate Events. When a non-interrupting Message Intermediate Event is triggered, is does not interrupt the process that is already in progress.

Using the Signal Intermediate Event

(BPMN 1.1 and later) A signal event in a diagram shows that the process is waiting for a signal in order to resume its activity. As with a message event, there are usually flow links before and/or after a signal event.

Also available as Non-Interrupting Intermediate Events. When a non-interrupting Signal Intermediate Event is triggered, is does not interrupt the process that is already in progress.

Using the Timer Intermediate Event

When placed on an activity, the timer event represents something that can occur during the execution of an activity. There is usually a link (flow or message) going out of the event to specify the action to perform if such an event occurs.

  1. Click the Timer Intermediate Event icon on the Business Process Modeling Notation palette.
  2. Click the task onto which you want to place the event. When you do this, the event then becomes part of the activity.

The following example shows a timer event during an activity execution.

VIEW INTERMEDIATE TIMER EVENT.PNG

Also available as Non-Interrupting Intermediate Events. When a non-interrupting Timer Intermediate Event is triggered, is does not interrupt the process that is already in progress.