Pools, Lanes and Collaborations

A pool represents a participant in a collaboration, and a lane is a part of a pool, for example, a role or a department. A process doesn’t need a pool to run.

pool lanes

Pools

When you add a pool in the Modeler view, it wraps all elements of the diagram.

adding pool
Deleting a pool deletes all elements inside it.

When the diagram has a pool and no element is selected, the properties panel shows the collaboration properties, Id and Name, instead of the process properties.

collaboration properties

To set the process properties, select the pool. The pool has the Id and Name properties and the Process group with the process properties.

process properties

In XML, adding a pool creates a collaboration element with a participant element:

<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>

Collaborations

Several pools make a collaboration. In XML, the collaboration element contains a participant element for each pool, and the processRef attribute of a participant refers to the id of its process.

collaboration two processes

When you deploy a collaboration, each process is deployed as a separate process definition with its own id. All of them appear in the process definitions list, and you can start any of them.

process definitions wiindow

Message flows between pools only document how the processes communicate. The engine doesn’t send messages along them. To send a message to a process, call the engine API from your code. See Sending Messages.

A collaboration shows related processes in one diagram. For example, a main process and the process that it calls from several places:

collaboration example 1

Here, the message flows only show that the same process is called from different points of the main process.

Another example shows processes that exchange messages and signals:

collaboration example 2

Here, process One sends a message to start process Two and then waits for a message from process Two. Or the timer event fires, and the signal from process One starts process Three.

Lanes

In Jmix BPM, a lane can assign the user tasks placed on it. A user task with no assignee and no candidate groups gets the assignee, candidate users and candidate groups of its lane. See Assigning Tasks by Lane.