Pools and Lanes

Processes are often contained within a 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

Selecting a pool element lets you specify its Id and Name, as well as edit the corresponding process properties.

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

Select a lane element to see its properties.

Property

Description

Id

The id of the lane

Name

The name of the lane.

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 perform activities within the lane.

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>