Creating an Event-Action BPEL Process
An event-action process receives and handles the events you define in other processes.
To create an event-action BPEL process:
- 1. In the Project Explorer, select the File > New > BPEL Process.
- 2. Select a Workspace folder, type in a File name, and select Next.
- 3. Select the BPEL template called Event Action Process.
A new BPEL file opens with a receive activity that takes an event trigger as input.
The event trigger is based on one of the following:
- •Events you define in the eventing tab of the PDD of another process. In this case, the process containing event definitions must refer to the service name of the event action process.
- •AeEngineEngine event. In this case, the service name you select in your PDD for My Role must be AeEngineEvent
- •AeHumanTaskCreated event. In this case, your service name must be AeHumanTaskCreated.
- •AeHumanTaskEvent event. In this case, your service name must be AeHumanTaskEvent.
A system event is consumed by the event action service for all running processes. However, you can narrow your event handling to particular processes by programmatically referring to a process, such as:
$trigger/AeEngineEvent/processLocalName/text()='myProcess'
The following is an example of an input message for the event-action process with a defined event:
<evt:trigger xmlns:evt="http://docs.active-endpoints.com/wsdl/eventing/2008/06/eventing.wsdl"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<orderitem xmlns:ext="http://dinner2">
<processId type="xsd:long">601</processId>
<eventId type="xsd:string">/process/flow
/extensionActivity
/peopleActivity[@name='PlaceOrder']:PID_601</eventId>
<timeStamp type="xsd:dateTime">2008-07-28T19:03:33.464Z
</timeStamp>
<planId type="xsd:int">19</planId>
<nodePath type="xsd:string">/process/flow
/extensionActivity/peopleActivity[@name='PlaceOrder']
</nodePath>
<processName type="xsd:QName">ext:dinner</processName>
<state type="xsd:int">2</state>
<sessionId type="xsd:int">2</sessionId>
<locationId type="xsd:int">75</locationId>
<instanceNodePath type="xsd:string">/process/flow
/extensionActivity/peopleActivity[@name='PlaceOrder']
</instanceNodePath>
<myOrderItemProp type="xsd:string">sandwiches
</myOrderItemProp>
</orderitem>
</evt:trigger>