Select Show System Faults.

20-2 Modeling and Implementation Guide for Oracle Business Process Management They enable you to invoke asynchronous services or asynchronous BPMN processes. You can also use them to define the interface your process exposes to other processes or services. See Section 20.2, Communicating With Other BPMN Processes and Services Using Message Events , for more information about message events. ■ Send and Receive Tasks They are very similar to message events. You can choose to use one or the other. The only difference they have with message events is that they support boundary events. They enable you to invoke asynchronous services or asynchronous BPMN processes. You can also use them to define the interface your process exposes to other processes or services. See Section 20.6, Communicating With Other BPMN Processes and Services Using Send and Receive Tasks , for more information about send and receive tasks. ■ Signal Events They enable you to broadcast a message to multiple process. The processes waiting for that specific message react to it. See Section 20.11, Communicating Between Processes Using Signal Events , for more information about signal events.

20.1.1 Introduction to Synchronous and Asynchronous Operations

Message events, send and receive tasks, and service task use operations to communicate with other BPMN processes or services. These operations can be synchronous or asynchronous. The main difference between a synchronous and an asynchronous operation is how they respond when you invoke them. When you invoke a synchronous operation, you send a message and then wait for an response before proceeding with the process flow. When you invoke an asynchronous operation, you send a message but do not wait for an answer to proceed with the process flow. The asynchronous operation receives the message and starts running. You can obtain the answer of an asynchronous operation by invoking a callback operation. If you invoke the callback operation before the asynchronous operation finishes running, then you must wait for it to complete before getting the answer. Message events and send and receive task require you to specify how to associate an operation with its corresponding callback. Conversations allow you to group one or more operations with their callback. A conversation may define multiple operations that you can use to access a BPMN process.

20.2 Communicating With Other BPMN Processes and Services Using Message Events

Message events enable you to communicate with the other BPMN processes and services in your project. You can use message events to: ■ Invoke an asynchronous service. Communicating With Other BPMN Processes and Services 20-3 ■ Invoke an asynchronous BPMN process. ■ Define an interface for other processes to communicate with your process. The implementation of the different message events varies according to the type of event and their role in the conversation. Table 20–1 describes the different implementation of message events. Note: The send and receive tasks perform similar functionality to the throw and catch message events. However, it is recommended that you do not mix both within a single process. Table 20–1 Message Event Implementation Event Initiates Conversation Continues Conversation Message Start ■ Define the interface of the operation ■ Use an interface from the business catalog Not Available Message Throw ■ Invoke a Service ■ Invoke a BPMN Process If it continues a start event or a catch event that define an interface: ■ Define the callback interface for an asynchronous operation ■ Define the output for a synchronous operation ■ Define an exception for a synchronous operation If it continues a message throw that invokes a service or a BPMN process: ■ Invoke an operation from the same service or BPMN process it continues. Message Catch ■ Define the interface of the operation ■ Use an interface from the business catalog If it continues a start event or a catch event that define an interface: ■ Use the interface of the initiator event ■ Define the interface of the operation If it continues a throw event that invokes a service or a BPMN process: ■ Invoke the callback of the service or the BPMN process Message End Not Available If it continues a start event or a catch event that define an interface: ■ Define callback for an asynchronous operation ■ Define the output for a synchronous operation ■ Define an exception for a synchronous operation If it continues a throw event that invokes a service or a BPMN process: ■ Invoke an operation from the same service or BPMN process it continues.