Starting a Process with the Receive Task

Modeling Business Processes with Oracle BPM 6-21 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.

6.4.8 Using Message Throw and Catch to Communicate Between Processes

You can use combinations of throw and catch events to invoke and communicate with other BPMN processes. When using a throw event to invoke another process, the following conditions must be met: ■ The process being invoked must be an asynchronous process. Although you can use a message throw to invoke a synchronous process, there is no mechanism for catching messages synchronously from the process. If you invoke a synchronous process you should use the service task. See Section 6.4.1, Introduction to the Service Task for more information. ■ The first time you use a throw event it must be paired to the message start event of the other process. This is required to trigger the process instance. After the instance has been trigger, you can use subsequent message throw events that are caught by the second process. Processes that begin with a message start and end with a message end event are exposed as services that can be used by other process and services within an Oracle BPM application. Processes invoked from another process are not considered child processes. This is important to consider when designing processes that use the terminate end event as a process end point. For example, a terminate event in the calling process does not terminate processes invoked with a message throw event Figure 6–25 shows the basic behavior when using throw and catch event to invoke a process and receive a response. Figure 6–25 Using Message Throw and Catch Events Between Processes This figure shows two processes: Process A and Process B. The following steps outline a possible scenario when using the message throw and catch events to communicate between processes. 1. Process A is invoked. 2. The token of Process A reaches a message throw event that is configured to invoke Process B. 3. The message throw event sends a message to the message start event of Process B. 4. The token of Process A proceeds to the next flow object. 5. The message start event triggers an instance of Process B.