Using the BPEL Designer and Service Engine

Using an Event Handler

The entire BPEL process as well as each individual Scope can be associated with a set of Event Handlers that are invoked concurrently if the corresponding event occurs. The actions taken within an Event Handler can be any type of activity, such as Sequence or Flow. The only immediate child of an Event Handler is Scope, so when you drag an element from the Palette into an Event Handler, it is automatically wrapped in Scope.

When to Use

There are two types of events:


Note –

Event handlers do not interfere with the main flow of the business process. If an event occurs, and an event handler is executed, the main flow will be executed also.


This means, one shouldn't use event handlers, for example, to send replies to requests received in the main fllow, because the main flow might also send a reply which will never be seen by the client, and this can lead to various issues.

On the contrary, a good use-case for event handlers would be to request a business process status. In this case, the activities in the event handler will collect data about the state of the business process, and then reply to the request that triggered the event handler.

Image shows a diagram that illustrates bad and good practices
for using Event Handlers as described in context

This picture can be a bit misleading. The request should be caught by handler itself but not by an internal Receive. I mean that the inbound arrow should come to handler itself, but not to an internal circle, which can be treated like a receive.

Usage

  1. Right-click the Process element or any Scope and choose Add -> Event Handlers.

  2. Once you have added an Event Handlers container, you can right-click on the Event Handlers element to add an On Event or On Alarm branch. You may add as many specific On Event or On Alarm elements as you wish, to the Event Handlers group.

On Event Element

The On Event element indicates that the specified event waits for a message to arrive. The interpretation of this tag and its attributes is very similar to a Receive activity.

Usage

  1. Right-click the Event Handlers container and choose Add > On Event.

  2. Double-clicking the On Event element opens a Property Editor where you can specify/change the following:

    • The partner link

    • The operation associated with the On Event element

    • The event variable

    OnEvent Property Editor
  3. Right-click the On Event element and choose Properties to open a Properties window to review and modify the properties of the element. In addition to the properties present in the Property Editor dialog box, the Properties window contains the Port Type and Type field.

OnEvent Properties Window

The Correlations tab in the On Event Property Editor dialog box enables you to examine or specify a correlation set.

The tab shows:

For more information see Understanding Correlation. Using the Correlation Wizard.

On Alarm Element

The On Alarm element specifies the deadline for or the duration of the nested Scope.

On Alarm Element Properties

The properties of the On Alarm element are defined in the Properties window, invoked by right-clicking the element on the diagram and choosing Properties. The available properties are: