The bpmn header models a business process. Groups become horizontal swimlane
bands (one per participant or responsibility) and nodes rank across the lanes
in flow order, so an edge that crosses a band reads as a handoff from one role to
another.
bpmngroup Customer { Place order, Confirm receipt }
group Warehouse { Pick items, Ship }
Place order -> Pick items
Pick items -> Ship
Ship -> Confirm receipt
Two lanes; the edges between them are the handoffs.
A swimlane is just a group under the bpmn header,
so everything you know about groups applies: a node can join a lane from its own
declaration with [group: Name], and members can be declared inline or
elsewhere. Nodes that belong to no lane fall into a trailing band.
bpmngroup Sales {
Lead [event]
Qualify [activity]
}
group Finance {
Invoice [activity]
Payment [event]
}
Lead -> Qualify
Qualify -> Invoice: won
Invoice -> Payment
An order-to-cash process across three responsibilities, with a decision gateway
and a rejection loop.
bpmntitle: Order to cash
group Customer {
Places order [event]
Receives goods [event]
}
group Sales {
Validate order [activity]
Credit ok [decision]
Approve [activity]
}
group Fulfilment {
Pick and pack [activity]
Dispatch [activity]
}
Places order -> Validate order
Validate order -> Credit ok
Credit ok -> Approve: yes
Credit ok -> Places order: no, revise
Approve -> Pick and pack -> Dispatch
Dispatch -> Receives goods