---
title: "11.4 Use of BPMN Common Elements"
chapter: "11 Choreography"
source: "OMG BPMN 2.0.2 — formal/2013-12-09"
pages: "319-321"
---

> 11 Choreography · páginas 319-321 · [índice](../README.md)


<a id="sec-11-4"></a>
## 11.4 Use of BPMN Common Elements


Some **BPMN** elements are common to both **Process** and **Choreography** diagrams, as well as **Collaboration**; they are used in these diagrams. The next few sub clauses will describe the use of **Messages**, **Message Flows**, *Participants*, **Sequence Flows**, Artifacts, *Correlations*, *Expressions*, and *Services* in **Choreography**. The key graphical elements of **Gateways** and **Events** are also common to both **Choreography** and **Process**. Since their usage has a large impact, they are described in major sub clauses of this clause (see page 339 for **Events** and page 344 for **Gateways**).


<a id="sec-11-4-1"></a>
### 11.4.1 Sequence Flow


**Sequence Flows** are used within **Choreographies** to show the sequence of the **Choreography Activities**, which can have intervening **Gateways**. They are used in the same way as they are in **Processes**. They are only allowed to connect with other *Flow Objects*. For **Processes**, they can only connect **Events**, **Gateways**, and **Activities**. For **Choreographies**, they can only connect **Events**, **Gateways**, and **Choreography Activities** (see Figure 11.5).


<a id="fig-11-5"></a>
![Figure 11.5 – The use of Sequence Flows in a Choreography](../figures/fig-11-5.png)

*Figure 11.5 – The use of Sequence Flows in a Choreography* (p. 320)


There are two additional variations of **Sequence Flows**:


- Conditional Sequence Flows: Conditions can be added to Sequence Flows in two situations: From Gateways: Outgoing Sequence Flows have conditions for Exclusive and Inclusive Gateways. The data referenced in the *conditions* need to be visible to two or more *Participants* in the **Choreography**. The data becomes visible if it is part of a **Message** that had been sent (previously) within the **Choreography**. See page 344 and page 351 for more information about how **Exclusive** and **Inclusive Gateways** are used in From Choreography Activities: Outgoing Sequence Flows MAY have conditions for Choreography **Activities**. Since these act similar to **Inclusive Gateways**, the **Conditional Sequence Flows** can be used in **Choreographies**. The *conditions* have the same restrictions that apply to the visibility of the data for

- Default Sequence Flows: For Exclusive Gateways, Inclusive Gateways, and Choreography Activities that have *Conditional* **Sequence Flows**, one of the *outgoing* **Sequence Flows** MAY be a *Default* **Sequence Flow**. Because the other *outgoing* **Sequence Flows** will have appropriately visible of data as described above, the *Participants* would know if all the other *conditions* would be *false*, thus the *Default* **Sequence Flow** would be selected and the **Choreography** would move down that **Sequence Flow**.


In some applications it is useful to allow additional **Messages** that are not part of the defined **Choreography** model to be sent between *Participants* when the **Choreography** is carried out. This enables *Participants* to exchange other **Messages** as needed without changing the **Choreography**. There are two ways to specify this:


- If the isClosed attribute (from Collaboration) of a Choreography has a value of false or no value, then *Participants* MAY send **Messages** to each other without additional **Choreography Activities** in the **Choreography**. Unmodeled messaging can be restricted on particular **Sequence Flows** in the **Choreography**, see next bullet. If the isClosed attribute of a **Choreography** has a value of *true*, then *Participants* MAY NOT send **Messages** to each other without additional **Choreography Activities** in the **Choreography**. This restriction overrides any unmodeled messaging allowed by **Sequence Flows** in the next bullet.

- If the isImmediate attribute of a Sequence Flow has a value of false or no value, then Participants MAY send **Messages** to each other between the elements connected by the **Sequence Flow** without additional **Choreography Activities** in the **Choreography**. If the isImmediate attribute of a **Sequence Flow** has a value of *true*, then *Participants* MAY NOT send **Messages** to each other between the elements connected by the **Sequence Flow** without additional **Choreography Activities** in the **Choreography**. The value of isImmediate attribute of a **Sequence Flow** has no effect if the isClosed attribute of the containing **Choreography** has a value of *true.*


Restrictions on unmodeled messaging specified with isClosed and isImmediate applies only under the **Choreography** containing the restriction. PartnerEntities and PartnerRoles of the *Participants* MAY send **Messages** to each other under other **Choreographies**, **Collaborations**, and **Conversations**.


<a id="sec-11-4-2"></a>
### 11.4.2 Artifacts


Both **Text Annotations** and **Groups** can be used within **Choreographies** and all **BPMN** diagrams. There are no restrictions on their use.

