Reusable Processes Introduction to the Call Activity

Modeling Business Processes with Oracle BPM 6-19 Figure 6–22 Using the Send and Receive Tasks to Communicate Between Processes This illustration is described in the text. The following steps outline a possible scenario when using the send and receive tasks to communicate between processes. 1. Process A is invoked. 2. A token of Process A reaches the send task. 3. The send task invokes Process B. This is defined by the implementation for the send task. 4. The token of process A proceeds to the next flow object in the process. 5. The receive task initiates a process instance of Process B. The receive task must have the Create Instance property defined. See Section 6.4.4.2 . 6. The newly created token proceeds through process B. 7. Depending on the specific behavior of your process, the following scenarios may occur: a. If the token of Process A reaches a receive task paired with a send task from Process B, the token of process A waits until a response is received. After the response is received, the token of Process A continues to the next flow object. b. If the token of Process B reaches a send task paired with a receive task in Process A, Process B sends a response to Process A. The token of Process B continues to the next flow object. 8. Both processes continue running. You can use subsequent send and receive pairs to define subsequent communicate between the two processes.

6.4.6 Introduction to the Message Throw Event

The message throw event enables you to send a message to another process or service. Figure 6–23 shows the default notation for the message throw event. Figure 6–23 The Message Throw Event The message throw is represented by two concentric circles with a blue envelope in the middle. 6-20 Modeling and Implementation Guide for Oracle Business Process Management The throw message event can be used to invoke the following types of processes and services: ■ Other BPMN processes ■ BPEL processes ■ SOA service adapters ■ Mediators that are exposed as services Process analysts may add message throw events to a process to define where a process must invoke another process or service. However, process developers are typically responsible for implementing the connectivity with other processes. Additionally, they are typically responsible for creating and implementing the services invoked by the message throw event. For information on how implement message throw events, see Communicating With Other BPMN Processes and Services Using Message Events in the Oracle Fusion Middleware Modeling and Implementation Guide for Oracle Business Process Management. Message throw events are often used to invoke other BPMN processes by calling the message start event of another process. See Section 6.2.3, Introduction to the Message Start Event for more information. Message throw events are also frequently used with message catch events to receive a response from the process or service invoked. However, they are always used asynchronously. After the message throw event sends a message to another process or service, the toke immediately moves to the next flow object of the process. If your process receives a response synchronously, you should use the service task to invoke the process or service. See Section 6.4.1, Introduction to the Service Task for more information.

6.4.7 Introduction to the Message Catch Event

The message catch intermediate event enables you to receive a message from another process or service. Figure 6–24 shows the default notation for the message catch event. Figure 6–24 The Message Catch Event The message catch is represented by two concentric circles with a yellow envelope in the middle. The message catch event is frequently used with the message throw event to communicate with another BPMN process. See Section 6.4.8 for information on how message throw events with message catch event. Note: The send and receive tasks perform similar functionality to the throw and catch message events. However, you cannot use the message throw event to invoke a process that is initiated with a message receive task.