Figure 9.21 shows how the Conversation of Figure 9.20 is also expanded into a set of Message Flows, combined with the previous Message Flows. Note that the newly exposed Message Flows of the lower-level Conversation will be correlated by the CorrelationKey of both the lower-level Conversation (Variation Id) and the higher-level SubConversations (Order Id).

Retailer

Planned Order Variations

Supplier

 

 

 

Planned Order Variations Ack

 

 

Retailer Order and Delivery Variations

 

 

Retailer Order and Delivery Variations Ack

 

 

Delivery Checkpoint Request

 

 

Delivery Checkpoint Request Ack

 

 

Updated PO and Delivery Schedule Order

 

Figure 9.21 – An example of a Sub-Conversation that is fully expanded

In Figure 9.19 a hierarchical structure of Conversations can be seen with one set of Message Flows occurring within another in a parent-child relationship. In particular, after Planned Order Variations (keyed on Order Id) at the parent, a number of Message Flows of the child follow till Retailer Order and Delivery Variations Ack (keyed on Variation Id and Order Id). The remaining Message Flows (keyed on Order Id) are at the parent level. The child Conversation, as such, is part of the parent Conversation. Nesting is indicated graphically on a Conversation symbol (by a “+”), indicating a Sub-Conversation or a Call Conversation calling a Collaboration. Nesting can go to an arbitrary number of levels.

A common dependency between Conversations is overlap. Overlap occurs when two or more Conversations have some Message exchanges in common but not others. As an example in Figure 9.18, a Message is sent as part of Detailed Shipment Schedule (keyed on Carrier Schedule Id) to trigger Delivery Monitoring (keyed on Shipment Id). During Delivery Monitoring, Message could be sent to Detailed Shipment Schedule (to request modifications when transportation exceptions occur).

Splits and joins are special types of overlap scenarios. A Conversation split arises when, as part of a Conversation, a message is exchanged between two or more Participants that at the same time spawns a new, distinct Conversation (either between the same set of Participants or another set). Additionally, no further Message exchanges are shared by the split Conversations as well as no subsequent merges of them occur. An example is Delivery Planning which leads to Carrier Planning and Special Cover. A Conversation join occurs when several Conversations are merged into one Conversation and no further Message exchanges occur in the original Conversations, i.e., these Conversations are finalized. The generalization of a split and join is a Conversation refactor where Conversations are split into parallel Conversations and then are merged at a later point in time.

9.5.1Conversation Node

ConversationNode is the abstract super class for all elements that can comprise the Conversation elements of a

Collaboration diagram, which are Conversation (see page 129), Sub-Conversation (see page 129), and Call Conversation (see page 130).

Business Process Model and Notation (BPMN), v2.0.2

127

Figure 9.22 – Metamodel of ConversationNode Related Elements

ConversationNodes are linked to and from Participants using Conversation Links (see page 131).

The ConversationNode element inherits the attributes and model associations of BaseElement (see Table 8.5). Table 9.10 presents the additional attributes and model associations for the ConversationNode element.

128

Business Process Model and Notation (BPMN), v2.0.2

Table 9.10 – ConversationNode Model Associations

Attribute Name

Description/Usage

 

 

name: string [0..1]

Name is a text description of the ConversationNode element.

 

participantRefs: Participant

This provides the list of Participants that are used in the ConversationNode

[2..*]

from the list provided by the ConversationNode’s parent Conversation. This

 

 

reference is visualized through a Conversation Link (see page 131).

 

 

messageFlowRefs:

A reference to all Message Flows (and consequently Messages) grouped by a

MessageFlow [0..*]

Conversation element.

 

 

 

correlationKeys:

This is a list of the ConversationNode’s CorrelationKeys, which are used to

CorrelationKey [0..*]

group Message Flows for the ConversationNode.

 

9.5.2Conversation

A Conversation is an atomic element for a Conversation (Collaboration) diagram. It represents a set of Message Flows grouped together based on a concept and/or a CorrelationKey. A Conversation will involve two or more

Participants.

A Conversation is a hexagon that MUST be drawn with a single thin line (see Figure 9.23).

Figure 9.23 – A Communication element

The Conversation element inherits the attributes and model associations of ConversationNode (see Table 9.10), but does not contain any additional attributes or model associations.

9.5.3Sub-Conversation

A Sub-Conversation is a ConversationNode that is a hierarchical division within the parent Collaboration. A Sub-Conversation is a graphical object within a Collaboration, but it also can be “opened up” to show the lower-level details of the Conversation, which consist of Message Flows, Conversations, and/or other Sub-Conversations. The Sub-Conversation shares the Participants of its parent Conversation.

A Sub-Conversation is a hexagon that MUST be drawn with a single thin line (see Figure 9.24).

The SubConversation marker MUST be a small square with a plus sign (+) inside. The square MUST be positioned at the bottom center of the shape.

Business Process Model and Notation (BPMN), v2.0.2

129

Figure 9.24 – A compound Conversation element

The Sub-Conversation element inherits the attributes and model associations of ConversationNode (see Table 9.10). Table 9.11 presents the additional model associations for the Sub-Conversation element.

Table 9.11 – Sub-Conversation Model Associations

Attribute Name

Description/Usage

 

 

conversationNodes:

The ConversationNodes model aggregation relationship allows a Sub-

ConversationNode [0..*]

Conversation to contain other ConversationNodes, in order to group

 

 

Message Flows of the Sub-Conversation and associate correlation

 

information.

 

 

9.5.4Call Conversation

A Call Conversation identifies a place in the Conversation (Collaboration) where a global Conversation or a

GlobalConversation is used.

If the Call Conversation calls a GlobalConversation, then the shape will be the same as a Conversation, but the boundary of the shape will MUST have a thick line (see Figure 9.25).

If the Call Conversation calls a Collaboration, then the shape will be the same as a Sub-Conversation, but the boundary of the shape will MUST have a thick line (see Figure 9.26).

Figure 9.25 – A Call Conversation calling a GlobalConversation

Figure 9.26 – A Call Conversation calling a Collaboration

The Call Conversation element inherits the attributes and model associations of ConversationNode (see Table 9.10). Table 9.12 presents the additional model associations for the Call Conversation element.

130

Business Process Model and Notation (BPMN), v2.0.2