What Happens When You Invoke a Synchronous BPMN Process Operation Using a Service Task

20-16 Modeling and Implementation Guide for Oracle Business Process Management

14. Click OK.

20.7.6 What Happens When You Invoke an Asynchronous BPMN Process Using Send and Receive Tasks

When you invoke an asynchronous service operation using a send task, the BPMN Service Engine does not wait for the service to answer. It continues running the flow objects that follow to the send task. The BPMN process can obtain the response of the asynchronous service by invoking the service callback operation using a receive task. Even if the service finishes running, the BPMN process does not receive the service response until it invokes the callback operation using a receive task. If the service is still running when the BPMN Service Engine runs the receive task, then the engine waits for the service operation to complete before passing the token to the next flow object in the process.

20.8 Introduction to Invoking a Process Using Call Activities

You can invoke a process from another process using call activities. The invoked process is a child of the process invoking it. When you run a call activity, the engine does not create a new token for the reusable process. The token in the parent process passes to the reusable process. When the token completes the child process, it returns to the parent process to continue running the activities that follow the call activity. The child process must be a reusable process. Reusable processes can be invoked from multiple processes. You can only start a reusable process by invoking it from a call activity. You cannot access reusable process from other SOA components because they are not part of the SOA composite. The start event of a reusable process must always be of type none. The end event can be a error or a message event.

20.9 Invoking a Process Using Call Activities

You can use call activities to invoke a process from another process. The child process must be a reusable process. You can invoke a reusable process from multiple processes within your BPM project.

20.9.1 How to Invoke a Process Using Call Activities

You can invoke a process from another process using call activities. The invoked process must be a reusable process. To invoke a process using call activities: 1. Add a call activity to your process. 2. Right-click the call activity.

3. Select Properties.

4. Click the Implementation tab.

Communicating With Other BPMN Processes and Services 20-17

5. From the Process list, select a reusable process.

For information on how to create a reusable process, see Section 5.1.2, How to Create a New Business Process . 6. If necessary, configure data associations or transformations. For more information on data associations, see Section 8.13, Introduction to Data Associations . For more information on transformations, see Section 8.14, Introduction to Transformations .

7. Click OK.

20.10 Introduction to Communication Between Processes Using Signal Events

Signal events allow you to broadcast a message to all the processes in a BPM project. Only the processes configured to listen to that signal react. In the Sales Quote example you might want to trigger a signal when a quote gets approved to trigger all the process that depend on the approval of a quote. Mediators and BPEL processes also react when a BPMN process broadcasts a signal and they can also trigger a BPMN process by broadcasting a signal. Oracle BPM uses Oracle Event Delivery Network EDN to send and receive signals. For more information about Oracle EDN see Using Business Events and the Event Delivery Network in Oracle Fusion Middleware Developers Guide for Oracle SOA Suite. For information on how to access Event in Oracle BPM, see Chapter 12.1, Introduction to the Business Catalog . The EDN events your SOA project defines automatically appear in the business catalog in the Events predefined module Events. When you add a signal event you can choose which of the events in the business catalog the signal event broadcasts or reacts to. You can broadcast a signal from a throw intermediate signal event or from a signal end event. In a BPMN process you can only receive a signal in a a signal start event in another process. The process that broadcasts the message has no information about the receivers. You might add or remove processes that react to a signal without impacting the process that broadcasts the signal. In a similar way, the process that reacts to a specific message has no information about the processes that broadcast that message. If you add a process that broadcast a message to your project, all the process waiting for that specific message react to it without you having to modify them. The events you use to broadcast a signal contain a payload that you can use to send information to all the processes configured to react to this specific signal. To assign values to the payload in the event you must configure the signal throw event data association. This data association enables you to pass the relevant data stored in the process and project data objects to the event. When the corresponding processes receive the signal, they must obtain the data in the event using another data association. This data association defines which data objects store the data in the event received in the signal start event.