Linking an Operation to a Process

You can link an operation to a process so that the operation is implemented by the process or the process invokes the operation. Both cases are modeled using the Execute operation type on the Implementation tab of the process property sheet. You can only link operations to atomic processes and not decomposed processes.

Note: You can drag an operation from the Browser and drop it into a diagram to automatically create a process that invokes the operation.
  1. Open the property sheet of the process, click the Implementation tab, and select Execute operation from the Type list.
  2. Select the operation that will implement the process from the Implemented by list or create a new operation by clicking the Create tool to the right of the list (see Creating an Operation).
  3. Select the Action type of the process to specify the type of message exchange the activity performs from the following options:
    • Receive request – Receives a message from a partner.
    • Receive request and reply – Receives a message from a partner and sends a message in response.
    • Invoke operation – Initiates a message sent to a partner, the partner can respond or not.
    • Reply – Sends a message to a partner in response to a received message.
    • Reply fault – Sends a fault message to a partner in response to a received message.
    You can, optionally, click the Action Description button to open a text editor, and enter any appropriate information, as well as open, insert and save text files.
    Selecting the action type sets how the messages defined in the operation will be handled by the process. This table summarizes the relationships between the input/output messages of the operation and the received and sent messages of the activity, which depends on both the operation type (see Operation Properties) and the process action type:
      Execute Operation Process Action Type
      Activity Received Messages Activity Sent Messages
    Operation Type Receive Request Receive Request and Reply Reply Reply Fault Invoke Operation

    Undefined

    Received = None

    N/A

    N/A

    N/A

    Sent = None

    One-Way

    Received = Input

    N/A

    N/A

    N/A

    Sent = Input

    Request-Response

    Received = Input

    Received = Input

    Sent = Output

    Sent = Output

    Sent = Fault

    Received = Output

    Sent = Input

    Solicit-Response

    Received = Output

    Received = Output

    Sent = Input

    Sent = Input

    Sent = Fault

    Received = Input

    Sent = Output

    Notification

    Received = Output

    N/A

    N/A

    N/A

    Sent = Output

  4. [optional, when required by the action] Specify properties to control how the Received message is handled. You can specify a:
    • Correlation key (see Correlation Keys (BPM)) - directs a received message to the correct activity instance. Received correlation keys are mostly used for receive request activities.
    • Message mapping - (see Variables (BPM)) retrieves the content of the received message. The variable corresponds to the first message of the operation for receive activities, and to the second message of the operation for activities that send messages.
  5. [optional, when required by the action] Specify properties to control how the Sent message is handled. You can specify a:
    • Correlation key - (see Correlation Keys (BPM)) - contains the information that is useful to the partner in the next exchange with the activity.
    • Message mapping - (see Variables (BPM)) - sends information to a partner. The variable corresponds to the second message of the operation for receive activities, and to the first message of the operation for activities that send messages.
  6. Click OK to close the process property sheet. The process symbol displays a small icon to indicate that it is implemented using a web service operation, which displays in the Browser:
    In our example, we create a service provider called OrderManagement and an interface called CustomerInteraction, and then set the following properties for the operation:
    Tab Property Value
    General Name ReceiveOrder
    Input/Output Type Request-Response
    Input/Output Input Message Name OrderRequest
    Input/Output Input Message Message Format InInformation
    Input/Output Output Message Name OrderRequestConfirmation
    Input/Output Output Message Message Format OutInformation

    We select the operation in the Implemented by field, select Receive request and reply in the Action type list, and then click the New tool to the right of the Message mapping list in the Received message and Sent message groupboxes to create variables for the received and sent messages: