Chapter 8 Building an Executable BPM: Managing Data and Choreography
Execute operation activity
An Execute operation activity is an activity that is implemented by an operation. It allows you to design the reception or the emission of messages.
These messages can represent:
- The exchange of information between partners
- The invocation of remote functions or procedures. In this case, Sent and Received messages are also called Input and Output parameters
When you select Execute operation in the Type list, the following properties display:
- Implemented by: Allows you to select the implementation operation. BPEL languages only supports One-Way and Solicit-Response operations. Sybase Integration Orchestrator only supports One-Way and Notification operation. You can also create an implementation operation by clicking the Create tool beside the Implemented by box. The Create tool is unavailable when an operation is already selected in the list. You can also click the Properties tool beside the Create tool to display the property sheet of the selected implementation operation or click the Select an implementation object tool to open a tree view and display a more global view to select an operation from the current model. When you click the Create tool, a standard confirmation box for object creation is displayed. Click Yes to open the Create New Operation Wizard and proceed to the operation creation. For more information about the Create New Operation Wizard, see section Creating an operation using the Create New Operation Wizard in chapter Building an Executable BPM: Working with Service Description Objects.
- Action type: Allows you to select an action type: Invoke Operation, Receive Request, Receive Request and Reply, Reply, and Reply Fault. For more information, see table below. You do not need to specify that property for Sybase Integration Orchestrator models as it can be calculated from the type of the WSDL Operation
- Action description: Details how the action is executed. You can click the Action Description button to open a text editor, in which you can write pseudo code for example or an information on the program to execute, as well as open, insert and save any text files containing valuable information
- Received message: Grayed-out box that displays the received message format associated with the operation you have selected in the Implemented By box. You can click the Properties tool to display the message format properties. The whole Received Message groupbox is unavailable and empty when the activity sends an operation that does not requires a second message (send without any response). It is only possible when the process language you used supports variables typed by a message or when the message to map contains only one part. In this case, when you change the Action Type value, whereas the mapping is defined, you automatically switch to the Sent Message groupbox
- Correlation key: Allows you to select a correlation key object. A received correlation key contains the information that allows the process engine to direct a received message to the correct process instance. Received correlation key objects are mostly used for receive requests activities. For activities that invoke operations, the received message corresponds to a synchronous response of an invoked operation and the engine identifies the process instance without any correlation key object
- Message mapping: Allows you to select an existing variable object. The whole content of the received message is retrieved in that variable. The variable object corresponds to the first message of the operation for receive activities, and to the second message of the operation for activities that send messages. It allows you to specify where the information sent by partners to the process is locally stored.
- Sent message: Grayed-out box that displays the sent message format associated with the operation you have selected in the Implemented By box. You can click the Properties tool to display the message format properties. The whole Sent Message groupbox is unavailable and empty when the activity receives an operation that does not contain a second message (the partner sends an information to the process without expecting a response). In this case, when you change the Action Type value, whereas the mapping is defined, you automatically switch to the Received Message groupbox
- Correlation key: Allows you to select a correlation key object. It contains the information provided to the partner in order for him to use it in a next exchange with the process. Only available for BPEL languages.
- Message mapping: Allows you to select an existing variable object. It specifies the local variable to use to for sending information to a partner. The variable object corresponds to the second message of the operation for receive activities, and to the first message of the operation for activities that send mess ages.
For more information about variables and correlation keys, see respectively sections Variables (Executable BPM) and Correlation Keys (Executable BPM).
Action types
You can select one of the following action types:
Action type
|
Description
|
Invoke operation
|
To initiate a message sent to a partner, the partner can respond or not
|
Receive Request
|
To receive a message from a partner
|
Receive Request and Reply
|
To receive a message from a partner and send a message in response)
|
Reply
|
To send a message to a partner in response to a received message
|
Reply Fault
|
To send a fault message to a partner in response to a received message
|
Dragging and dropping an operation
If you drag and drop an operation from the Browser to the diagram, you automatically create an activity that sends messages implemented by this operation.
Received message
The following table summarizes the relationships between the input/output messages of the operation and the received messages of the process:
Operation\Process
|
Receive request
|
Receive request and reply
|
Undefined
|
—
|
—
|
One-Way
|
Input is received
|
Not available
|
Request-Response
|
Input is received Output is ignored
|
Input is received Output is sent
|
Notification
|
Output is received
|
Not available
|
Solicit-Response
|
Input is ignored Output is received
|
Input is sent Output is received
|
Sent message
The following table summarizes the relationships between the input/output messages of the operation and the sent messages of the process:
Operation\Process
|
Reply
|
Reply fault
|
Invoke operation
|
Undefined
|
—
|
—
|
—
|
One-Way
|
Not available
|
Not available
|
Input is sent
|
Request-Response
|
Input is ignored Output is sent
|
Input is ignored Output is ignored Fault is sent
|
Input is sent Output is received
|
Notification
|
Not available
|
Not available
|
Output is sent
|
Solicit-Response
|
Input is sent Output is ignored
|
Input is ignored Output is ignored Fault is sent
|
Input is received Output is sent
|
Decomposing an Implemented By process
An Implemented By process cannot be composite. However, in BPEL languages, a receive activity associated with a request-response operation must specify the actions to perform between the reception of the input message and the emission of the response message. To do so, the activity that receives messages must be decomposed into a sub-graph to specify intermediate activities. If one of these conditions changes, the process becomes atomic again, loosing all its sub-objects. For Sybase Integration Orchestrator, the action type is linked to the operation type. The implementation of a Notification operation corresponds to the reception of a message. The implementation of a One-Way operation corresponds to the emission of a message.
Copyright (C) 2007. Sybase Inc. All rights reserved.
|
|