Relating lanes to participants in BPMN2 DI XML

25 views
Skip to first unread message

Farrukh Najmi

unread,
Sep 8, 2010, 9:23:47 AM9/8/10
to BPMN Users Group
I am new to BPMN2 and would like to know how to do the following in
BPMN2 DI XML format.

I would like define a set of participants globally and then within
each lane in a BPMN2 process element reference a globally defined
participant.

Here is the structure of the BPMN 2 file I am envisioning.

<definitions>
<!-- Roles that are actors in the process -->
<partnerRole .../>
...
<partnerRole .../>

<!-- The main process -->
<process ...>
<laneSet>
<lane .../>
<lane .../>
</laneSet>

<!--
Various flowElements defined by this process and referenced in
lanes
-->
...
</process>
</definitions>

What I am not sure is:

a) how to define the participant globally (is partnerRole the right
way)
b) how to reference a global participant in a lane

Thanks for any help.

Farrukh Najmi

unread,
Sep 14, 2010, 5:40:44 PM9/14/10
to BPMN Users Group


Here is what I think the answer to my question may be. I believe the
solution is to use partitionElementRef attribute of lane and have it
reference the QName used for participantRef element in partnerRole.

Can someone knowledgeable please comment. Thanks.

<?xml version="1.0" encoding="UTF-8"?>
<definitions id="defaultChangeReviewProcess" typeLanguage="http://
www.w3.org/2001/XMLSchema"
expressionLanguage="http://www.w3.org/1999/XPath"
targetNamespace="http://www.omg.org/bpmn20"
xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:roles="urn:acme:roles"
xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL
http://www.omg.org/spec/BPMN/2.0/20100501/BPMN20.xsd">

<!-- TODO: Is this correct way to specify roles -->
<partnerRole name="Submitter" id="submitter">
<participantRef>roles:submitter</participantRef>
</partnerRole>
<partnerRole name="Reviewer" id="reviewer">
<participantRef>roles:reviewer</participantRef>
</partnerRole>

<process>
<laneSet>
<!-- TODO: Is this how to reference participant for each lane --
>
<lane name="Submitter" id="submitterLane"
partitionElementRef="roles:submitter">
</lane>

<lane name="Reviewer" id="reviewerLane"
partitionElementRef="roles:reviewer">
</lane>
</laneSet>

</process>

</definitions>

Bruce Silver

unread,
Sep 14, 2010, 6:19:06 PM9/14/10
to bpmn-use...@googlegroups.com
Lanes would not reference partnerRole. partnerRole has to do with role in a
'collaboration' - interaction between processes - not role within a process.
This is common confusion over the BPMN term 'participant', i.e. party
involved in a collaboration, such as buyer vs seller, which is NOT the same
as 'performer'. A lane would typically reference the performer (or subclass
of it, such as potentialOwner). See section 10.2.4 of the spec for
examples.

Bruce Silver
Principal, Bruce Silver Associates/BPMessentials
(831) 685-8803

</process>

</definitions>

--
You received this message because you are subscribed to the Google Groups
"BPMN Users Group" group.
To post to this group, send email to bpmn-use...@googlegroups.com.
To unsubscribe from this group, send email to
bpmn-users-gro...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/bpmn-users-group?hl=en.

Farrukh Najmi

unread,
Sep 14, 2010, 6:32:37 PM9/14/10
to BPMN Users Group

Thanks for the clarification.

So a laneSet corresponds to a role in a collaboration while a lane in
a laneSet corresponds to a performer within a specific process (please
correct if I am still off base).
If I am correct then how does a laneSet reference a partnerRole?

Thanks for your help.
>   xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODELhttp://www.omg.org/spec/BPMN/2.0/20100501/BPMN20.xsd">

Bruce Silver

unread,
Sep 14, 2010, 6:38:48 PM9/14/10
to bpmn-use...@googlegroups.com
No. Laneset just identifies (optionally) the type of information used to
classify process nodes into lanes, in your case performer or potentialOwner.
It is internal to the process. 'Participant' in a collaboration identifies
the role of the process as a whole (or external entity interacting with the
process via messages).
Reply all
Reply to author
Forward
0 new messages