Introduction to Communication Between Processes Using Signal Events

Defining the Process Interface 21-3 Figure 21–1 BPMN Process that exposes a message start event as an operation This figure shows a BPMN process that exposes a message start event as an operation, and how this reflects in the SOA Composite editor. In addition, the process interface may contain the operations exposed by the catch message events in the process. Before invoking an operation that corresponds to a catch message event, you must always invoke the operation that corresponds to the message start event. Figure 21–2 shows a BPMN process that exposes a catch message event in its interface in addition to the message start message event. It also shows how the SOA Composite editor displays this operation. 21-4 Modeling and Implementation Guide for Oracle Business Process Management Figure 21–2 BPMN process that exposes a message start and a message catch event in its interface This figure shows a BPMN process that exposes a message start event and a message catch event as operation, and how this reflects in the SOA Composite editor.

21.2.1 Using Message Events to Define the Callback Interface for BPMN Processes

A BPMN process must expose a callback operation for each of the asynchronous operations it defines. The callback operation returns the response to the service or process that invoked the asynchronous operation. The callback operation may define output arguments. If it defines output arguments you must map their values to the data objects in the process using data associations. You can define a callback operation using a message throw event or a message end event. See Chapter 20.3, Using Message Events to Invoke Asynchronous Services and Asynchronous BPMN Processes , for information on how invoke an asynchronous BPMN process from another BPMN process. Figure 21–3 shows an end event that exposes the BPMN process callback operation. It also shows how the callback operation appears in the SOA Composite editor. Note: If you used a send task to expose an operation, then you must use a receive task to define the callback operation. See Section 21.7, Defining Asynchronous Processes Operations Using Send and Receive Tasks for more information on how to define a callback operation using send events.