Pools and Lanes

Processes are often contained within a swimming pool, which can be further divided into lanes. Pools and lanes represent participants and responsibilities, adding structure and clarity to complex processes.

pool lanes

Pools

Pool represents a participant in a collaboration. Although a process can run without a pool, adding it can clarify the roles involved. When you add a pool , it automatically wraps all elements in the diagram.

adding pool
Deletion of the pool deletes all elements inside it.

Properties

By adding a pool, a basic process becomes a collaboration. As a result, when no elements are selected, the right panel will show collaboration properties in place of process properties.

collaboration properties

In the BPMN modeler, you can set the following properties of a pool:

process properties

Property

Description

Id

The identifier of the element. It is generated automatically, but you can change it to a more meaningful one to make logs easier to understand.

Name

The name of the element.

Process

The properties of the process that the pool represents. See process properties.

XML Representation

Adding a pool results in a collaboration section with nested participant elements.

<collaboration id="Collaboration_16sinaz">
    <participant id="Participant_1txu04k" processRef="pool-demo" />
</collaboration>
<process id="pool-demo" name="Pool demo" isExecutable="true">
    <startEvent id="Event_0yeospn">
      <outgoing>Flow_1snk2tn</outgoing>
    </startEvent>
    <sequenceFlow id="Flow_1snk2tn" sourceRef="Event_0yeospn" targetRef="Activity_187mecy" />
    <userTask id="Activity_187mecy">
      <incoming>Flow_1snk2tn</incoming>
    </userTask>
</process>

Collaboration Model

Multiple pools create a collaboration model that illustrates relationships and interactions between multiple participants.

collaboration two processes

When you deploy a collaboration model, each process will be deployed separately with its own id, and it will be visible in the process definitions list. So you will be able to start any process from the collaboration.

process definitions wiindow

Lanes

Lane is a subsection within a pool that represents a specific role, responsibility, or department.

Properties

In the BPMN modeler, you can set the following properties of a lane:

Property

Description

Id

The identifier of the element. It is generated automatically, but you can change it to a more meaningful one to make logs easier to understand.

Name

The name of the element.

Assignee source

Assign a performer based on expression, process variable or user provider. See user task for details.

Candidate groups

A group of users permitted to perform activities within the lane.

Candidate users

Individual users permitted to perform activities within the lane.

Documentation

A description and additional information about the element.

Every user task on the lane without an explicitly defined assignee will inherit the assignee value from the lane.

XML Representation

Lanes are represented by the laneSet element and individual lane elements. Each lane contains properties and list of activities placed on it.

<process id="pool-and-lanes" name="Pool and lanes" isExecutable="true">
    <laneSet id="LaneSet_1lxq2l3">
      <lane id="Lane_1" name="User 1">
        <extensionElements>
          <jmix:assignmentDetails assigneeSource="expression" assigneeValue="user1" assignee="user1" candidateUsersSource="users" candidateGroupsSource="userGroups" />
          <jmix:conditionDetails conditionSource="userTaskOutcome" />
        </extensionElements>
        <flowNodeRef>Activity_0n34ol9</flowNodeRef>
        <flowNodeRef>Activity_0758bjc</flowNodeRef>
        <flowNodeRef>Event_1mkoyrv</flowNodeRef>
      </lane>
      <lane id="Lane_2" name="User 2">
        ...
      </lane>
    </laneSet>