Skip Headers
Oracle® Fusion Middleware Modeling and Implementation Guide for Oracle Business Process Management
11g Release 1 (11.1.1.4.0)

Part Number E15176-04
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Master Index
Master Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
View PDF

21 Defining the Process Interface

This chapter describes how to configure a BPMN process to expose it as a service for other processes or services to invoke it. Oracle BPM enables you to expose the flow objects in the BPMN process as process operations. Other BPMN processes and services can invoke these operations.

This chapter includes the following sections:

This chapter assumes that you are familiar with SOA Composites. For more information about SOA Composites see Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite.

21.1 Defining the Process Interface

The process interface is a group of operations a BPMN process exposes for other processes or services to use. The SOA Composite shows the BPMN process interface in the Exposed Services section.

You must define an interface for your BPMN process if you want other processes and services to use it. The interface you define contains the operations other processes and services can invoke.

Synchronous process operations define input and output arguments.

When you define an asynchronous processes operation you must also define its corresponding callback operation. The asynchronous operation defines the input arguments and the callback operation defines the output arguments.

You can define the process interface by defining operations in your BPMN Process or you can choose to use an existing interface from the business catalog. You can implement any of these options using message events or send and receive tasks.

21.2 Using Message Events to Define the BPMN Process Interface

The process interface contains the operations that other services and processes can invoke to interact with a BPMN process. These operations may be synchronous or asynchronous.

You can define the process interface using message events or send and receive tasks.

To expose an operation in a BPMN process you can use a message start or message catch event configured as initiators. These message events enable you to define if the operation is synchronous or asynchronous. They also enable you to define the process input.

The process interface must always contain an operation that exposes the start event of a BPMN process. A process or service that invokes this BPMN process must always invoke the operation that corresponds to the start event before invoking any of the operations in the process.

To define the process output, you must configure the message throw or message end event that continue the event that defines the operation. If the operation is asynchronous, then these events also define the callback operation.

If an interface contains an asynchronous operation, then it must also define the callback operation that returns the result of this operation. See Section 21.2.1, "Using Message Events to Define the Callback Interface for BPMN Processes" for more information on how to define a callback operation in a BPMN Process.

Figure 21-1 shows a BPMN process that exposes a message start message event in its interface. It also shows how the SOA Composite editor displays this operation.

Figure 21-1 BPMN Process that exposes a message start event as an operation

Description of Figure 21-1 follows
Description of "Figure 21-1 BPMN Process that exposes a message start event as an operation"

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.

Figure 21-2 BPMN process that exposes a message start and a message catch event in its interface

Description of Figure 21-2 follows
Description of "Figure 21-2 BPMN process that exposes a message start and a message catch event in its interface"

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, "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.

Figure 21-3 Asynchronous BPMN process that exposes a start operation an its corresponding callback

Description of Figure 21-3 follows
Description of "Figure 21-3 Asynchronous BPMN process that exposes a start operation an its corresponding callback"

21.3 Using Message Events to Define Asynchronous Operations in a BPMN Processes

You can define asynchronous operations in a BPMN Process using message events. If you expose an asynchronous operation, then you must also expose a start operation. The client invoking the asynchronous service must invoke the start operation first to create an instance in the process. The asynchronous operation runs over the created instance.

You must also specify a callback operation for each of the asynchronous operations you define.

21.3.1 How to Configure the Start Operation of a BPMN Process as Asynchronous Using Message Events

You can expose the start event of a BPMN process as an asynchronous operation.

To configure the start operation of a BPMN process as asynchronous:

  1. Edit the BPMN process.

  2. Right-click the start activity.

  3. Select Properties.

  4. Click the Implementation tab.

  5. If the Implementation Type is not message, then change it to Message.

    The Conversation section appears.

  6. In the Conversation Properties section, select Define Interface from the Implementation list.

  7. If your asynchronous BPMN process requires input data, then you must define the process input in the Arguments Definition section.

    For more information on how to define the process input see Section 21.10, "Defining the Process Input and Output".

  8. Expand the Advanced section.

  9. Select Asynchronous.

  10. Enter a name for the start operation.

    The SOA Composite uses the name you specify for the operation to display it in the SOA Composite.

  11. Click OK.

  12. Follow the procedure described in Section 21.3.2, "How to Define a Callback Operation Using Message Events", to define the callback operation of the asynchronous BPMN process.

21.3.2 How to Define a Callback Operation Using Message Events

You can expose a callback operation that pairs with an asynchronous operation using message events.

To define the callback operation:

  1. Edit the BPMN process.

  2. Locate the point in your process where you want to return the answer of the corresponding operation.

  3. To return the answer before the process finishes, then add an intermediate message throw event to your process.

    Note:

    To return the answer when the processes finishes, then add a message end event or change the implementation type of the end to message
  4. Right-click the message throw event or the message end event.

  5. Select Properties.

  6. Click the Implementation tab.

  7. If you are editing a throw message event, in the Conversation section, select Continues. If you are editing an end message event this is the default selection and you cannot change it.

  8. From the Initiator list, select the event to associate with the callback.

  9. If you want your asynchronous process to return output data, then you must define the process output in the Argument Definition section.

    For more information on how to define the process output, see Section 21.10, "Defining the Process Input and Output".

  10. Expand the Advanced section.

  11. To change the name of the callback operation, then enter a name.

    The SOA Composite uses the name you specify for the operation to display it in the SOA Composite.

  12. Click OK.

21.3.3 What Happens When You Configure a BPMN Process Start Operation as Asynchronous Using Message Events

When you invoke the process start event you must not wait for a response before continuing with the process flow. To obtain the response you must invoke the process callback operation.

You can invoke asynchronous BPMN processes using message events or send and receive tasks.

See Section 20.3, "Using Message Events to Invoke Asynchronous Services and Asynchronous BPMN Processes" and Section 20.7, "Using Send and Receive Tasks to Invoke Asynchronous Services and Asynchronous BPMN Processes", for more information on how to invoke an asynchronous BPMN process.

In the SOA Composite, the interface of an asynchronous process shows at least two operations: the operation to start the process and its callback operation.

21.3.4 How to Add an Asynchronous Operation to a BPMN Process Interface Using Intermediate Message Events

You can expose an intermediate message event as an asynchronous operation.

To add an asynchronous operation to a BPMN process interface:

  1. Edit the BPMN process.

  2. Locate the point in your process where you want to add the new operation.

  3. Add an intermediate catch message event.

  4. Right-click the catch message event.

  5. Select Properties.

  6. Click the Implementation tab.

  7. In the Conversation section, select Initiates.

  8. In the Properties section, select Define Interface from the Implementation list.

  9. If your want your operation to have output arguments, then define input arguments.

    For more information on how to define output arguments see Section 21.10, "Defining the Process Input and Output".

  10. Expand the Advanced section.

  11. Select Asynchronous.

  12. To change the name of the callback operation, then enter a name in the Operation Name field.

  13. Click OK.

  14. Follow the procedure described in Section 21.3.2, "How to Define a Callback Operation Using Message Events", to define the callback operation for this asynchronous operation.

21.3.5 What Happens When You Add an Asynchronous Operation to a BPMN Process Interface Using Message Events

The asynchronous operation and the corresponding callback operation are available for other processes to invoke them.

The SOA Composite shows the asynchronous operation and its callback in the BPMN process interface.

21.4 Using Message Events to Define a Synchronous Operation in a BPMN Processes Interface

You can define a synchronous operation in your BPMN process using message events. You define the synchronous operation using a message start or catch event, and a message throw or catch that continue the first. The message start or catch event defines the process input. The message throw or end event defines the process output.

If you use a message catch event to define a synchronous operation, then you must also define a start operation. You must invoke the start operation before invoking the synchronous operation, to create an instance in the process. The synchronous operation runs over the created instance.

See Section 20.5, "Using Service Tasks to Invoke Synchronous Operations in Services and BPMN Processes", for more information on how to invoke a synchronous BPMN process.

Message events enable you to send error message when you define synchronous operations. For more information about error message events, see Section 19.8, "Handling Errors in a Peer Process Using Message Events".

21.4.1 How to Configure the Start Operation of a BPMN Process as Synchronous Using Message Events

You can expose the message start event of a BPMN process as a synchronous operation.

To configure the start operation of a BPMN process as synchronous using message events:

  1. Edit the BPMN process.

  2. Right-click the start activity.

  3. Select Properties.

  4. Click the Implementation tab.

  5. If the Implementation Type is not message, then change it to Message.

    The Conversation section appears.

  6. In the Conversation Properties section, select Define Interface from the Implementation list.

  7. If your synchronous BPMN process requires input data, then you must define the process input in the Argument Definition section.

    For more information on how to define the process input, see Section 21.10, "Defining the Process Input and Output".

  8. Expand the Advanced section.

  9. Select Synchronous.

  10. Enter a name for the start operation.

    The SOA Composite uses the name you specify for the operation to display it in the SOA Composite.

  11. Click OK.

  12. Configure the end event following the procedure described in Section 21.4.2, "How to Configure the End Event of a Synchronous Process".

Note:

When adding a synchronous start event, you must also add an end or catch message event that is part of the same conversation. The end or catch message event continue the start event thus they are also synchronous.

21.4.2 How to Configure the End Event of a Synchronous Process

When you expose a start event as a synchronous operation, you must configure the end event of the process as synchronous.

To Configure the end event of a synchronous process:

  1. Right-click the end event.

  2. Select Properties.

  3. Click the Implementation tab.

  4. If the Implementation Type is not message, then change it to Message.

    The Conversation section appears.

  5. If there is no Initiator Node selected, then select the start event of your process from the Initiator Node list.

    The sub-section to define the interface appears in the Properties section.

  6. If your synchronous BPMN process returns output data, then you must define the process output in the Argument Definition section.

    For more information on how to define the process output, see Section 21.10, "Defining the Process Input and Output".

  7. If your synchronous BPMN process returns output data, then you must specify how the data objects in your project map to the process output.

    For more information on how to configure data associations, see Section 8.13, "Introduction to Data Associations".

  8. Click OK.

21.4.3 What Happens When You Configure the Start Operation of a BPMN Process as Synchronous Using Message Events

The process start event exposes a synchronous operation. When you invoke the process start event from a client, you must wait for a response before continuing with the process flow. The service task that invokes the synchronous process waits for the synchronous process to finish before the token moves to the next activity in the process.

You must invoke synchronous operations in a BPMN processes using a service tasks.

See Section 20.5, "Using Service Tasks to Invoke Synchronous Operations in Services and BPMN Processes", for more information on how to invoke a synchronous BPMN process.

In the SOA Composite, the interface of a synchronous process only shows one operation for the start event.

21.5 Using Message Events with an Interface from the Business Catalog to Define Your Process Interface

When configuring the message events that define the interface of your process, you can choose to use an existing interface instead of defining an interface.

You can choose any of the operations from the References predefined module in the business catalog and use it as the interface for your process operations.

The operation from the reference that you choose to define the interface of your operation, determines if your operation is synchronous or asynchronous.

If you define a message start or a message catch event using an interface from the business catalog, then the associated message throw or message end event must also use an interface from the business catalog. If the operation you are defining is asynchronous, then the message throw or message end events can only use callback operations.

Generally you define the process interface using an interface from the business catalog to use a interface that exists in the composite and later on add a wire from this interface to the BPMN process.

You might provide multiple implementations of the same interface. For example you might implement an existing interface in BPEL and BPMN technologies. To implement the BPMN interface you must define the process using an interface from the business catalog.

Figure 21-4 shows how a BPMN process can reuse the interface of a BPEL process to provide a parallel implementation in BPMN. The BPMN process uses the interface of the BPEL process that appears in the business catalog to define its operations. It also shows how the SOA Composite editor indicates that a BPMN process uses another SOA Component to define its interface.

Figure 21-4 Process That Uses an Interface from the Business Catalog

Description of Figure 21-4 follows
Description of "Figure 21-4 Process That Uses an Interface from the Business Catalog"

21.5.1 How to Use an Interface from the Business Catalog to Define an Operation in a BPMN Process Interface Using Message Start and Catch Events

You can use an interface from the business catalog to define the interface of your BPMN process.

To use an interface from the business catalog to define an operation:

  1. Edit your BPMN process.

  2. Add the start event or catch event to use to define the process interface.

  3. Right-click the start or catch event.

  4. Select Properties.

  5. Click the Implementation tab.

  6. If you are editing a catch message event, in the Conversation section, select Initiates. If you are editing a start event this is the default selection and you cannot change it.

  7. In the Properties section, select Interface from Catalog from the Implementation list.

    The Properties section changes and the Name and Operation appear.

  8. Click the Browse button next to the Name field.

    The Type dialog appears.

  9. Select the reference you want to use as the process interface.

  10. Click OK.

  11. From the Operation list, select the operation you want to use as the process interface.

  12. If the interface you selected requires input data, then you must specify how the data objects in the project map to this input data, by configuring the message event data association.

    For more information on how to configure data associations, see Section 8.13, "Introduction to Data Associations".

  13. Click OK.

  14. Configure an existing message end or message throw event to use an interface from the business catalog or add a new event and configure it, following the procedure described in Section 21.5.2, "How to Configure a Message End or a Message Throw Event to Use an Interface from the Business Catalog Using Message Events".

21.5.2 How to Configure a Message End or a Message Throw Event to Use an Interface from the Business Catalog Using Message Events

You can use an interface from the business catalog to define the interface of your BPMN process.

To configure a message end or message throw event to use an interface from the business catalog:

  1. Edit the BPMN process.

  2. Right-click the message end or message throw event.

  3. Select Properties.

  4. Click the Implementation tab.

  5. In the Conversation section, select Continues.

    The Properties section changes, the Initiator Node, Name and Operation fields appear.

  6. From the Initiator Node list, select the message start or message catch event that defines the process interface.

  7. Click the Browse button next to the Name field.

    The Type dialog appears.

  8. Select the component you want to use as the message catch or message end interface.

  9. Click OK.

  10. From the Operation list, select the operation you want to use as the as the message catch or message end interface.

  11. If the interface you selected requires output data, then you must specify how the data objects in the project map to this output data, by configuring the message event data association.

    See Section 8.13, "Introduction to Data Associations", for more information on how to configure data associations.

  12. Click OK.

21.5.3 What Happens When You Use an Interface from the Business Catalog to Define an Operation

The operation you define uses the signature of the operation form the interface in the business catalog. To invoke the operation in the BPMN process you must use the same operation name and input that you use to invoke the operation in the interface from the business catalog. The operation in the BPMN process returns the same output that the operation in the interface from the business catalog.

The SOA composite shows a wire between the BPMN process and the interface used to define its operations.

If you define all the process operations using interfaces from the business catalog, then JDeveloper asks you if it should delete the BPMN process WSDL. Because the BPMN process does not define an interface, but uses existing interfaces, its WSDL is no longer necessary and you can delete it.

21.6 Defining the BPMN Process Interface Using Send and Receive Tasks

The process interface contains the operations that other services and processes can invoke to run a BPMN process. These operations may be synchronous or asynchronous.

You can define the process interface using message events or send and receive tasks.

See Section 21.2, "Using Message Events to Define the BPMN Process Interface", for more information on how to define the process interface using message events.

To expose an operation in a BPMN process you can use a receive task. The receive task enables you to define if the operation is synchronous or asynchronous. It also enables you to define the process input.

The process interface must always contain an operation that exposes a receive task that creates an instance. A process or service that invokes this BPMN process must always invoke this operation before invoking any of the operations in the process.

To define the process output, you must configure the send task that continues the receive that defines the operation. If the operation is asynchronous, then the send task also defines the callback operation.

If an interface contains an asynchronous operation, then it must also define the callback operation that returns the result of this operation. See Section 21.6.1, "Defining the Callback Interface for BPMN Processes Using a Send Task" for more information on how to define a callback operation in a BPMN Process.

In addition, the process interface may contain the operations exposed by the receive tasks in the process. Before invoking an operation that corresponds to a receive task, you must always invoke the operation that corresponds to the received task configured to create an instance.

Figure 21-5 shows a BPMN process that exposes a receive task in its interface in addition to the receive tasks that creates the instance. It also shows how the SOA Composite editor displays these operations.

Figure 21-5 BPMN process that exposes an asynchronous operation defined using send and a receive task

Description of Figure 21-5 follows
Description of "Figure 21-5 BPMN process that exposes an asynchronous operation defined using send and a receive task"

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.6.1, "Defining the Callback Interface for BPMN Processes Using a Send Task" for more information on how to define a callback operation using send events.

21.6.1 Defining the Callback Interface for BPMN Processes Using a Send Task

A BPMN process must expose a callback operation for each of the asynchronous operations it defines. You can define a callback operation using a send task.

The callback operation returns the response to the service or process that invoked the asynchronous operation. If the service or process is waiting for the answer, then they receive it immediately. If the service or process is not waiting for the answer yet, then they receive it when they get to the part of the process or code that waits for the answer.

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.

Figure 21-5 shows a receive task that exposes the BPMN process callback operation.

21.7 Defining Asynchronous Processes Operations Using Send and Receive Tasks

You can define asynchronous operations in a BPMN Process using send and receive tasks. If you expose an asynchronous operation, then you must expose a start operation. The process invoking the asynchronous service must invoke the start operation first to create an instance in the process. The asynchronous operation runs over the created instance.

You must also specify a callback operation for each of the asynchronous operations you define.

21.7.1 How to Define an Asynchronous Process Operation Using Send and Receive Tasks

You can define an asynchronous process operation using send and receive tasks.

To define an asynchronous process operation using send and receive tasks:

  1. Edit the BPMN process.

  2. Change the trigger of the start and end events to None:

    1. Right-click the event.

    2. Select Properties.

    3. Click the Implementation tab.

    4. From the Implementation Type list, select None.

    5. Click OK.

  3. Add a receive task immediately after the start event.

  4. Right-click the receive task.

  5. Select Properties.

  6. Click the Implementation tab.

  7. Select Create Instance.

  8. In the Conversation section, select Initiates.

  9. In the Conversation Properties section, select Define Interface.

  10. If your asynchronous BPMN process requires input data, then you must define the process input in the Argument Definition section.

    For more information on how to define the process output, see Section 21.10, "Defining the Process Input and Output".

  11. Expand the Advanced section.

  12. Select Asynchronous.

  13. Enter a name for the start operation.

    The SOA Composite uses the name you specify for the operation to display it in the SOA Composite.

  14. Click OK.

  15. Follow the procedure described in Section 21.7.3, "How to Define a Callback Process Operation Using a Send Task", to define the callback operation of the asynchronous BPMN process.

21.7.2 How to Add an Asynchronous Process Operation to the Process Interface Using a Receive Task

You can expose a receive task as an asynchronous process operation.

To add an asynchronous process operation using a receive task:

  1. Edit the BPMN process.

  2. Locate the point in your process where you want to add the new operation.

  3. Add a receive task in the point you located.

  4. Right-click the receive task.

  5. Select Properties.

  6. Click the Implementation tab.

  7. In the Conversation section, select Initiates.

  8. In the Conversation Properties section, select Define Interface.

  9. If your asynchronous BPMN process requires input data, then you must define the process input in the Argument Definition section.

    For more information on how to define the process output, see Section 21.10, "Defining the Process Input and Output".

  10. Expand the Advanced section.

  11. Select Asynchronous.

  12. Enter a name for the start operation.

    The SOA Composite uses the name you specify for the operation to display it in the SOA Composite.

  13. Click OK.

21.7.3 How to Define a Callback Process Operation Using a Send Task

You can expose a send task as the callback operation that pairs with an asynchronous process operation.

How to define the callback operation for an asynchronous process using a send task:

  1. Edit the BPMN process.

  2. Locate the point in your process where you want to return the answer of the corresponding operation.

  3. Add a send task to the point you located in your process.

    You must place the send task after the receive task in the process flow.

  4. Right-click the send task.

  5. Select Properties.

  6. Click the Implementation tab.

  7. In the Conversation section, select Continues.

  8. From the Initiator list, select the receive task to associate with the callback.

  9. If you want your asynchronous process to return output data, then you must define the process output in the Argument Definition section.

    For more information on how to define the process output, see Section 21.10, "Defining the Process Input and Output".

  10. Expand the Advanced section.

  11. Select Synchronous or Asynchronous.

  12. To change the name of the start operation, then enter a name.

    The SOA Composite uses the name you specify for the operation to display it in the SOA Composite.

  13. Click OK.

21.7.4 What Happens When You Define an Asynchronous Operation Using Send and Receive Tasks

The asynchronous operation and the corresponding callback operation are available for other processes to invoke them.

When you invoke the process asynchronous operation you defined, you must not wait for a response before continuing with the process flow. To obtain the response you must invoke the process callback operation.

The SOA Composite shows the asynchronous operation and its callback in the BPMN process interface.

You can invoke asynchronous BPMN processes using message events or send and receive tasks.

See Section 20.3, "Using Message Events to Invoke Asynchronous Services and Asynchronous BPMN Processes" and Section 20.7, "Using Send and Receive Tasks to Invoke Asynchronous Services and Asynchronous BPMN Processes", for more information on how to invoke an asynchronous BPMN process.

21.8 Using Send and Receive Tasks to Define a Synchronous Operation in a BPMN Process

You can define a synchronous operation in your BPMN process using send and receive tasks. You define the synchronous operation using a receive task and send tasks that continues the receive task. The receive task defines the process input and the send task defines the process output.

If you use a send task to define a synchronous operation, then you must also define a start operation. You must invoke the start operation before invoking the synchronous operation, to create an instance in the process. The synchronous operation runs over the created instance.

See Chapter 20, "Using Service Tasks to Invoke Synchronous Operations in Services and BPMN Processes", for information on how to invoke a synchronous operation in a BPMN process from another BPMN process.

21.8.1 How to Configure a Process Operation as Synchronous Using Send and Receive Tasks

You can expose send and receive tasks as a synchronous process operation.

To configure a process operation as synchronous:

  1. Edit the BPMN process.

  2. Change the trigger of the start and end events to None:

    1. Right-click the event.

    2. Select Properties.

    3. Click the Implementation tab.

    4. From the Implementation Type list, select None.

    5. Click OK.

  3. Add a receive task after the start event.

  4. Right-click the receive task.

  5. Select Properties.

  6. Click the Implementation tab.

  7. Select Create Instance.

  8. In the Conversation Properties section, select Define Interface.

  9. If your synchronous BPMN process requires input data, then you must define the process input in the Argument Definition section.

    For more information on how to define the process input, see Section 21.10, "Defining the Process Input and Output".

  10. Expand the Advanced section.

  11. Select Synchronous.

  12. Enter a name for the start operation.

    The SOA Composite uses the name you specify for the operation to display it in the SOA Composite.

  13. Click OK.

21.8.2 What Happens When You Define a Synchronous Operation Using Send and Receive Tasks

The asynchronous operation and the corresponding callback operation are available for other processes to invoke them.

You must invoke synchronous operations in a BPMN processes using a service tasks.

See Section 20.5, "Using Service Tasks to Invoke Synchronous Operations in Services and BPMN Processes", for more information on how to invoke a synchronous BPMN process.

In the SOA Composite, the interface of a synchronous process only shows one operation for the receive task.

21.9 Using Send and Receive Tasks with an Interface from the Business Catalog to Define Your Process Interface

When configuring the receive tasks that define the interface of your process, you can choose to use an existing interface instead of defining an interface.

You can choose any of the operations from the components in the business catalog and use it as the interface for your process operations.

The operation from the component in the business catalog that you choose to define the interface of your operation, determines if your operation is synchronous or asynchronous.

If you define a receive task using an interface from the business catalog, then the associated send task must also use an interface from the business catalog. If the operation you are defining is asynchronous, then the message send task can only use callback operations.

Figure 21-6 shows a process that uses a BPEL process from the business catalog to define its operations. It also shows how the SOA Composite editor indicates that a BPMN process uses another SOA Component to define its interface.

Figure 21-6 BPMN Process that uses an interface from the Business Catalog defined using send and receive tasks

Description of Figure 21-6 follows
Description of "Figure 21-6 BPMN Process that uses an interface from the Business Catalog defined using send and receive tasks"

21.9.1 How to Use an Interface from the Business Catalog to Define an Operation in a BPMN Process Interface Using Send and Receive Tasks

You can use an interface from the business catalog to define your BPMN process interface.

To use an interface from the business catalog to define an operation:

  1. Edit your BPMN process.

  2. Add the start event or catch event to use to define the process interface.

  3. Right-click the start or catch event.

  4. Select Properties.

  5. Click the Implementation tab.

  6. If you are editing a catch message event, in the Conversation section, select Continues. If you are editing a start event this is the default selection and you cannot change it.

  7. In the Properties section, select Interface from Catalog.

    The Properties section changes and the Name and Operation appear.

  8. Click the Browse button next to the Name field.

    The Type dialog appears.

  9. Select the component you want to use as the process interface.

  10. Click OK.

  11. From the Operation list, select the operation you want to use as the process interface.

  12. If the interface you selected requires input data, then you must specify how the data objects in the project map to this input data, by configuring the message event data association.

    For more information on how to configure data associations, see Section 8.13, "Introduction to Data Associations".

  13. Click OK.

  14. Configure an existing message end or message throw event to use an interface from the business catalog or add a new event and configure it, following the procedure described in Section 21.5.2, "How to Configure a Message End or a Message Throw Event to Use an Interface from the Business Catalog Using Message Events".

21.9.2 How to Configure a Message End or a Message Throw Event to Use an Interface from the Business Catalog Using Send and Receive Tasks

You can use an interface from the business catalog to define your BPMN process interface.

To configure a message end or message throw event to use an interface from the business catalog:

  1. Edit the BPMN process.

  2. Right-click the message end or message throw event.

  3. Select Properties.

  4. Click the Implementation tab.

  5. In the Conversation section, select Continues.

    The Properties section changes, the Initiator Node, Name and Operation fields appear.

  6. From the Initiator Node list, select the message start or message catch event that defines the process interface.

  7. Click the Browse button next to the Name field.

    The Type dialog appears.

  8. Select the component you want to use as the message catch or message end interface.

  9. Click OK.

  10. From the Operation list, select the operation you want to use as the as the message catch or message end interface.

  11. If the interface you selected requires input data, then you must specify how the data objects in the project map to this input data, by configuring the message event data association.

    See Section 8.13, "Introduction to Data Associations", for more information on how to configure data associations.

  12. Click OK.

21.9.3 What Happens When You Use Send and Receive Tasks with an Interface from the Business Catalog to Define an Operation

The operation you define uses the signature of the operation form the interface in the business catalog. To invoke the operation in the BPMN process you must use the same operation name and input that you use to invoke the operation in the interface from the business catalog. The operation in the BPMN process returns the same output that the operation in the interface from the business catalog.

The SOA composite shows a wire between the BPMN process and the interface used to define its operations.

If you define all the process operations using interfaces from the business catalog, then JDeveloper asks if it should delete the BPMN process WSDL. Because the BPMN process does not define an interface, but uses existing interfaces, its WSDL is no longer necessary and you can delete it.

21.10 Defining the Process Input and Output

When you add operations to a BPMN process, you are defining points in the process that other processes or services can use to communicate with it.

The communication between processes and other processes or services generally requires an input and returns an output.

The flow events that you use you to define the BPMN process operations enable you to define input and output arguments. These input and output arguments define the process input and output.

21.10.1 How to Add Input and Output Arguments to a BPMN Process

When you expose operations using message start and end events, or send and receive tasks, you can define the input and output argument they require.

To add input and output arguments to a BPMN process:

  1. In the Argument Definition section, click the Add button.

    The Create Argument dialog appears.

  2. Enter a name to identify the argument.

  3. Click the Browse More Types Button.

    The Browse Type dialog appears.

  4. From the Type list, select a basic data type or select <Component> to use a complex data type.

  5. If you selected <Component> then select a component from the list of available complex data types.

  6. Click OK.

    The Browse Type dialog disappears and the data type you selected appears in the Type field in the Create Argument Dialog.

  7. Click OK.

    The argument appears in the Argument Definition table.

21.10.2 How to Edit the Input and Output Arguments of a BPMN Process

You can change the name and the types of the arguments of a BPMN Process.

To edit the input and output arguments of a BPMN process:

  1. From the Argument Definition table, select an argument.

  2. In the Argument Definition section, click the Edit button.

    The Edit Argument dialog appears.

  3. Change the name of the type.

  4. Click OK.

    The argument in the Argument Definition table shows the updated name and type.

21.10.3 How to Delete an Input or Output Argument of a BPMN Process

You can delete input and output arguments that you do not use or need.

To delete an input or output argument:

  1. From the Argument Definition table, select an argument.

  2. In the Argument Definition section, click the Remove button.

    The select argument is removed from the Argument Definition table.