23 Defining Conversations

This chapter describes how to create and configure conversations in your BPM project and how to view and use a collaboration diagram.

This chapter includes the following sections:

23.1 Introduction to Conversations

Conversations define the state of a collaboration between two participants. You must use them when a process needs to have multiple parallel conversations with different instances of the same process or service, for example within a multi-instance subprocess. Conversations group the message exchange between two or more processes. The message exchange between processes is called collaboration.

A process instance may need to communicate with different instances in another process. For example, a procurement process may need to interact with two different instance in a supplier process, each representing a different item. You can model this message exchange using conversations.

Within a process you can define multiple conversations that you can reuse among the flow objects in that process.

The members of the collaboration are called participants. The participants in a collaboration can be one of the following:

  • BPMN processes

  • BPEL processes

  • Human Tasks

  • Business Rules

  • External References

Collaboration diagrams allows you to view the process flow together with the interactions your process has with other participants in the conversation.

23.1.1 Defining the Default Conversation

Your BPM project defines a conversation by default. If you do not want to define multiple conversations you must use this default conversation to gather all the message exchange among the processes in your project.

You can only define one default conversation per project. However you can modify your project to use a different default conversation than the one it uses by default. For more information on how to do this, see How to Create a Conversation.

23.2 Understanding the Different Types of Conversations

The different types of conversations allow you to specify the different types of interaction your process can establish with other processes or services.

The following list describes the different types of conversations:

  • Define Interface: use this type to define the operations that other services and processes can invoke to interact with a BPMN process.

  • Use Interface: use this type to configure your process to use an interface from a component in the Business Catalog.

  • Process Call: use this type to invoke another BPMN process.

  • Service Call: use this type to invoke a service defined in your BPM project.

For more information on how to communicate your process with other processes or services, see the following chapters:

23.3 Creating Conversations

You can create a conversation to model the message exchange between a process instance and the instances in another process or service.

Conversations enable you to group the message exchange between the processes in your BPM project.

23.3.1 How to Create a Conversation

To create a conversation:

  1. In the Applications window, select a process from the project in which you want to define the correlation.
  2. In the Structure window, right-click the Conversations node.
  3. Select New.

    The Create Conversation dialog box appears.

  4. Enter a name to identify the conversation.
  5. If you want this conversation to be the default conversation for this project, select Default Conversation.
  6. From the Type list select the type for this conversation.

    Available types are:

    • Define Interface

    • Use Interface

    • Process Call

    • Service Call

  7. If you want to expose this conversation as a SOAP service, select Expose as a SOAP Service.
  8. Click OK.

23.4 Defining Conversations for a BPMN Element

The BPMN elements you use to communicate a process with other processes or services require you to define a conversation. The defined conversation groups the messages exchanged between the processes and services within a BPM project.

The BPMN elements that require you to define a conversation are:

  • Message Events

  • Send and Receive Tasks

  • Signal Events

The main reason to define a conversation is to have a process with a multi-instance activity with an external receive.

23.4.1 How to Define a Conversation for a BPMN Element

You can define a conversation for a BPMN element.

To define a conversation for a BPMN element:

  1. Right-click the BPMN element.

    The Properties dialog box appears.

  2. Click the Implementation tab.
  3. Click the Browse button next to the Conversation field.

    The Conversation dialog box appears.

  4. Select a conversation from the list.

    To search for a conversation, enter part of the name or the complete name in the Search field.

    To create a new conversation, click the New button. For more information on how to create a new conversation, see Creating Conversations.

  5. Click OK.

    The Message Exchange section displays different fields according to the type of conversation you selected.

  6. Configure the Message Exchange section.
  7. Click OK.

23.4.2 What Happens When You Define a Conversation for a BPMN Element

You can define conversations at process or subprocess level, this determines the visibility scope of the conversation from a specific instance.

23.5 Viewing the Collaboration Diagram

The collaboration diagram shows the flow of your process and how that process interacts with other processes or services in the same diagram.

You can view the collaborations in your process using the collaboration diagram.

23.5.1 How to View the Collaboration Diagram

To view the collaboration diagram:

  1. Open the BPMN process.
  2. In the BPMN process editor, click the Collaboration tab located at the bottom next to the Designer tab.

    The collaboration diagram for the selected process appears.

23.5.2 How to Hide a Collaboration

You can hide a collaboration so that you are able to focus on the rest of the collaborations in the diagram.

To hide a collaboration:

  1. In the Collaboration Diagram, right click over a participant of the conversation.
  2. Select Hide Conversation.

    The selected participant disappears from the Collaboration Diagram.

23.5.3 How to Show a Collaboration

You can show a conversation that was previously hidden.

To show a collaboration:

  1. In the Collaboration Diagram, right-click a participant of the conversation.
  2. Select Show Conversation.

    The previously hidden conversation appears from the Collaboration Diagram.