You are on page 1of 47

Date: June 2010

BPMN 2.0 by Example


Version 1.0 (non-normative)
____________________________________________________
OMG Document Number: dtc/2010-0-02
!tandard document "#$: %ttp://&&&.om'.or'/(pec/BPMN/2.0/example(/PD)
*((oc+ated )+le: %ttp://&&&.om'.or'/(pec/BPMN/2.0/example(/,-P
____________________________________________________
Copyright 2010, camunda services GmbH
Copyright 2010, IBM Corp.
Copyright 2010, b!ect Management Group, Inc.
Copyright 2010, "#$ Group
Copyright 2010, %$" $G
Copyright 2010, &risotech, Inc.
'%( ) %"(CI)IC$&I# * &(+M%, C#,I&I#% - #&IC(%
&he materia. in this document detai.s an b!ect Management Group speci/ication in accordance 0ith the terms,
conditions and notices set /orth be.o0. &his document does not represent a commitment to imp.ement any portion o/
this speci/ication in any company1s products. &he in/ormation contained in this document is sub!ect to change
0ithout notice.
2IC(#%(%
&he companies .isted above have granted to the b!ect Management Group, Inc. 3MG4 a none5c.usive, roya.ty*
/ree, paid up, 0or.d0ide .icense to copy and distribute this document and to modi/y this document and distribute
copies o/ the modi/ied version. (ach o/ the copyright ho.ders .isted above has agreed that no person sha.. be deemed
to have in/ringed the copyright in the inc.uded materia. o/ any such copyright ho.der by reason o/ having used the
speci/ication set /orth herein or having con/ormed any computer so/t0are to the speci/ication.
%ub!ect to a.. o/ the terms and conditions be.o0, the o0ners o/ the copyright in this speci/ication hereby grant you a
/u..y*paid up, non*e5c.usive, nontrans/erab.e, perpetua., 0or.d0ide .icense 30ithout the right to sub.icense4, to use
this speci/ication to create and distribute so/t0are and specia. purpose speci/ications that are based upon this
speci/ication, and to use, copy, and distribute this speci/ication as provided under the Copyright $ct6 provided that7
314 both the copyright notice identi/ied above and this permission notice appear on any copies o/ this speci/ication6
324 the use o/ the speci/ications is /or in/ormationa. purposes and 0i.. not be copied or posted on any net0or8
computer or broadcast in any media and 0i.. not be other0ise reso.d or trans/erred /or commercia. purposes6 and 394
no modi/ications are made to this speci/ication. &his .imited permission automatica..y terminates 0ithout notice i/
you breach any o/ these terms or conditions. 'pon termination, you 0i.. destroy immediate.y any copies o/ the
speci/ications in your possession or contro..
"$&(#&%
&he attention o/ adopters is directed to the possibi.ity that comp.iance 0ith or adoption o/ MG speci/ications may
re:uire use o/ an invention covered by patent rights. MG sha.. not be responsib.e /or identi/ying patents /or 0hich
a .icense may be re:uired by any MG speci/ication, or /or conducting .ega. in:uiries into the .ega. va.idity or
scope o/ those patents that are brought to its attention. MG speci/ications are prospective and advisory on.y.
"rospective users are responsib.e /or protecting themse.ves against .iabi.ity /or in/ringement o/ patents.
G(#(+$2 '%( +(%&+IC&I#%
$ny unauthori;ed use o/ this speci/ication may vio.ate copyright .a0s, trademar8 .a0s, and communications
regu.ations and statutes. &his document contains in/ormation 0hich is protected by copyright. $.. +ights +eserved.
#o part o/ this 0or8 covered by copyright herein may be reproduced or used in any /orm or by any means**graphic,
e.ectronic, or mechanica., inc.uding photocopying, recording, taping, or in/ormation storage and retrieva. systems**
0ithout permission o/ the copyright o0ner.
,I%C2$IM(+ ) <$++$#&=
<HI2( &HI% "'B2IC$&I# I% B(2I(>(, & B( $CC'+$&(, I& I% "+>I,(, ?$% I%? $#, M$=
C#&$I# (+++% + MI%"+I#&%. &H( B@(C& M$#$G(M(#& G+'" $#, &H( CM"$#I(%
2I%&(, $B>( M$A( # <$++$#&= ) $#= AI#,, (B"+(%% + IM"2I(,, <I&H +(G$+, &
&HI% "'B2IC$&I#, I#C2',I#G B'& #& 2IMI&(, & $#= <$++$#&= ) &I&2( + <#(+%HI",
IM"2I(, <$++$#&= ) M(+CH$#&$BI2I&= + <$++$#&= ) )I&#(%% )+ $ "$+&IC'2$+
"'+"%( + '%(. I# # (>(#& %H$22 &H( B@(C& M$#$G(M(#& G+'" + $#= ) &H(
CM"$#I(% 2I%&(, $B>( B( 2I$B2( )+ (+++% C#&$I#(, H(+(I# + )+ ,I+(C&,
I#,I+(C&, I#CI,(#&$2, %"(CI$2, C#%(C'(#&I$2, +(2I$#C( + C>(+ ,$M$G(%, I#C2',I#G
2%% ) "+)I&%, +(>(#'(, ,$&$ + '%(, I#C'++(, B= $#= '%(+ + $#= &HI+, "$+&= I#
C##(C&I# <I&H &H( )'+#I%HI#G, "(+)+M$#C(, + '%( ) &HI% M$&(+I$2, (>(# I)
$,>I%(, ) &H( "%%IBI2I&= ) %'CH ,$M$G(%.
&he entire ris8 as to the :ua.ity and per/ormance o/ so/t0are deve.oped using this speci/ication is borne by you. &his
disc.aimer o/ 0arranty constitutes an essentia. part o/ the .icense granted to you to use this speci/ication.
+(%&+IC&(, +IGH&% 2(G(#,
'se, dup.ication or disc.osure by the '.%. Government is sub!ect to the restrictions set /orth in subparagraph 3c4 314
3ii4 o/ &he +ights in &echnica. ,ata and Computer %o/t0are C.ause at ,)$+% 2D2.22E*E019 or in subparagraph 3c4
314 and 324 o/ the Commercia. Computer %o/t0are * +estricted +ights c.auses at FG C.).+. D2.22E*1H or as speci/ied
in FG C.).+. 22E*E202*2 o/ the ,o, ).$.+. %upp.ement and its successors, or as speci/ied in FG C.).+. 12.212 o/
the )edera. $c:uisition +egu.ations and its successors, as app.icab.e. &he speci/ication copyright o0ners are as
indicated above and may be contacted through the b!ect Management Group, 1F0 Aendric8 %treet, #eedham, M$
02FHF, '.%.$.
&+$,(M$+A%
M,$I, Mode. ,riven $rchitectureI, 'M2I, 'M2 Cube .ogoI, MG 2ogoI, C+B$I and BMII are
registered trademar8s o/ the b!ect Management Group, Inc., and b!ect Management GroupJ, MGJ , 'ni/ied
Mode.ing 2anguageJ, Mode. ,riven $rchitecture 2ogoJ, Mode. ,riven $rchitecture ,iagramJ, C+B$
.ogosJ, BMI 2ogoJ, C<MJ, C<M 2ogoJ, II"J , M)J , MG Inter/ace ,e/inition 2anguage 3I,24J ,
and MG %ysM2J are trademar8s o/ the b!ect Management Group. $.. other products or company names
mentioned are used /or identi/ication purposes on.y, and may be trademar8s o/ their respective o0ners.
CM"2I$#C(
&he copyright ho.ders .isted above ac8no0.edge that the b!ect Management Group 3acting itse./ or through its
designees4 is and sha.. at a.. times be the so.e entity that may authori;e deve.opers, supp.iers and se..ers o/ computer
so/t0are to use certi/ication mar8s, trademar8s or other specia. designations to indicate comp.iance 0ith these
materia.s.
%o/t0are deve.oped under the terms o/ this .icense may c.aim comp.iance or con/ormance 0ith this speci/ication i/
and on.y i/ the so/t0are comp.iance is o/ a nature /u..y matching the app.icab.e comp.iance points as stated in the
speci/ication. %o/t0are deve.oped on.y partia..y matching the app.icab.e comp.iance points may c.aim on.y that the
so/t0are 0as based on this speci/ication, but may not c.aim comp.iance or con/ormance 0ith this speci/ication. In
the event that testing suites are imp.emented or approved by b!ect Management Group, Inc., so/t0are deve.oped
using this speci/ication may c.aim comp.iance or con/ormance 0ith the speci/ication on.y i/ the so/t0are
satis/actori.y comp.etes the testing suites.
OMGs Issue Reporting Procedure
$.. MG speci/ications are sub!ect to continuous revie0 and improvement. $s part o/ this process 0e encourage
readers to report any ambiguities, inconsistencies, or inaccuracies they may /ind by comp.eting the Issue +eporting
)orm .isted on the main 0eb page http7KK000.omg.org, under ,ocuments, +eport a BugKIssue
3http7KK000.omg.orgKtechno.ogyKagreement.4
.able o/ 0ontent(
1 Scope ....................................................................................... 1
2 Conformance ........................................................................... 1
3 Normative References ............................................................. 1
4 Additional Information .............................................................. 2
4.1 Can!es to Adopted "#$ Specifications ........................................................ 2
4.2 Ac%no&led!ements ........................................................................................... 2
' Small ()amples introducin! Core Concepts ........................... 3
'.1 Sipment *rocess of a +ard&are Retailer ........................................................ 3
'.2 ,e *i--a Colla.oration .................................................................................... 4
'.3 "rder /ulfillment and *rocurement ................................................................... '
0 Incident mana!ement .............................................................. 1
0.1 +i! level model for 2uic% understandin! ......................................................... 1
0.2 3etailed Colla.oration and Coreo!rap4 ........................................................ 5
0.3 +uman6driven vs. s4stem6driven control flo&s ............................................... 11
7 #odels and 3ia!rams ............................................................ 15
7.1 8ane and *ool ................................................................................................. 15
7.1.1 8ane ......................................................................................................................... 15
7.1.2 *ool ......................................................................................................................... 20
7.2 Su. *rocess and Call Activit4 ......................................................................... 21
7.2.1 ()panded Su. *rocess ()ample ............................................................................ 21
7.2.2 Collapsed Su. *rocess ()ample ............................................................................. 22
7.2.3 Call Activit4 ()ample ............................................................................................... 23
1 No.el *ri-e ()ample ............................................................. 2'
1.1 ,e No.el *ri-e *rocess Scenario ................................................................. 2'
1.2 ,e No.el *ri-e *rocess 3ia!ram .................................................................. 20
5 ,ravel 9oo%in! ()ample ........................................................ 27
5.1 ,e ,ravel 9oo%in! Scenario .......................................................................... 27
5.2 ,e ,ravel 9oo%in! 3ia!ram .......................................................................... 21
9*#N 2.0 .4 ()ample: ;ersion 1.0 i
10 ()amples from 3ia!ram Intercan!e Capter .................... 25
10.1 ()panded Su. *rocess ()ample .................................................................. 25
10.2 Collapsed Su. *rocess ()ample .................................................................. 25
10.2.1 *rocess 3ia!ram ................................................................................................... 25
10.2.2 Su. *rocess 3ia!ram ............................................................................................ 25
10.3 #ultiple 8anes and Nested 8anes ()ample .................................................. 25
10.4 ;ertical Colla.oration ()ample ..................................................................... 30
10.' Conversation ()ample .................................................................................. 30
10.0 Coreo!rap4 ()ample ................................................................................. 30
11 Correlation ()ample ........................................................... 31
12 (6#ail ;otin! ()ample ........................................................ 3'
12.1 ,e /irst Su.6*rocess .................................................................................. 37
12.2 ,e Second Su.6*rocess ............................................................................ 31
12.3 ,e (nd of te *rocess ................................................................................ 31
Anne) A< =#8 Seriali-ations for all presented #odels .......... 35
++ 9*#N 2.0 .4 ()ample: ;ersion 1.0
Pre/ace
MG
)ounded in 1HGH, the b!ect Management Group, Inc. 3MG4 is an open membership, not*/or*pro/it computer industry
standards consortium that produces and maintains computer industry speci/ications /or interoperab.e, portab.e, and
reusab.e enterprise app.ications in distributed, heterogeneous environments. Membership inc.udes In/ormation
&echno.ogy vendors, end users, government agencies, and academia.
MG member companies 0rite, adopt, and maintain its speci/ications /o..o0ing a mature, open process. MGLs
speci/ications imp.ement the Mode. ,riven $rchitectureI 3M,$I4, ma5imi;ing +I through a /u..*.i/ecyc.e approach
to enterprise integration that covers mu.tip.e operating systems, programming .anguages, midd.e0are and net0or8ing
in/rastructures, and so/t0are deve.opment environments. MGLs speci/ications inc.ude7 'M2I 3'ni/ied Mode.ing
2anguageJ46 C+B$I 3Common b!ect +e:uest Bro8er $rchitecture46 C<MJ 3Common <arehouse Metamode.46
and industry*speci/ic standards /or do;ens o/ vertica. mar8ets.
More in/ormation on the MG is avai.ab.e at http7KK000.omg.orgK.
OMG !pec+/+cat+on(
$s noted, MG speci/ications address midd.e0are, mode.ing and vertica. domain /rame0or8s. $ %peci/ications Cata.og
is avai.ab.e /rom the MG 0ebsite at7
http://www.omg.org/technology/documents/spec_catalog.htm
%peci/ications 0ithin the Cata.og are organi;ed by the /o..o0ing categories7
OMG Model+n' !pec+/+cat+on(
'M2
M)
BMI
C<M
"ro/i.e speci/ications
OMG M+ddle&are !pec+/+cat+on(
C+B$KII"
I,2K2anguage Mappings
%pecia.i;ed C+B$ speci/ications
C+B$ Component Mode. 3CCM4
Plat/orm !pec+/+c Model and -nter/ace !pec+/+cat+on(
C+B$services
C+B$/aci.ities
MG ,omain speci/ications
MG (mbedded Inte..igence speci/ications
MG %ecurity speci/ications
$.. o/ MGLs /orma. speci/ications may be do0n.oaded 0ithout charge /rom our 0ebsite. 3"roducts imp.ementing MG
speci/ications are avai.ab.e /rom individua. supp.iers.4 Copies o/ speci/ications, avai.ab.e in "ost%cript and ",) /ormat,
9*#N 2.0 .4 ()ample: ;ersion 1.0 iii
may be obtained /rom the %peci/ications Cata.og cited above or by contacting the b!ect Management Group, Inc. at7
OMG Headquarters
140 Kendrick Street
Building A, Suite 300
Needham, MA 02494
USA
Tel: +1-781-444-0404
Fax: +1-781-444-0320
Email: pubs@omg.org
Certain MG speci/ications are a.so avai.ab.e as I% standards. ".ease consu.t http://www.iso.org
.ypo'rap%+cal 0on1ent+on(
&he type sty.es sho0n be.o0 are used in this document to distinguish programming statements /rom ordinary (ng.ish.
Ho0ever, these conventions are not used in tab.es or section headings 0here no distinction is necessary.
Times/Times New Roman - 10 pt.: Standard body text
2el1et+ca/*r+al - 10 pt. Bold: OMG Interface Definition Language (OMG IDL) and syntax elements.
Courier - 10 pt. Bold: Programming language elements.
+elvetica>Arial 6 10 pt: Exceptions
NOTE: &erms that appear in ita.ics are de/ined in the g.ossary. Ita.ic te5t a.so represents the name o/ a document,
speci/ication, or other pub.ication.
+1 9*#N 2.0 .4 ()ample: ;ersion 1.0
1 !cope
&his document provides a number o/ BPMN 2.0 e5amp.es, 0hich are non*e5ecutab.e BPMN 2.0 mode.s con/orming to
the "rocess Mode.ing Con/ormance c.ass as de/ined in the the MG speci/ication Business Process Model and
Notation (BPMN) Version 2.0. It is a non*normative document and its main goa. is to assist in interpreting and
imp.ementing various aspects o/ the BPMN 2.0 speci/ication. &he e5amp.es are provided in /orm o/ Collaoration
diagrams, Process diagrams, and C!oreograp!" diagrams as 0e.. as machine*readab.e /i.es using the #$tensile
Mar%up &anguage ('M&).
2 0on/ormance
$s this is a non*normative document, an imp.ementation, 0hich c.aims con/ormance to any o/ the con/ormance c.asses
de/ined in section 2 o/ the BPMN 2.0 speci/ication, is #& +(C'I+(, to comp.y to statements made in this document.
)urthermore, i/ there are any inconsistencies bet0een the BPMN 2.0 speci/ication and this document, the statements o/
the BPMN 2.0 speci/ication a.0ays have precedence.
3 Normat+1e #e/erence(
&he /o..o0ing normative documents contain provisions 0hich, through re/erence in this te5t, constitute provisions o/ this
speci/ication. )or dated re/erences, subse:uent amendments to, or revisions o/, any o/ these pub.ications do not app.y.
Bu(+ne(( Proce(( Model and Notat+on 4BPMN5 6er(+on 2.0
MG, May 2010
http7KK000.omg.orgKspecKB"M#K2.0
#)0-2117
Aey 0ords /or use in +)Cs to Indicate +e:uirement 2eve.s, %. Bradner, I(&) +)C 211H, March 1HHE
http7KK000.iet/.orgKr/cKr/c211H.t5t
9*#N 2.0 .4 ()ample: ;ersion 1.0 1
8 *dd+t+onal -n/ormat+on
8.1 0%an'e( to *dopted OMG !pec+/+cat+on(
I/ there are any inconsistencies bet0een the BPMN 2.0 speci/ication and this document, the statements o/ the BPMN 2.0
speci/ication are considered to be correct.
8.2 *c9no&led'ement(
&he /o..o0ing companies contributed to the content o/ this document7
camunda services GmbH
IBM Corp.
"#$ Group
%$" $G
&risotech, Inc.
&he /o..o0ing persons 0ere members o/ the core teams that contributed to the content o/ this document7
@ohn Bu..es 3"#$ Group4
@a8ob )reund 3camunda services GmbH4
,enis GagnM 3&risotech, Inc.4
)a.8o Menge 3camunda services GmbH4
Matthias A.oppmann 3IBM Corp.4
%!ir #i!ssen 3"#$ Group4
Gerardo #avarro*%uare; 3camunda services GmbH4
Ivana &ric8ovic 3%$" $G4
%tephen $. <hite 3IBM Corp.4
In addition, the /o..o0ing persons contributed va.uab.e ideas and /eedbac8 that improved the content and the :ua.ity o/
this document7
@oram Barre; 3$./resco4
Mariano Benite; 3rac.e4
Conrad Boc8 3#I%&4
@ohn Ha.. 3Mode. %ystems4
Bernd +Nc8er 3camunda services GmbH4
2 9*#N 2.0 .4 ()ample: ;ersion 1.0
5 Small Examples introducing Core Concepts
&his chapter introduces the core concepts o/ process mode.ing 0ith B"M#. <e 0i.. not e5p.ain every sing.e symbo. you
can /ind in the diagrams, but sho0 ho0 process mode.ing in B"M# is basica..y done, ho0 0e can use poo.s and message
/.o0s /or e5p.icit.y mode.ing co..aborations bet0een participants, and ho0 0e can 3de*4compose process mode.s 0ith
sub*processes and ca.. activities. &hose e5amp.es do not contain e5ecutab.e process mode.s, but represent process mode.s
/ocusing on organi;ationa. aspects o/ business processes.
:.1 !%+pment Proce(( o/ a 2ard&are #eta+ler

In )igure D.1 you can /ind the preparing steps a hard0are retai.er has to /u./i.. be/ore the ordered goods can actua..y be
shipped to the customer.
In this e5amp.e, 0e used on.y one poo. and di//erent .anes /or the peop.e invo.ved in this process, 0hich automatica..y
means that 0e b.an8 out the communication bet0een those peop.e7 <e !ust assume that they are communicating 0ith
each other someho0. I/ 0e had a process engine driving this process, that engine 0ou.d assign user tas8s and there/ore
be responsib.e /or the communication bet0een those peop.e. I/ 0e do not have such a process engine, but 0ant to mode.
the communication bet0een the peop.e invo.ved e5p.icit.y, 0e 0ou.d have to use a co..aboration diagram as in the ne5t
chapter.
&he p.ain start event Ogoods to shipP indicates that this preparation shou.d be done no0. +ight a/ter the instantiation o/
the process, there are t0o things done in para..e., as the para..e. gate0ay indicates7 <hi.e the c.er8 has to decide 0hether
this is a norma. posta. or a specia. shipment 30e do not de/ine the criteria ho0 to decide this inside the process mode.4,
the 0arehouse 0or8er can a.ready start pac8aging the goods. &his c.er81s tas8, 0hich is /o..o0ed by the e5c.usive
gate0ay Omode o/ de.iveryP, is a good e5amp.e /or c.ari/ying the recommended usage o/ a gate0ay7 &he gate0ay is not
responsib.e /or the decision 0hether this is a specia. or a posta. shipment. Instead, this decision is underta8en in the
activity be/ore. &he gate0ay on.y 0or8s as a router, 0hich is based on the resu.t o/ the previous tas8, and provides
a.ternative paths. $ tas8 represents an actua. unit o/ 0or8, 0hi.e a gate0ay is on.y routing the se:uence /.o0.
&his gate0ay is ca..ed Oe5c.usiveP, because on.y one o/ the /o..o0ing t0o branches can be traversed7 I/ 0e need a specia.
shipment, the c.er8 re:uests :uotes /rom di//erent carriers, then assigns a carrier and prepares the paper0or8. But i/ a
norma. post shipment is /ine, the c.er8 needs to chec8 i/ an e5tra insurance is necessary. I/ that e5tra insurance is
9*#N 2.0 .4 ()ample: ;ersion 1.0 3
)+'ure :.1: !%+pment Proce(( o/ a %ard&are reta+ler
+
a
r
d
&
a
r
e

R
e
t
a
i
l
e
r
8
o
!
i
s
t
i
c
s

#
a
n
a
!
e
r
C
l
e
r
%
?
a
r
e

o
u
s
e
?
o
r
%
e
r
$oods
to sip
3ecide if
normal post or
special
sipment
*ac%a!e
!oods
#ode of deliver4
Re2uest
2uotes from
carriers
Assi!n a
carrier @
prepare
paper&or%
/ill in a *ost
la.el
Cec% if e)tra
insurance is
necessar4
,a%e out e)tra
insurance
Add paper&or%
and move
pac%a!e to
pic% area
Special Carrier
Normal *ost
e)tra insurance
re2uired
Al&a4s
$oods availa.le
for pic%
Insurance is
included in carrier
service
re:uired, the .ogistics manager has to ta8e out that insurance. In any case, the c.er8 has to /i.. in a posta. .abe. /or the
shipment. )or this scenario, the sho0n inc.usive gate0ay is he.p/u., because 0e can sho0 that one branch is a.0ays
ta8en, 0hi.e the other one on.y i/ the e5tra insurance is re:uired, but I) it is ta8en, this can happen in para..e. to the /irst
branch. Because o/ this para..e.ism, 0e need the synchroni;ing inc.usive gate0ay right behind O)i.. in a "ost .abe.P and
O&a8e out e5tra insuranceP. In this scenario, the inc.usive gate0ay 0i.. a.0ays 0ait /or O)i.. in a "ost .abe.P to be
comp.eted, because that is a.0ays started. I/ an e5tra insurance 0as re:uired, the inc.usive gate0ay 0i.. a.so 0ait /or
O&a8e out e5tra insuranceP to be /inished. )urthermore, 0e a.so need the synchroni;ing para..e. gate0ay be/ore the .ast
tas8 Oadd paper0or8 and move pac8age to pic8 areaP, because 0e 0ant to ma8e sure that everything has been /u./i..ed
be/ore the .ast tas8 is e5ecuted.
:.2 .%e P+;;a 0ollaborat+on
&his e5amp.e is about Business*&o*Business*Co..aboration. Because 0e 0ant to mode. the interaction bet0een a pi;;a
customer and the vendor e5p.icit.y, 0e have c.assi/ied them as OparticipantsP, there/ore providing them 0ith dedicated
poo.s. ".ease note that there is no de/au.t semantics in this type o/ mode.ing, 0hich means you can mode. co..aboration
diagrams to sho0 the interaction bet0een business partners, but a.so ;oom into one company, mode.ing the interaction
bet0een di//erent departments, teams or even sing.e 0or8ers and so/t0are systems in co..aboration diagrams. It is tota..y
up to the purpose o/ the mode. and there/ore a decision the mode.er has to ma8e, 0hether a co..aboration diagram 0ith
di//erent poo.s is use/u., or 0hether one shou.d stic8 to one poo. 0ith di//erent .anes, as sho0n in the previous chapter.
I/ 0e step through the diagram, 0e shou.d start 0ith the pi;;a customer, 0ho has noticed her stomach gro0.ing. &he
customer there/ore se.ects a pi;;a and orders it. $/ter that, the customer 0aits /or the pi;;a to be de.ivered. &he event
based gate0ay a/ter the tas8 Oorder a pi;;aP indicates that the customer actua..y 0aits /or t0o di//erent events that cou.d
happen ne5t7 (ither the pi;;a is de.ivered, as indicated 0ith the /o..o0ing message event, or there is no de.ivery /or Q0
8 9*#N 2.0 .4 ()ample: ;ersion 1.0
)+'ure :.2: Order+n' and del+1er+n' p+;;a
*
i
-
-
a

C
u
s
t
o
m
e
r
+un!r4
for pi--a
Select a pi--a "rder a pi--a
pi--a
received
00 minutes
As% for te
pi--a
*a4 te pi--a (at te pi--a
+un!er
satisfied
*
i
-
-
a

v
e
n
d
o
r
p
i
-
-
a

c

e
f
d
e
l
i
v
e
r
4

.
o
4
"rder
received
9a%e te pi--a
3eliver te
pi--a
Receive
pa4ment
pi--a order
receipt
mone4
pi--a
c
l
e
r
%
A&ere is m4
pi--aBC
Calm
customer
minutes, i.e., a/ter one hour the customer s8ips 0aiting and ca..s the vendor, as8ing /or the pi;;a. <e no0 assume that
the c.er8 promises the pi;;a to be de.ivered soon, and the customers 0aits /or the pi;;a again, as8ing again a/ter the ne5t
Q0 minutes, and so on. 2et1s have a c.oser .oo8 at the vendor process no0. It is triggered by the order o/ the customer, as
sho0n 0ith the message start event and the message /.o0 going /rom Oorder a pi;;aP to that event. $/ter ba8ing the
pi;;a, the de.ivery boy 0i.. de.iver the pi;;a and receive the payment, 0hich inc.udes giving a receipt to the customer.
In this e5amp.e, 0e use message ob!ects not on.y /or in/ormationa. ob!ects, as the pi;;a order, but a.so /or physica.
ob!ects, .i8e the pi;;a or the money. <e can do this, because those physica. ob!ects actua..y act as in/ormationa. ob!ects
inherent.y7 <hen the pi;;a arrives at the customer1s door, she 0i.. recogni;e this arriva. and there/ore 8no0 that the pi;;a
has arrived, 0hich is e5act.y the purpose o/ the accordant message event in the customer1s poo.. / course, 0e can on.y
use the mode. in that 0ay because this e5amp.e is not meant to be e5ecuted by a process engine.
:.3 Order )ul/+llment and Procurement
&his order /u./i..ment process starts a/ter receiving an order message and continues to chec8 0hether the ordered artic.e
is avai.ab.e or not. $n avai.ab.e artic.e is shipped to the customer /o..o0ed by a /inancia. sett.ement, 0hich is a co..apsed
sub*process in this diagram. In case that an artic.e is not avai.ab.e, it has to be procured by ca..ing the procurement sub*
process. ".ease note that the shape o/ this co..apsed sub*process is thic8.y bordered 0hich means that it is a ca.. activity.
It is .i8e a 0rapper /or a g.oba..y de/ined tas8 or, .i8e in this case, sub*process.
$nother characteristic o/ the procurement sub*process are the t0o attached events. By using attached events it is possib.e
to hand.e events that can spontaneous.y occur during the e5ecution o/ a tas8 or sub*process. &hereby 0e have to
distinguish bet0een interrupting and non*interrupting attached events. Both o/ them catch and hand.e the occurring
events, but on.y the non*interrupting type 3here it is the esca.ation event O.ate de.iveryP4 does not abort the activity it is
attached to. <hen the interrupting event type triggers, the e5ecution o/ the current activity stops immediate.y.
9*#N 2.0 .4 ()ample: ;ersion 1.0 :
)+'ure :.3: Order )ul/+llment
"rder
received
Cec%
availa.ilit4
Article
availa.le
*rocurement
no
Sip article
4es
8ate deliver4
Inform
customer
Customer informed

/inancial
settlement
*a4ment received
undelivera.le
Inform
customer
Remove article
from calato!ue
Article removed
&he process /or the stoc8 maintenance is triggered by a conditiona. start event. It means that the process is instantiated in
case that the condition became true, so in this e5amp.e 0hen the stoc8 .eve. goes be.o0 a certain minimum. In order to
increase the stoc8 .eve. an artic.e has to be procured. &here/ore 0e use the same "rocurement process as in the order
/u./i..ment and re/er to it by the ca.. activity ?"rocurement?, indicated by the thic8 border. %imi.ar to the order
/u./i..ment process this process hand.es the error e5ception by removing the artic.e /rom the cata.og. But in this stoc8
maintenance process there appears to be no need /or the hand.ing o/ a ?.ate de.ivery? esca.ation event. &hat1s 0hy it is
.e/t out and not hand.ed. I/ the procurement sub*process /inishes norma..y, the stoc8 .eve. is above minimum and the
%toc8 Maintenance process ends 0ith the end event Oartic.e procuredP.
<e no0 ;oom into the g.oba. sub*process OprocurementP that is used by both order /u./i..ment and stoc8 maintenance.
Because this is a sub*process, the start event is p.ain, indicating that this process is not triggered by any e5terna. event but
the re/erencing top*.eve.*process.
&he /irst tas8 in this sub*process is the chec8 0hether the artic.e to procured is avai.ab.e at the supp.ier. I/ not, this sub*
process 0i.. thro0 the Onot de.iverab.eP*e5ception that is caught by both order /u./i..ment and stoc8 maintenance, as 0e
a.ready discussed.
In case that the de.ivery in the "rocurement process .asts more than 2 days an esca.ation event is thro0n by the sub*
process te..ing the re/erencing top*.eve.*process that the de.ivery 0i.. be .ate. %imi.ar to the error event, the esca.ation
event has a.so an esca.ationCode 0hich is necessary /or the connection bet0een thro0ing and catching esca.ation events.
Contrary to the thro0ing error event, current.y active threads are neither terminated nor a//ected by the thro0ing
9*#N 2.0 .4 ()ample: ;ersion 1.0
)+'ure :.8: !toc9 ma+ntenance proce((
Stoc% level
.elo& minimum
*rocurement
Article procured
undelivera.le
Remove article
from catalo!ue
Article removed
)+'ure :.:: Procurement (ub-proce((
Cec%
availa.ilit4 &it
supplier
3elivera.leB
8ate deliver4
Article
procured
D 2 da4s
E F 2 da4s
undelivera.le
no
article received
"rder from
supplier
intermediate esca.ation event. )urthermore, the "rocurement process continues its e5ecution by 0aiting /or the de.ivery.
But the thro0n event is hand.ed by the nearest parent activity 0ith an attached intermediate esca.ation event 0hich has
the same esca.ationCode as the thro0n esca.ation event. In the order /u./i..ment process, the ?.ate de.ivery? esca.ation
event attached to the "rocurement sub*process catches the thro0n ?.ate de.ivery? event. But no0, the event is a non*
interrupting event. Because o/ that a ne0 to8en is produced, /o..o0s the path o/ the esca.ation hand.ing and triggers the
tas8 that in/orms the customer that the ordered artic.e 0i.. be shipped .ater. <hen the procurement sub*process /inishes,
the rder )u./i..ment process continues 0ith the shipment o/ the artic.e and the /inancia. sett.ement.
9*#N 2.0 .4 ()ample: ;ersion 1.0 <
6 Incident management
In this chapter 0e 0ant to sho0 the di//erent perspectives you can ta8e on the same business process, using B"M#. In
the /irst step 0e 0i.. provide a rather simp.e, easy to read diagram that sho0s an incident process /rom a high .eve. point
o/ vie0. 2ater on 0e re/ine this mode. by moving /rom orchestration to co..aboration and choreography. In the .ast step
0e ta8e the organi;ationa. co..aboration and imagine ho0 a process engine cou.d drive part o/ the process by user tas8
assignments. &he main purpose o/ this chapter is to demonstrate ho0 you can use B"M# /or creating simp.e and rather
abstract diagrams, but a.so detai.ed vie0s on human co..aboration and /ina..y /or technica. speci/ications /or process
e5ecution.
.1 2+'% le1el model /or =u+c9 under(tand+n'
&he sho0n incident management process o/ a so/t0are manu/acturer is triggered by a customer re:uesting he.p /rom her
account manager because o/ a prob.em in the purchased product. )irst o/ a.., the account manager shou.d try to hand.e
that re:uest on his o0n and e5p.ain the so.ution to the customer, i/ possib.e. I/ not, the account manager 0i.. hand over
the issue to a 1
st
.eve. support agent, 0ho 0i.. hand over to 2
nd
.eve. support, i/ necessary. &he 2
nd
.eve. support agent
shou.d /igure out i/ the customer can /i5 the prob.em on her o0n, but i/ the agent is not sure about this he can a.so as8 a
so/t0are deve.oper /or his opinion. In any case, at the end the account manager 0i.. e5p.ain the so.ution to the customer.
&his diagram is rea..y simp.e and someho0 a Ohappy pathP, because 0e assume that 0e a.0ays /ind a so.ution 0e can
/ina..y e5p.ain to the customer. &he mode. .ac8s a.. detai.s o/ co..aboration bet0een the invo.ved emp.oyees, and the
abstract tas8s indicate that 0e do not have any in/ormation about 0hether the process or parts o/ it are e5ecutab.e by a
> 9*#N 2.0 .4 ()ample: ;ersion 1.0
)+'ure .1: -nc+dent mana'ement /rom %+'% le1el po+nt o/ 1+e&
;
I
*

c
u
s
t
o
m
e
r
S
o
f
t
&
a
r
e

C
o
m
p
a
n
4
A
c
c
o
u
n
t

#
a
n
a
!
e
r
1
s
t

l
e
v
e
l

s
u
p
p
o
r
t
2uestion
received
andle
2uestion
can andle m4selfB
+andle
1st level issue
Ges
No
2
n
d

l
e
v
e
l

s
u
p
p
o
r
t
+andle 2nd
level issue
*rovide
feed.ac%
/inisedB
no
S
o
f
t
&
a
r
e

d
e
v
e
l
o
p
m
e
n
t
HnsureB
Ges
()plain
solution
Ges
No
Sometimes opinion
of development is
needed
process engine. &his diagram is use/u., i/ you 0ant to scope the process, get a basic understanding o/ the /.o0, and ta.8
about the main steps, but not i/ you 0ant to dig into the detai.s /or discussing process improvements or even so/t0are
driven support o/ the process.
.2 Deta+led 0ollaborat+on and 0%oreo'rap%y
<e can ta8e a c.oser .oo8 at the ping*pong*game o/ account manager, support agents and so/t0are deve.oper by
s0itching /rom a sing.e*poo.*mode. to a co..aboration diagram, as sho0n above. <e can no0 see some more detai.s
about the particu.ar processes each participant /u./i..s, e.g., the dia.ogue bet0een the account manager and the customer
/or c.ari/ying the customer1s prob.em, or the /act that the 2
nd
.eve. support agent 0i.. insert a re:uest /or a /eature in the
9*#N 2.0 .4 ()ample: ;ersion 1.0 7
)+'ure .2: -nc+dent Mana'ement a( deta+led collaborat+on
;
I
*

c
u
s
t
o
m
e
r
I
e
4

a
c
c
o
u
n
t

m
a
n
a
!
e
r
1
s
t

8
e
v
e
l

S
u
p
p
o
r
t

A
!
e
n
t
issue
+andle 1st
level issue
*rovide
feed.ac% for
account
mana!er
2
n
d

l
e
v
e
l

s
u
p
p
o
r
t

a
!
e
n
t
,ic%et
received
+andle 2nd
level issue
HnsureB
*rovide
feed.ac% for
1st level
support
As% developer
S
o
f
t
&
a
r
e

d
e
v
e
l
o
p
e
r
Re2uest from
support
()amine
pro.lem
*rovide
feed.ac% for
2nd level
support
no
4es
Customer as
a pro.lem
$et pro.lem
description
Can andle
It m4selfB
()plain
solution
As% 1st level
support
Ans&er
received
no
4es
Sometimes opinion
of development is
needed
ResultB
Issue
resolved
As% 2nd level
support
Ans&er
recevied 2nd level
issue
Ans&er
received
ResultB
Issue
resolved
Insert into
product
.ac%lo!
/i) in
Ne)t release
Some issues cannot
!et fi)ed ri!t no&
.ut sould .e fi)ed
in ne)t release
product bac8.og, i/ the current re.ease o/ the so/t0are product cannot cover the customer1s demand satis/actori.y. <e
have a.so speci/ied each tas8 as manua., 0hich means that 0e sti.. thin8 o/ the processes as comp.ete.y human*driven
0ith no process engine invo.ved. &his cou.d hypothetica..y be the $s*Is*state o/ the incident management be/ore the
introduction o/ a process engine. &he ne5t step cou.d be to de/ine 0hether 0e 0ant to drive the comp.ete co..aboration by
a process engine, or on.y parts o/ it. But be/ore 0e discuss that matter, 0e can have a .oo8 at an other 0ay o/ mode.ing
such a ping*pong*game, the choreography diagram sho0n be.o0. &his diagram on.y sho0s the tas8s that are dedicated to
the communication bet0een the di//erent process participants, hiding a.. interna. steps, e.g., the tas8 that inserts a ne0
entry into the product bac8.og. #ote that the diagrams sho0n in )igure Q.1 and Q.2 have no /orma. connection bet0een
each other, 0hereas the )igure Q.2 and Q.9 have the e5act same semantic mode. behind them and !ust provide di//erent
vie0s on it. %ee a.so $nne5 $ /or an BM2 seria.i;ation o/ the under.ying semantic mode..
10 9*#N 2.0 .4 ()ample: ;ersion 1.0
)+'ure .3: -nc+dent Mana'ement a( c%oreo'rap%y
Ie4 Account #ana!er
;I* customer
ans&ers
2uestions
$et pro.lem
description
Ie4 Account #ana!er
;I* customer
solution
()plain solution
1st level support a!ent
Ie4 Account #ana!er
issue
As% 1st level support
2nd level support a!ent
1st level support a!ent
issue
As% 2nd level support
Soft&are developer
2nd level support a!ent
issue
As% developer
2nd level support a!ent
1st level support a!ent
feed.ac%
*rovide feed.ac% for 1st
level support
1st level support a!ent
Ie4 account mana!er
feed.ac%
*rovide feed.ac% for
account mana!er
Can andle m4selfB
ResultB
4es
Issue
resolved
2nd level
issue
HnsureB
no
Soft&are developer
2nd level support a!ent
feed.ac%
*rovide feed.ac% for 2nd
level support
4es
no
Ie4 Account #ana!er
;I* customer
pro.lem
Customer +as a
*ro.lem
.3 2uman-dr+1en 1(. (y(tem-dr+1en control /lo&(
I/ 0e imagine 0e are rea.i;ing a pro!ect /or automating the incident management process, 0e cou.d no0 decide 0hich
parts o/ it shou.d be actua..y e5ecuted in a process engine, and 0hich parts shou.d remain human*driven. In this scenario
0e decided that the account manager shou.d not be bothered 0ith 0eb /orms or tas8 .ists, he shou.d !ust send an emai. i/
he 0ants to report a customer1s prob.em, and receive an emai. 0hen the process has comp.eted. &he same idea app.ies /or
the so/t0are deve.oper7 2et us assume the 2
nd
.eve. support agent sits in the same room as the deve.opers. Maybe it is
more e//icient i/ the support agent !ust 0a.8s over to the deve.oper and ta.8s about the issue, rather than p.aying some
time consuming ping*pong*game 0ith tas8 assignments. &here/ore, 0e 0ant to 8eep this part o/ the incident management
human driven as 0e..7 no process engine driving the co..aboration bet0een 2
nd
.eve. support and so/t0are deve.opers. But
9*#N 2.0 .4 ()ample: ;ersion 1.0 11
)+'ure .8: -nc+dent Mana'ement &+t% %uman-dr+1en and (y(tem-dr+1en pool(
;
I
*

c
u
s
t
o
m
e
r
I
e
4

a
c
c
o
u
n
t

m
a
n
a
!
e
r
,
r
o
u
.
le

,
ic
%
e
t

S
4
s
t
e
m
1
s
t

le
v
e
l
s
u
p
p
o
r
t
2
n
d

le
v
e
l

s
u
p
p
o
r
t
Issue
received
"pen tic%et
edit
1st level tic%et
ResultB
Send mail to
account
mana!er
Close tic%et
edit
2nd level tic%et
ResultB
Insert issue
into product
.ac%lo!
1
s
t

8
e
v
e
l

S
u
p
p
o
r
t

A
!
e
n
t
,ic%et
received
Classif4 tic%et
+andle 1st
level issue
3ocument 1st
level result
2
n
d

le
v
e
l

s
u
p
p
o
r
t

a
!
e
n
t
,ic%et
received
+andle 2nd
level issue
HnsureB
3ocument 2nd
level result
As% developer
S
o
f
t
&
a
r
e

d
e
v
e
lo
p
e
r
Re2uest from
support
()amine
pro.lem
*rovide
feed.ac% for
2nd level
support
no
4es
Issue resolved
2nd level issue
Issue resolved
/i) in
Ne)t release
Customer as
a pro.lem
$et pro.lem
description
Can andle
m4selfB
()plain
solution
Send mail to
support s4stem
Ans&er
received
no
4es
Sometimes opinion
of development is
needed
0e do 0ant the assignment o/ tic8ets to 1
st
and 2
nd
.eve. support agents by a troub.e tic8et system, 0hich no0 ta8es the
ro.e o/ the process engine and there/ore is mode.ed in a dedicated poo.. &hat system can actua..y receive and parse emai.s
sent by the account manager and opens a tic8et /or it. I/ the 1
st
.eve. support agent decides that this is a 2
nd
.eve. issue, he
does so by documenting his decision and comp.eting the assigned tas8 Oedit 1
st
.eve. tic8etP. &he troub.e tic8et system
then routes the tic8et to the 2
nd
.eve. support agent. <hen that agent has /inished, he maybe dec.ared the issue to be /i5ed
in the ne5t so/t0are re.ease. &hen the troub.e tic8et system ma8es a service ca.. on the product bac8.og system, a ne0
/eature 0e have introduced 0ith our process engine7 &he entry does not have to be inserted manua..y any more. In the
end, the troub.e tic8et system 0i.. send an emai. to the account manager, containing the resu.ts o/ the incident
management, and c.ose the tic8et. &he account manager can then e5p.ain the so.ution to the customer based on the
in/ormation in the tic8et.
/ course, this 0ay o/ mode.ing both human*driven and system*driven contro. /.o0s in one diagram is !ust a proposa.,
that shou.d give an idea o/ use/u. mode.ing approaches based on co..aboration diagrams. It shou.d demonstrate ho0
B"M# cou.d support Business*I&*$.ignment in process mode.ing7 <e can hand over the mode.ed process engine poo. to
an actua. process engine /or e5ecution, 0hi.e 0e can sho0 the other poo.s separate.y to our process participants, the
support agents or the account manager, and discuss their invo.vement in the co..aboration based on those simp.i/ied
vie0s on the same, consistent co..aboration mode.. &his gives us the opportunity to ta.8 0ith both Business peop.e and I&
peop.e about the same process mode., 0ithout overburdening business peop.e 0ith too comp.e5 diagrams or I& peop.e
0ith too inaccurate process mode.s.
12 9*#N 2.0 .4 ()ample: ;ersion 1.0
)+'ure .:: .%+( rat%er (+mple d+a'ram +( all &e %a1e to (%o& to t%e account mana'er
;
I
*

c
u
s
t
o
m
e
r
I
e
4

a
c
c
o
u
n
t

m
a
n
a
!
e
r
Customer as
a pro.lem
$et pro.lem
description
Can andle
m4selfB
()plain
solution
Send mail to
support s4stem
Ans&er
received
no
4es
,
r
o
u
.
l
e

,
i
c
%
e
t

S
4
s
t
e
m
9*#N 2.0 .4 ()ample: ;ersion 1.0 13
)+'ure .: .%+( +( t%e only part o/ t%e &%ole collaborat+on &e &+ll execute +n a proce(( en'+ne
,
r
o
u
.
l
e

,
i
c
%
e
t

S
4
s
t
e
m
1
s
t

l
e
v
e
l

s
u
p
p
o
r
t
2
n
d

l
e
v
e
l

s
u
p
p
o
r
t
Issue
received
"pen tic%et
edit
1st level tic%et
ResultB
Send mail to
account
mana!er
Close tic%et
edit
2nd level tic%et
ResultB
Insert issue
into product
.ac%lo!
Issue resolved
2nd level issue
Issue resolved
/i) in
Ne)t release
)+'ure .<: ?M$ (er+al+;at+on /or proce(( en'+ne pool.
.able .1: Proce(( en'+ne pool enr+c%ed &+t% execut+on deta+l(. .%+( +( &%at a proce(( en'+ne &ould execute.
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<definitions name="Incident Management" id="_98a0678d9e194de9b3d9284886c3"
targetNamespace="tt!"##$%&.cam'nda.c%m#m%de(#98a0678d9e194de9b3d9284886c3"
xmlns:tns="tt!"##$%&.cam'nda.c%m#m%de(#98a0678d9e194de9b3d9284886c3"
xmlns="tt!"##))).%mg.%*g#s!ec#+,M-#20100524#MO./0"
xmlns:bpmndi="tt!"##))).%mg.%*g#s!ec#+,M-#20100524#.I"
xmlns:di="tt!"##))).%mg.%*g#s!ec#..#20100524#.I"
xmlns:dc="tt!"##))).%mg.%*g#s!ec#..#20100524#.1"
xmlns:xsi="tt!"##))).)3.%*g#2001#2M0Scema-instance"
xmlns:java="tt!"##3c!.%*g#en#3s*#detai(4id5270"
typeLanguage="tt!"##3c!.%*g#en#3s*#detai(4id5270"
expressionLanguage="tt!"##))).3c!.%*g#en#3s*#detai(4id5245">
<!--
ava !" # is used as type language for t$e model %$ereas t$e ava
&nified "xpression Language serves as language for "xpressions'
-->
<collaboration id="11275940773964">
<participant name="6*%'b(e 6ic7et System" process(ef="tns"89,-1-1"
id="_1-1" )>
<)collaboration>
<process is"xecutable="t*'e" id="89,-1-1">
<io!pecification>
<data*nput item!ubject(ef="tns"Iss'eItem" id="Iss'e.ataIn!'tO$,*%cess" )>
<input!et>
<data*nput(efs>*ssue+ata*nput,f-rocess<)data*nput(efs>
<)input!et>
<output!et><)output!et>
<)io!pecification>
<!--
.$is Lane !et partitions t$e /lo% Nodes of t$e -rocess according to
t$e (esources t$at are responsible for t$em' 0o%ever1 t$is does not
affect t$e actual assignment of (esources to 2ctivities as meaning
of t$e Lanes is up to t$e modeler and not specified in 3-4N'
-->
<lane!et id="(s_1-1">
<lane name="1st (e:e( s'!!%*t"
partition"lement(ef="tns"9i*st0e:e(S'!!%*t;es%'*ce" id="_1-9">
<flo%Node(ef>56-67<)flo%Node(ef>
<flo%Node(ef>56-8#<)flo%Node(ef>
<flo%Node(ef>56-99<)flo%Node(ef>
<flo%Node(ef>56-68:<)flo%Node(ef>
<flo%Node(ef>56-6;<<)flo%Node(ef>
<flo%Node(ef>56-8<6<)flo%Node(ef>
<flo%Node(ef>56-79#<)flo%Node(ef>
<)lane>
<lane name="2nd (e:e( s'!!%*t"
partition"lement(ef="tns"Sec%nd0e:e(S'!!%*t;es%'*ce" id="_1-11">
<flo%Node(ef>56-8;8<)flo%Node(ef>
<flo%Node(ef>56-7<7<)flo%Node(ef>
<flo%Node(ef>56-78;<)flo%Node(ef>
<)lane>
<)lane!et>
<start"vent name="Iss'e *ecei:ed" id="_1-13">
<data,utput item!ubject(ef="tns"Iss'eItem"
id="Iss'e.ataO't!'tO$Sta*t/:ent" )>
<data,utput2ssociation>
<source(ef>*ssue+ata,utput,f!tart"vent<)source(ef>
<target(ef>*ssue+ata*nput,f-rocess<)target(ef>
<)data,utput2ssociation>
<message"vent+efinition message(ef="tns"Iss'eMessage" )>
18 9*#N 2.0 .4 ()ample: ;ersion 1.0
<)start"vent>
<se=uence/lo% source(ef="_1-13" target(ef="_1-26" id="_1-390" )>
<!--
.$is script tas> uses t$e ?roovy programming language to create a
+ata ,bject and fill it %it$ data of t$e *tem received in t$e
4essage t$at started t$e -rocess'
-->
<script.as> name="O!en tic7et" script/ormat="te&t#&-g*%%:y" id="_1-26">
<io!pecification>
<data*nput item!ubject(ef="tns"Iss'eItem"
id="Iss'e.ataIn!'tO$Sc*i!t6as7" )>
<data,utput item!ubject(ef="tns"6ic7etItem" id="6ic7et.ataO't!'tO$Sc*i!t6as7")>
<input!et>
<data*nput(efs>*ssue+ata*nput,f!cript.as><)data*nput(efs>
<)input!et>
<output!et>
<data,utput(efs>.ic>et+ata,utput,f!cript.as><)data,utput(efs>
<)output!et>
<)io!pecification>
<data*nput2ssociation>
<source(ef>*ssue+ata*nput,f-rocess<)source(ef>
<target(ef>*ssue+ata*nput,f!cript.as><)target(ef>
<)data*nput2ssociation>
<data,utput2ssociation>
<source(ef>.ic>et+ata,utput,f!cript.as><)source(ef>
<target(ef>.ic>et+ata,bject<)target(ef>
<)data,utput2ssociation>
<script><!@A+2.2@
issue(eport = get+ata*nputBC*ssue+ata*nput,f!cript.as>CD
tic>et = ne% .rouble.ic>etBD
tic>et'set+ate = ne% +ateBD
tic>et'set!tate = C,penC
tic>et'set(eporter = issue(eport'get2ut$orBD
tic>et'set+esctiption = issue(eport'get.extBD
set+ata,utputBC.ic>et+ata,utput,f!cript.as>C1 tic>etD
EE><)script>
<)script.as>>
<data,bject id="6ic7et.ataOb3ect" item!ubject(ef="tns"6ic7etItem" )>
<se=uence/lo% source(ef="_1-26" target(ef="_1-77" id="_1-392" )>
<user.as> name="edit 1st (e:e( tic7et" id="_1-77">
<io!pecification>
<data*nput item!ubject(ef="tns"6ic7etItem" id="6ic7et.ataIn!'tO$_1-77" )>
<data,utput item!ubject(ef="tns"6ic7etItem" id="6ic7et.ataO't!'tO$_1-77" )>
<input!et>
<data*nput(efs>.ic>et+ata*nput,f56-99<)data*nput(efs>
<)input!et>
<output!et>
<data,utput(efs>.ic>et+ata,utput,f56-99<)data,utput(efs>
<)output!et>
<)io!pecification>
<data*nput2ssociation>
<source(ef>.ic>et+ata,bject<)source(ef>
<target(ef>.ic>et+ata*nput,f56-99<)target(ef>
<)data*nput2ssociation>
<data,utput2ssociation>
<source(ef>.ic>et+ata,utput,f56-99<)source(ef>
<target(ef>.ic>et+ata,bject<)target(ef>
<)data,utput2ssociation>
<potential,%ner>
<resource(ef>tns:/irstLevel!upport(esource<)resource(ef>
9*#N 2.0 .4 ()ample: ;ersion 1.0 1:
<)potential,%ner>
<)user.as>>
<se=uence/lo% source(ef="_1-77" target(ef="_1-128" id="_1-394" )>
<exclusive?ate%ay name=";es'(t4" gate%ay+irection=".i:e*ging"
id="_1-128" )>
<se=uence/lo% source(ef="_1-128" target(ef="_1-252"
name="2nd (e:e( iss'e" id="_1-402">
<condition"xpression xsi:type="t9%*ma(/&!*essi%n">
FGget+ata,bjectBC.ic>et+ata,bjectCD'status == C,penCH
<)condition"xpression>
<)se=uence/lo%>
<se=uence/lo% source(ef="_1-128" target(ef="_1-150"
name="Iss'e *es%(:ed" id="_1-396">
<condition"xpression xsi:type="t9%*ma(/&!*essi%n">
FGget+ata,bjectBC.ic>et+ata,bjectCD'status == C(esolvedCH
<)condition"xpression>
<)se=uence/lo%>
<user.as> name="edit 2nd (e:e( tic7et" id="_1-252">
<io!pecification>
<data*nput item!ubject(ef="tns"6ic7etItem" id="6ic7et.ataIn!'tO$_1-252" )>
<data,utput item!ubject(ef="tns"6ic7etItem" id="6ic7et.ataO't!'tO$_1-252" )>
<input!et>
<data*nput(efs>.ic>et+ata*nput,f56-8;8<)data*nput(efs>
<)input!et>
<output!et>
<data,utput(efs>.ic>et+ata,utput,f56-8;8<)data,utput(efs>
<)output!et>
<)io!pecification>
<data*nput2ssociation>
<source(ef>.ic>et+ata,bject<)source(ef>
<target(ef>.ic>et+ata*nput,f56-8;8<)target(ef>
<)data*nput2ssociation>
<data,utput2ssociation>
<source(ef>.ic>et+ata,utput,f56-8;8<)source(ef>
<target(ef>.ic>et+ata,bject<)target(ef>
<)data,utput2ssociation>
<potential,%ner>
<resource(ef>tns:!econdLevel!upport(esource<)resource(ef>
<)potential,%ner>
<)user.as>>
<se=uence/lo% source(ef="_1-252" target(ef="_1-303" id="_1-404" )>
<exclusive?ate%ay name=";es'(t4" gate%ay+irection=".i:e*ging"
id="_1-303" )>
<se=uence/lo% source(ef="_1-303" target(ef="_1-325"
name="9i& in -e&t *e(ease" id="_1-410">
<condition"xpression xsi:type="t9%*ma(/&!*essi%n">
FGget+ata,bjectBC.ic>et+ata,bjectCD'status == C+eferredCH
<)condition"xpression>
<)se=uence/lo%>
<se=uence/lo% source(ef="_1-303" target(ef="_1-150"
name="Iss'e *es%(:ed" id="_1-406">
<condition"xpression xsi:type="t9%*ma(/&!*essi%n">
FGget+ata,bjectBC.ic>et+ata,bjectCD'status == C(esolvedCH
<)condition"xpression>
<)se=uence/lo%>
<service.as> name="Inse*t iss'e int% !*%d'ct bac7(%g"
operation(ef="tns"add6ic7etO!e*ati%n" id="_1-325">
<io!pecification>
1 9*#N 2.0 .4 ()ample: ;ersion 1.0
<data*nput item!ubject(ef="tns"6ic7etItem" id="6ic7et.ataIn!'tO$_1-325" )>
<input!et>
<data*nput(efs>.ic>et+ata*nput,f56-78;<)data*nput(efs>
<)input!et>
<output!et )>
<)io!pecification>
<data*nput2ssociation>
<source(ef>.ic>et+ata,bject<)source(ef>
<target(ef>.ic>et+ata*nput,f56-78;<)target(ef>
<)data*nput2ssociation>
<)service.as>>
<se=uence/lo% source(ef="_1-325" target(ef="_1-150" id="_1-408" )>
<send.as> name="Send mai( t% acc%'nt manage*" message(ef="tns"<ns)e*Message"
operation(ef="tns"sendMai(6%Iss'e;e!%*te*O!e*ati%n" id="_1-150">
<io!pecification>
<data*nput item!ubject(ef="tns"<ns)e*Item" id="<ns)e*.ataIn!'tO$Send6as7" )>
<input!et>
<data*nput(efs>2ns%er+ata*nput,f!end.as><)data*nput(efs>
<)input!et>
<output!et )>
<)io!pecification>
<data*nput2ssociation>
<source(ef>.ic>et+ata,bject<)source(ef>
<target(ef>2ns%er+ata*nput,f!end.as><)target(ef>
<assignment>
<from>FGget+ata,bjectBC.ic>et+ata,bjectCD'reporterH<)from>
<to>FGget+ata*nputBC2ns%er+ata*nput,f!end.as>CD'recipient<)to>
<)assignment>
<assignment>
<from>
2 tic>et $as been created for your issue1 %$ic$ is no% in
status FGget+ata,bjectBC.ic>et+ata,bjectCD'statusH'
<)from>
<to>FGget+ata*nputBC2ns%er+ata*nput,f!end.as>CD'bodyH<)to>
<)assignment>
<)data*nput2ssociation>
<)send.as>>
<se=uence/lo% source(ef="_1-150" target(ef="_1-201" id="_1-398" )>
<script.as> name="1(%se tic7et" script/ormat="te&t#&-g*%%:y"
id="_1-201">
<io!pecification>
<data*nput item!ubject(ef="tns"6ic7etItem" id="6ic7et.ataIn!'tO$_1-398" )>
<input!et>
<data*nput(efs>.ic>et+ata*nput,f56-7I:<)data*nput(efs>
<)input!et>
<output!et )>
<)io!pecification>
<data*nput2ssociation>
<source(ef>.ic>et+ata,bject<)source(ef>
<target(ef>.ic>et+ata*nput,f56-7I:<)target(ef>
<)data*nput2ssociation>
<script><!@A+2.2@
tic>et = get+ata*nputBC.ic>et+ata*nput,f56-7I:CD
tic>et'closeBD
EE><)script>
<)script.as>>
<se=uence/lo% source(ef="_1-201" target(ef="_1-376" id="_1-400" )>
<end"vent id="_1-376" )>
<)process>
9*#N 2.0 .4 ()ample: ;ersion 1.0 1<
<resource id="9i*st0e:e(S'!!%*t;es%'*ce" name="1st 0e:e( S'!!%*t" )>
<resource id="Sec%nd0e:e(S'!!%*t;es%'*ce" name="2nd 0e:e( S'!!%*t" )>
<interface name=",*%d'ct +ac7(%g Inte*$ace"
implementation(ef="3a:a"c%m.cam'nda.e&am!(es.incidentmanagement.,*%d'ct+ac7(%g">
<operation name="add6ic7etO!e*ati%n" implementation(ef="add6ic7et"
id5"add6ic7etO!e*ati%n">
<in4essage(ef>tns:2dd.ic>et4essage<)in4essage(ef>
<)operation>
<)interface>
<interface name="Mai( Inte*$ace"
implementation(ef="3a:a"c%m.cam'nda.e&am!(es.incidentmanagement.Mai(">
<operation name="sendMai(6%Iss'e;e!%*te*O!e*ati%n" im!(ementati%n;e$5"sendMai("
id5"sendMai(6%Iss'e;e!%*te*O!e*ati%n">
<in4essage(ef>tns:2ns%er4essage<)in4essage(ef>
<)operation>
<)interface>
<message id="Iss'eMessage" name="Iss'e Message" item(ef="tns"Iss'eItem" )>
<message id="<dd6ic7etMessage" name="add6ic7et Message"
item(ef="tns"6ic7etItem" )>
<message id="<ns)e*Message" name="<ns)e* Message" item(ef="tns"<ns)e*Item" )>
<item+efinition id="Iss'eItem" isAollection="$a(se" itemJind="In$%*mati%n"
structure(ef="c%m.cam'nda.e&am!(es.incidentmanagement.Iss'e;e!%*t" )>
<item+efinition id="6ic7etItem" isAollection="$a(se" itemJind="In$%*mati%n"
structure(ef="c%m.cam'nda.e&am!(es.incidentmanagement.6*%'b(e6ic7et" )>
<item+efinition id="<ns)e*Item" isAollection="$a(se" itemJind="In$%*mati%n"
structure(ef="c%m.cam'nda.e&am!(es.incidentmanagement.<ns)e*" )>
<)definitions>
1> 9*#N 2.0 .4 ()ample: ;ersion 1.0
7 Models and Diagrams
&he purpose o/ this chapter is to demonstrate via e5amp.es some o/ the interre.ations bet0een mode.s and diagrams. <e
e5p.ore ho0 di//erent B"M# diagrams o/ the same scenario .ead to di//erent seria.i;ations o/ the mode..
&he process scenario used in the e5amp.es /rom this chapter is inspired /rom /igure 10.2F o/ the B"M# 2.0 %peci/ication
document.
<.1 $ane and Pool
In this section, 0e e5p.ore the use o/ .anes and poo.s in a B"M# diagram and their corresponding seria.i;ations.
<.1.1 $ane
$ process can be depicted in a "rocess ,iagram 0ith or 0ithout .anes. Both these depictions .ead to one process in the
mode. and one diagram o/ that process. &he main di//erence in the t0o seria.i;ations is that one does not have a 2aneset
0ith a .ane in it, 0hi.e the other does.
9*#N 2.0 .4 ()ample: ;ersion 1.0 17
Juotation
+andlin!
"rder
+andlin!
Sippin!
+andlin!
Revie&
"rder
Approved
Approve
"rder
<.1.2 Pool
"oo.s are on.y present in Co..aboration ,iagrams 3Co..aborations, Choreographies, Conversations4. &hus, 0hen
depicting the same scenario using a poo., 0e are producing a Co..aboration ,iagram. &he introduction o/ a poo. in our
depiction imp.ies that 0e are producing a Co..aboration ,iagram. In /act, this is a diagram o/ an incomp.ete
Co..aboration, as a Co..aboration shou.d be bet0een t0o or more participants.
20 9*#N 2.0 .4 ()ample: ;ersion 1.0
Juotation
+andlin!
"rder
+andlin!
Sippin!
+andlin!
Revie&
"rder
Approved
Approve
"rder
9
u
4
e
r
<.2 !ub Proce(( and 0all *ct+1+ty
In this section, 0e e5p.ore the use o/ %ub "rocesses 3e5panded and co..apsed4 a.ong 0ith Ca.. $ctivities and sho0 ho0
their content can be depicted in separate diagrams.
<.2.1 Expanded !ub Proce(( Example
In this e5amp.e our Order "rocessP is depicted 0ith an e5panded O$pprove rderP %ub "rocess. &he activities 0ithin
the O$pprove rderP %ub "rocess are part o/ the parent process. &his is a sing.e process depicted in a sing.e diagram.
9*#N 2.0 .4 ()ample: ;ersion 1.0 21
Juotation
+andlin!
"rder
+andlin!
Sippin!
+andlin!
Revie&
"rder
Approved
Approve
"rder 9
u
4
e
r
<.2.2 0ollap(ed !ub Proce(( Example
In this e5amp.e our Order "rocessP is depicted 0ith a co..apsed O$pprove rderP %ub "rocess.
<hi.e the content 3or detai.s4 o/ the O$pprove rderP %ub "rocess is depicted on a separate diagram.
22 9*#N 2.0 .4 ()ample: ;ersion 1.0
Juotation
+andlin!
Approve
Customer
"rder
+andlin!
Sippin!
+andlin!
Revie&
"rder
Approver "rder
Approve
*roduct
Approved
Juotation
+andlin!
"rder
+andlin!
Sippin!
+andlin!
Revie&
"rder
Approved
Approve
"rder
&his is a sing.e process depicted into t0o diagrams7 one diagram /or the parent process and one diagram /or the sub
process.
#ote that both e5panded and co..apsed depictions are visua. variations o/ the same sing.e Order "rocessP.
<.2.3 0all *ct+1+ty Example
In this e5amp.e our Order "rocessP is depicted 0ith a co..apsed Ca.. $ctivity O$pprove rderP. &his diagram is :uite
di//erent than the previous e5amp.e, as here 0e are introducing the notion o/ "rocess re*use. In this case, the O$pprove
rderP is not a %ub "rocess o/ Order "rocessP but separate independent process that is ca..ed 3re*used4 0ithin the
Order "rocessP.
9*#N 2.0 .4 ()ample: ;ersion 1.0 23
Approve
Customer
Approve
*roduct
&he O$pprove rderP "rocess
<e thus have t0o processes each in their o0n diagrams 32 processes, 2 diagrams4
28 9*#N 2.0 .4 ()ample: ;ersion 1.0
Juotation
+andlin!
"rder
+andlin!
Sippin!
+andlin!
Revie&
"rder
Approved
Approve
"rder
Approve
Customer
Approve
*roduct
8 Nobel Prize Example
>.1 .%e Nobel Pr+;e Proce(( !cenar+o
&he se.ection o/ a #obe. "ri;e 2aureate is a .engthy and care/u..y e5ecuted process. &he processes s.ight.y di//er /or each
o/ the si5 pri;es6 the resu.ts are the same /or each o/ the si5 categories.
)o..o0ing is the description /or the #obe. "ri;e in Medicine. &he main actors in the processes /or #omination, %e.ection
and $ccepting and +eceiving the a0ard are the7
R #obe. Committee /or Medicine,
R #ominators,
R %pecia..y appointed e5perts,
R #obe. $ssemb.y and
R #obe. 2aureates.
(ach year in %eptember, in the year preceding the year the "ri;e is a0arded, around 9000 invitations or con/identia.
nomination /orms are sent out by the #obe. Committee /or Medicine to se.ected #ominators.
&he #ominators are given the opportunity to nominate one or more #ominees. &he comp.eted /orms must be made
avai.ab.e to the #obe. Committee /or Medicine /or the se.ection o/ the pre.iminary candidates.
&he #obe. Committee /or Medicine per/orms a /irst screening and se.ects the pre.iminary candidates.
)o..o0ing this se.ection, the #obe. Committee /or Medicine may re:uest the assistance o/ e5perts. I/ so, it sends the .ist
0ith the pre.iminary candidates to these specia..y appointed e5perts 0ith the re:uest to assess the pre.iminary candidatesL
0or8.
)rom this, the recommended /ina. candidate .aureates and associated recommended /ina. 0or8s are se.ected and the
#obe. Committee /or Medicine 0rites the reports 0ith recommendations.
&he #obe. Committee /or Medicine submits the report 0ith recommendations to the #obe. $ssemb.y. &his report
contains the .ist o/ /ina. candidates and associated 0or8s.
&he #obe. $ssemb.y chooses the #obe. 2aureates in Medicine and associated through a ma!ority vote and the names o/
the #obe. 2aureates and associated 0or8s are announced. &he #obe. $ssemb.y meets t0ice /or this se.ection. In the /irst
meeting o/ the #obe. $ssemb.y the report is discussed. In the second meeting the #obe. 2aureates in Medicine and
associated 0or8s are chosen.
&he #obe. "ri;e $0ard Ceremony is he.d in %toc8ho.m.
9*#N 2.0 .4 ()ample: ;ersion 1.0 2:
>.2 .%e Nobel Pr+;e Proce(( D+a'ram
2 9*#N 2.0 .4 ()ample: ;ersion 1.0
C
o
m
p
l
e
t
e
d

N
o
m
i
n
a
t
i
o
n

/
o
r
m
s
N o . e l C o m m i t t e e f o r # e d i c i n eN o m i n a t o r
( ) p e r t

S
e
p
t
e
m
.
e
r
G
e
a
r

n
6
1
S
e
n
d

N
o
m
i
n
a
t
i
o
n

/
o
r
m
I
d
e
n
t
i
f
4

*
o
t
e
n
t
i
a
l

N
o
m
i
n
e
e
K
s
L
S
e
n
d

N
o
m
i
n
e
e

C
o
m
p
l
e
t
e
d

/
o
r
m
K
s
L
C
o
l
l
e
c
t

C
o
m
p
l
e
t
e
d

/
o
r
m
s
N
o
m
i
n
a
t
i
o
n

I
n
v
i
t
a
t
i
o
n
N
o
m
i
n
a
t
i
o
n

/
o
r
m
S
c
r
e
e
n

@

S
e
l
e
c
t

*
r
e
l
i
m
i
n
a
r
4

C
a
n
d
i
d
a
t
e
s
S
e
n
d

8
i
s
t

o
f

S
e
l
e
c
t
e
d

*
r
e
l
i
m
i
n
a
r
4

C
a
n
d
i
d
a
t
e
s
A
s
s
e
s
s

C
a
n
d
i
d
a
t
e
s

?
o
r
%
S
e
n
d

C
a
n
d
i
d
a
t
e
s

A
s
s
e
s
s
m
e
n
t

R
e
p
o
r
t
C
o
l
l
e
c
t

C
a
n
d
i
d
a
t
e
s

?
o
r
%

A
s
s
e
s
s
m
e
n
t
R
e
p
o
r
t
s
N
o
m
i
n
a
t
o
r

m
a
4

n
o
m
i
n
a
t
e

o
n
e

o
r

m
o
r
e

N
o
m
i
n
e
e
s
A
r
o
u
n
d

3
0
0
0

i
n
v
i
t
a
t
i
o
n
s
>
c
o
n
f
i
d
e
n
t
i
a
l

n
o
m
i
n
a
t
i
o
n

f
o
r
m
s

a
r
e

s
e
n
t

t
o

s
e
l
e
c
t
e
d

N
o
m
i
n
a
t
o
r
s
*
r
e
l
i
m
i
n
a
r
4

C
a
n
d
i
d
a
t
e
s
C
a
n
d
i
d
a
t
e
s

A
s
s
e
s
s
m
e
n
t
s
(
)
p
e
r
t

A
s
s
i
s
t
a
n
c
e

R
e
2
u
i
r
e
d
B
G
e
s
8
i
s
t

o
f

C
a
n
d
i
d
a
t
e
s

t
o

.
e

A
s
s
e
s
s
e
d
A
s
s
e
s
s
m
e
n
t
N
o
N
o
m
i
n
a
t
i
o
n

/
o
r
m
K
s
L

S
e
n
t
3
e
t
e
r
m
i
n
e

N
e
e
d

f
o
r

(
)
p
e
r
t

A
s
s
i
s
t
a
n
c
e
A
s
s
e
s
s
m
e
n
t
s

C
o
m
p
l
e
t
e
d
N
o
m
i
n
a
t
o
r
s
?
r
i
t
e

R
e
c
o
m
m
e
n
d
a
t
i
o
n
s

R
e
p
o
r
t
S
u
.
m
i
t

R
e
p
o
r
t

&
i
t


R
e
c
o
m
m
e
n
d
a
t
i
o
n
s
+
o
l
d

N
o
.
e
l

*
r
i
-
e

A
&
a
r
d

C
e
r
e
m
o
n
4
R
e
p
o
r
t

&
i
t


R
e
c
o
m
m
e
n
d
a
t
i
o
n
s
N o . e l A s s e m . l 4
A
n
n
o
u
n
c
e

N
o
.
e
l

*
r
i
-
e

8
a
u
r
e
a
t
e
s
A
n
n
o
u
n
c
e
m
e
n
t

#
a
d
e
3
i
s
c
u
s
s

N
o
m
i
n
a
t
i
o
n
s
K
#
e
e
t
i
n
!

1
L
S
e
l
e
c
t

8
a
u
r
e
a
t
e
s
K
#
e
e
t
i
n
!

2
L
N
o
.
e
l

*
r
i
-
e

8
a
u
r
e
a
t
e
A
n
n
o
u
n
c
e
m
e
n
t
R
e
p
o
r
t

&
i
t


R
e
c
o
m
m
e
n
d
a
t
i
o
n
s
S
e
l
e
c
t

/
i
n
a
l

C
a
n
d
i
d
a
t
e
s

a
n
d

t

e
i
r

&
o
r
%
s
A

s
e
l
e
c
t
e
d

(
)
p
e
r
t

i
s

a
s
%
e
d

t
o

a
s
s
e
s
s

t

e

&
o
r
%

o
f

t

e

*
r
e
l
i
m
i
n
a
r
4

C
a
n
d
i
d
a
t
e
s

i
n

t

e

l
i
s
t
!ra"el #oo$ing Example
&he purpose o/ this chapter is to provide an e5amp.e o/ in*.ine event hand.ing via event sub*process constructs.
&he process scenario is inspired /rom /igure 10.100 o/ the B"M# 2.0 %peci/ication document.
7.1 .%e .ra1el Boo9+n' !cenar+o
&he &rave. $gency receives a trave. reservation re:uest, inc.uding air.ine transportation and hote. reservation, /rom a
C.ient.
)o..o0ing research and eva.uation o/ both /.ightsL and hote. roomsL avai.abi.ity, se.ected a.ternatives are pac8aged and
o//ered to the C.ient.
&he C.ient has 2F hours to either se.ect a proposed a.ternative or cance. the re:uest. In case o/ a cance..ation, or a/ter this
de.ay, the $gency updates the C.ient record to re/.ect the re:uest cance..ation and the C.ient is noti/ied.
<hen a se.ection is made, the C.ient is as8ed to provide the Credit Card in/ormation. $gain, the C.ient has 2F hours to
provide this in/ormation or the re:uest is cance.ed via the same activities stated be/ore 3update and noti/ication4.
Having received the Credit Card in/ormation, the boo8ing activities ta8e p.ace7
&he /.ight and the hote. room are boo8ed. Measures are ta8en to insure reservations reversa.s i/ prob.ems occur in the
boo8ing and payment activities. &he C.ient is a.so entit.ed to provide the $gency 0ith Credit Card In/ormation
modi/ications be/ore the boo8ing is comp.eted. %uch in/ormation 0i.. be saved in its record.
I/ an error arises during the boo8ing activities, the /.ight and hote. room reservations are reversed and the C.ient record is
updated. &he boo8ing is tried again as .ong as the boo8ing retry .imit is not e5ceeded.
)o..o0ing success/u. boo8ing the +eservations are charged on the C.ientLs Credit Card and the process stops /o..o0ing
success/u. con/irmation. I/ an error occurs during this activity the /.ight and hote. room reservation are reversed. &he
C.ient is as8ed again /or the Credit Card In/ormation and the boo8ing is tried again as .ong as the payment processing
retry .imit is not e5ceeded.
In both cases, /o..o0ing the error, 0hen the retry .imit is e5ceeded, the C.ient is noti/ied and the process stops.
9*#N 2.0 .4 ()ample: ;ersion 1.0 2<
7.2 .%e .ra1el Boo9+n' D+a'ram
2> 9*#N 2.0 .4 ()ample: ;ersion 1.0
R
e
c
e
iv
e
C
u
s
t
o
m
e
r

/
li!

t

a
n
d
+
o
te
l
R
o
o
m

R
e
s
e
r
v
a
t
io
n

R
e
2
u
e
s
t
S
e
a
r
c


/
li!

t
s

.
a
s
e
d

o
n

C
u
s
t
o
m
e
r

R
e
2
u
e
s
t
(
v
a
lu
a
t
e

/
li!

t
s

&
it

in

C
u
s
t
o
m
e
r

C
r
ite
r
ia
S
e
a
r
c


+
o
t
e
l
R
o
o
m
s
.
a
s
e
d

o
n

C
u
s
t
o
m
e
r

R
e
2
u
e
s
t
(
v
a
lu
a
t
e

+
o
t
e
l
R
o
o
m
s
&
it

in

C
u
s
t
o
m
e
r

C
r
ite
r
ia
*
a
c
%
a
!
e

/
li!

t
s

a
n
d

+
o
t
e
l R
o
o
m
s

f
o
r

C
u
s
t
o
m
e
r

R
e
v
ie
&
*
r
e
s
e
n
t


/
li!

t
s
a
n
d

+
o
t
e
l
R
o
o
m
s

A
lt
e
r
n
a
tiv
e
s


to

C
u
s
t
o
m
e
r
2
4

o
u
r
s
C
a
n
c
e
l R
e
2
u
e
s
t
C
u
s
t
o
m
e
r

m
a
%
e

S
e
le
c
t
io
n
H
p
d
a
te

C
u
s
t
o
m
e
r

R
e
c
o
r
d

K
R
e
2
u
e
s
t

C
a
n
c
e
lle
d
L
N
o
t
if4

C
u
s
t
o
m
e
r

t
o

S
t
a
r
t
A
!
a
in
R
e
2
u
e
s
t

C
r
e
d
it
C
a
r
d
I
n
f
o
r
m
a
t
io
n

f
r
o
m
C
u
s
t
o
m
e
r
2
4
+
o
u
r
s
R
e
2
u
e
s
t

C
a
n
c
e
lle
d
9
o
o
%
in
!
9
o
o
%
/
li!

t
9
o
o
%

+
o
t
e
l
/
li!

t
+
o
t
e
l
C
a
n
c
e
l /
li!

t
C
a
n
c
e
l
+
o
t
e
l
R
e
s
e
r
v
a
t
io
n
C
o
m
p
le
t
e
d
H
p
d
a
t
e

C
r
e
d
it
C
a
r
d
I
n
f
o
r
m
a
t
io
n
H
p
d
a
t
e

C
r
e
d
it

C
a
r
d

I
n
f
o
+
a
n
d
le

C
o
m
p
e
n
s
a
t
io
n
9
o
o
%
in
!
/
li!

t
+
o
t
e
l
H
p
d
a
t
e

C
u
s
t
o
m
e
r

R
e
c
o
r
d
+
a
n
d
le
9
o
o
%
in
!

(
r
r
o
r
9
o
o
%
in
!
(
r
r
o
r

1
/
li!

t
+
o
t
e
l
9
o
o
%
in
!

(
r
r
o
r

2
9
o
o
%
in
!

(
r
r
o
r

2
C

a
r
!
e

C
r
e
d
it

C
a
r
d
9
o
o
%
in
!

S
u
c
c
e
s
s
f
u
ll4

C
o
m
p
le
t
e
d
9
o
o
%
in
!
R
e
t
r
4

8
im
it
(
)
c
e
e
d
e
d
B
N
o
t
if
4

C
u
s
t
o
m
e
r

I
n
v
a
lid

C
r
e
d
it

C
a
r
d
9
o
o
%
in
!
N
o
t
C
o
m
p
le
t
e
d
G
e
s
N
o
R
e
t
r
4

8
im
it

(
)
c
e
e
d
e
d
B
N
o
N
o
t
if4

C
u
s
t
o
m
e
r

/
a
ile
d

9
o
o
%
in
!
G
e
s
%& Examples 'rom Diagram Interc(ange C(apter
&he purpose o/ this chapter is to provide a subset o/ the diagrams used into the #otation and ,iagrams
chapter o/ the B"M# 2.0 speci/ication a.ong 0ith their seria.i;ations. &he comp.ete seria.i;ations o/ the
herein provided diagrams can be /ound in the accompanying machine*readab.e /i.es.
10.1 Expanded !ub Proce(( Example
10.2 0ollap(ed !ub Proce(( Example
10.2.1 Proce(( D+a'ram
10.2.2 !ub Proce(( D+a'ram
10.3 Mult+ple $ane( and Ne(ted $ane( Example
9*#N 2.0 .4 ()ample: ;ersion 1.0 27
Start(vent
Su.*rocess
Su.*rocessStart
Activit4
Su.*rocess(nd (nd(vent
a . c d
Start(vent (nd(vent
a Su.*rocess d
Su.*rocessStart
Activit4
Su.*rocess(nd
. c
8
a
n
e

1
8
a
n
e

2
#anual
,as%
8
a
n
e

2

6
1
8
a
n
e

2

6
2
Su. *rocess
Hser ,as%
3ocument
c
a
.
10.8 6ert+cal 0ollaborat+on Example
10.: 0on1er(at+on Example
10. 0%oreo'rap%y Example
30 9*#N 2.0 .4 ()ample: ;ersion 1.0
Start(vent
*articipant 2
*articipant 1
C, 1
*articipant 2
*articipant 1
C, 2
*articipant 2
*articipant 1
*articipant 3
SC
(nd(vent
a . c d
*ool A
*ool 9
8ane 1 8ane 2
Sendin!
Receivin!
.
a
*articipant 1 *articipant 2
*
a
r
t
i
c
i
p
a
n
t

3
#essa!e annotation
Conversation 1
Conversation 2
a .
c
d
e
f
%% Correlation Example
&his e5amp.e i..ustrates the usage o/ t0o concepts, name.y corre.ations and de/initiona. co..aborations. It introduces a
co..aboration bet0een three participants * %e..er, Buyer and %hipper * and the %e..er process that interacts 0ith the t0o
other participants. &he %e..erCo..ab co..aboration is de/ined as de/initiona. co..aboration /or the %e..er process, as it
speci/ies a.. "articipants the "rocess interacts 0ith. It is used to derive 0hich individua. service, %end &as8 or +eceive
&as8, is connected to 0hich "articipant through Message ).o0 and associated corre.ation in/ormation. Moreover, this
e5amp.e i..ustrates de/inition o/ 8ey*based corre.ations. %ee $nne5 $ /or the according BM2 %chema and <%,2
description.
<?xml version="1.0" encoding="=69-8"?>
<definitions id="de$"
targetNamespace="tt!"##))).e&am!(e.%*g#,*%cesses#se((e*,*%cess"
typeLanguage="tt!"##))).)3.%*g#2001#2M0Scema"
expressionLanguage="tt!"##))).)3.%*g#1999#2,at"
xmlns="tt!"##))).%mg.%*g#s!ec#+,M-#20100524#MO./0"
xmlns:xsi="tt!"##))).)3.%*g#2001#2M0Scema-instance"
xmlns:xsd="tt!"##))).)3.%*g#2001#2M0Scema"
xmlns:my+ata="tt!"##))).e&am!(e.%*g#Messages"
xmlns:tns="tt!"##))).e&am!(e.%*g#,*%cesses#se((e*,*%cess" >
<!-- !tructures and 4essages -->
<import import.ype="tt!"##))).)3.%*g#2001#2M0Scema"
location=".ata.e$initi%ns.&sd"
namespace="tt!"##))).e&am!(e.%*g#Messages")>
<import import.ype="tt!"##scemas.&m(s%a!.%*g#)sd(#"
location="Inte*$aces.)sd("
namespace="tt!"##))).e&am!(e.%*g#Messages")>
<item+efinition id="item;9>Message" structure(ef="my.ata"*$?;e?'est">
<!-- !ingle part message -->
<)item+efinition>
<item+efinition id="item>'%teMessage" structure(ef="my.ata"*$?;es!%nse">
<!-- !ingle part message -->
<)item+efinition>
<item+efinition id="item9a'(tMessage" structure(ef="my.ata"*$?9a'(t">
<!-- !ingle part message -->
<)item+efinition>
<item+efinition id="itemO*de*;e?'est" structure(ef="my.ata"%*de*;e?'est">
<!-- 4ulti part message -->
<)item+efinition>
<item+efinition id="itemO*de*;es!%nse" structure(ef="my.ata"%*de*;es!%nse">
<!-- 4ulti part message -->
<)item+efinition>

<item+efinition id="itemSi!!ing;e?'est" structure(ef="my.ata"si!!ing;e?'est">
<!-- 4ulti part message -->
<)item+efinition>

<item+efinition id="itemSi!!ing;es!%nse" structure(ef="my.ata"si!!ing;es!%nse">
<!-- 4ulti part message -->
<)item+efinition>
<message id="msg;9>" name=";9> Message" item(ef="tns"item;9>Message")>
<message id="msg>'%te" name=">'%te Message" item(ef="tns"item>'%teMessage")>
<message id="msg9a'(t" name="9a'(t Message" item(ef="tns"item9a'(tMessage")>
<message id="msgO*de*.ata" name="O*de* .ata Message" item(ef="tns"itemO*de*;e?'est")>
<message id="msgO*de*1%n$i*mati%n" name="O*de* 1%n$i*mati%n Message" item(ef="tns"itemO*de*;es!%nse")>
<message id="msgSi!!ing.ata" name="Si!!ing .ata Message" item(ef="tns"itemSi!!ing;e?'est")>
<message id="msgSi!!ing1%n$i*mati%n" name="Si!!ing 1%n$i*mati%n Message" item(ef="tns"itemSi!!ing;es!%nse")>
<partner"ntity id="teSe((e*" name="6e Se((e*">
<participant(ef>tns:seller<)participant(ef>
<)partner"ntity>
<partner(ole id="a+'ye*" name="< +'ye*">
<participant(ef>tns:buyer<)participant(ef>
<)partner(ole>
<partner(ole id="aSi!!e*" name="< Si!!e*">
<participant(ef>tns:s$ipper<)participant(ef>
<)partner(ole>

<correlation-roperty id="!*%!>'%teI." name=",*%!e*ty >'%te I." type="&sd"st*ing">
<correlation-roperty(etrieval"xpression message(ef="tns"msg;9>">
<message-at$>)re=uest)=uote*+<)message-at$>
9*#N 2.0 .4 ()ample: ;ersion 1.0 31
<)correlation-roperty(etrieval"xpression>
<correlation-roperty(etrieval"xpression message(ef="tns"msg>'%te">
<message-at$>)response)=uote*+<)message-at$>
<)correlation-roperty(etrieval"xpression>
<correlation-roperty(etrieval"xpression message(ef="tns"msg9a'(t">
<message-at$>)fault)=uote*+<)message-at$>
<)correlation-roperty(etrieval"xpression>
<correlation-roperty(etrieval"xpression message(ef="tns"msgO*de*.ata">
<message-at$>)priceKuotation(ef<)message-at$>
<)correlation-roperty(etrieval"xpression>
<)correlation-roperty>
<correlation-roperty id="!*%!1'st%me*I." name=",*%!e*ty 1'st%me* I." type="&sd"st*ing">
<correlation-roperty(etrieval"xpression message(ef="tns"msgO*de*.ata">
<message-at$>)customer)id<)message-at$>
<)correlation-roperty(etrieval"xpression>
<correlation-roperty(etrieval"xpression message(ef="tns"msgO*de*1%n$i*mati%n">
<message-at$>)customer*+<)message-at$>
<)correlation-roperty(etrieval"xpression>
<)correlation-roperty>
<correlation-roperty id="!*%!O*de*I." name=",*%!e*ty O*de* I." type="&sd"st*ing">
<correlation-roperty(etrieval"xpression message(ef="tns"msgO*de*.ata">
<message-at$>)order)order*+<)message-at$>
<)correlation-roperty(etrieval"xpression>
<correlation-roperty(etrieval"xpression message(ef="tns"msgO*de*1%n$i*mati%n">
<message-at$>)order)order*+<)message-at$>
<)correlation-roperty(etrieval"xpression>
<correlation-roperty(etrieval"xpression message(ef="tns"msgSi!!ing.ata">
<message-at$>)order)order*+<)message-at$>
<)correlation-roperty(etrieval"xpression>
<correlation-roperty(etrieval"xpression message(ef="tns"msgSi!!ing1%n$i*mati%n">
<message-at$>)order)order*+<)message-at$>
<)correlation-roperty(etrieval"xpression>
<)correlation-roperty>

<collaboration id="se((e*1%((ab">
<participant id="se((e*" name="Se((e*" process(ef="tns"se((e*,*%cess">
<interface(ef>tns:seller!ervice*nterface<)interface(ef>
<)participant>
<participant id="b'ye*" name="+'ye*")>
<participant id="si!!e*" name="Si!!e*">
<interface(ef>tns:s$ipper!ervice*nterface<)interface(ef>
<)participant>
<message/lo% id="m$1" message(ef="tns"msg;9>" source(ef="tns"b'ye*" target(ef="tns"*ecei:e>'%te;e?'est")>
<message/lo% id="m$2" message(ef="tns"msg>'%te" source(ef="tns"send>'%te" target(ef="tns"b'ye*")>
<message/lo% id="m$3" message(ef="tns"msg9a'(t" source(ef="tns"send9a'(t" target(ef="tns"b'ye*")>
<message/lo% id="m$4" message(ef="tns"msgO*de*.ata" source(ef="tns"b'ye*"
target(ef="tns"*ecei:eO*de*;e?'est")>
<message/lo% id="m$5" message(ef="tns"msgO*de*1%n$i*mati%n" source(ef="tns"sendO*de*;es!%nse"
target(ef="tns"b'ye*")>
<message/lo% id="m$6" message(ef="tns"msgSi!!ing.ata" source(ef="tns"sendSi!!ing;e?'est"
target(ef="tns"si!!e*")>
<message/lo% id="m$7" message(ef="tns"msgSi!!ing1%n$i*mati%n" source(ef="tns"si!!e*"
target(ef="tns"*ecei:eSi!!ing1%n$i*mati%n")>
<!-- Aonversations -->
<conversation id="c%n:e*sati%n>'%te;e?'est">
<message/lo%(ef>tns:mf6<)message/lo%(ef>
<message/lo%(ef>tns:mf8<)message/lo%(ef>
<message/lo%(ef>tns:mf7<)message/lo%(ef>
<message/lo%(ef>tns:mfL<)message/lo%(ef>
<correlationJey id="c%**e(>'%te" name=">'%te 1%**e(ati%n @ey">
<correlation-roperty(ef>tns:propKuote*+<)correlation-roperty(ef>
<)correlationJey>
<)conversation>
<conversation id="c%n:e*sati%nO*de*Aand(ing">
<message/lo%(ef>tns:mfL<)message/lo%(ef>
<message/lo%(ef>tns:mf;<)message/lo%(ef>
<correlationJey id="c%**e(O*de*" name="O*de* 1%**e(ati%n @ey">
<correlation-roperty(ef>tns:propAustomer*+<)correlation-roperty(ef>
<correlation-roperty(ef>tns:prop,rder*+<)correlation-roperty(ef>
<)correlationJey>
<)conversation>
<conversation id="c%n:e*sati%nSi!ment;e?'est">
<message/lo%(ef>tns:mf#<)message/lo%(ef>
<message/lo%(ef>tns:mf9<)message/lo%(ef>
<correlationJey id="c%**e(Si!ment" name="Si!ment 1%**e(ati%n @ey">
<correlation-roperty(ef>tns:prop,rder*+<)correlation-roperty(ef>
<)correlationJey>
<)conversation>
<)collaboration>
<!-- *nterfaces -->
32 9*#N 2.0 .4 ()ample: ;ersion 1.0
<!-- .$e interface of t$e !eller -rocess -->
<interface id="se((e*Se*:iceInte*$ace" name="Se((e* Se*:ice Inte*$ace">
<operation id="*e?'est>'%teO!" name=";e?'est >'%te O!e*ati%n">
<in4essage(ef>tns:msg(/K<)in4essage(ef>
<out4essage(ef>tns:msgKuote<)out4essage(ef>
<error(ef>tns:msg/ault<)error(ef>
<)operation>
<operation id="%*de*O!" name="O*de* O!e*ati%n">
<in4essage(ef>tns:msg,rder+ata<)in4essage(ef>
<out4essage(ef>tns:msg,rderAonfirmation<)out4essage(ef>
<)operation>
<)interface>
<interface id="si!!e*Se*:iceInte*$ace" name="Si!!e* Se*:ice Inte*$ace">
<operation id="*e?'estSi!!ingO!" name=";e?'est Si!!ing O!e*ati%n">
<in4essage(ef>tns:msg!$ipping+ata<)in4essage(ef>
<out4essage(ef>tns:msg!$ippingAonfirmation<)out4essage(ef>
<)operation>
<)interface>

<!-- -rocess +efinition -->
<process id="se((e*,*%cess" name="Se((e* !*%cess"
definitionalAollaboration(ef="tns"se((e*1%((ab">

<!--(eceive =uote re=uest message from caller'-->
<receive.as> id="*ecei:e>'%te;e?'est" name=";ecei:e >'%te ;e?'est"
instantiate="t*'e"
message(ef="tns"msg;9>"
operation(ef="tns"*e?'est>'%teO!")>

<se=uence/lo% target(ef="decisi%n1" source(ef="*ecei:e>'%te;e?'est")>
<!--+ecide %$et$er =uote is available and can be returned1 or not'
.$e actual processing logic is omitted from t$e example' -->
<exclusive?ate%ay id="decisi%n1" gate%ay+irection="Mi&ed"
default="n%>'%te")>
<se=uence/lo% id="?'%te" target(ef="send>'%te" source(ef="decisi%n1">
<condition"xpression>Kuote available and o>ay'<)condition"xpression>
<)se=uence/lo%>
<se=uence/lo% id="n%>'%te" target(ef="send9a'(t" source(ef="decisi%n1")>
<!-- (espond successful =uote bac> to caller' -->
<send.as> id="send>'%te" name="Send >'%te"
message(ef="tns"msg>'%te"
operation(ef="tns"*e?'est>'%teO!")>

<se=uence/lo% target(ef="e:ent8ait" source(ef="send>'%te")>

<!-- .$is is a reply1 so use same service reference and operation as in associated receive' -->
<send.as> id="send9a'(t" name="Send 9a'(t"
message(ef="tns"msg9a'(t"
operation(ef="tns"*e?'est>'%teO!")>
<receive.as> id="*ecei:e-e)>'%te;e?'est" name=";ecei:e -e) >'%te"
message(ef="tns"msg;9>"
operation(ef="tns"*e?'est>'%teO!")>
<se=uence/lo% target(ef="decisi%n1" source(ef="*ecei:e-e)>'%te;e?'est")>

<!-- (espond error bac> to caller -->

<se=uence/lo% target(ef="e:ent8ait" source(ef="send9a'(t")>
<!-- Mait for anot$er =uote re=uest1 an order1 or a timeout -->
<event3ased?ate%ay id="e:ent8ait" gate%ay+irection="Mi&ed")>
<se=uence/lo% target(ef="*ecei:e-e)>'%te;e?'est" source(ef="e:ent8ait")>
<se=uence/lo% target(ef="*ecei:eO*de*;e?'est" source(ef="e:ent8ait")>
<se=uence/lo% target(ef="time%'t" source(ef="e:ent8ait")>
<!-- .imeout and end -->
<intermediateAatc$"vent id="time%'t">
<timer"vent+efinition>
<time+ate>-+L$<)time+ate>
<)timer"vent+efinition>
<)intermediateAatc$"vent>
<se=uence/lo% target(ef="end1" source(ef="time%'t")>
<end"vent id="end1")>
<!-- (eceive an order message-->
<receive.as> id="*ecei:eO*de*;e?'est" name=";ecei:e O*de* ;e?'est"
message(ef="tns"msgO*de*.ata"
operation(ef="tns"%*de*O!" )>

<se=uence/lo% target(ef="$%*7" source(ef="*ecei:eO*de*;e?'est")>
9*#N 2.0 .4 ()ample: ;ersion 1.0 33
<parallel?ate%ay id="$%*7" gate%ay+irection=".i:e*ging")>
<se=uence/lo% target(ef="sendO*de*;es!%nse" source(ef="$%*7")>
<se=uence/lo% target(ef="sendSi!!ing;e?'est" source(ef="$%*7")>
<!-- !end order confirmation -->
<send.as> id="sendO*de*;es!%nse" name="Send O*de* ;es!%nse"
message(ef="tns"msgO*de*1%n$i*mati%n"
operation(ef="tns"%*de*O!" )>

<se=uence/lo% target(ef="3%in" source(ef="sendO*de*;es!%nse")>

<!-- .rigger !$ipping -->
<send.as> id="sendSi!!ing;e?'est" name="Send Si!!ing ;e?'est"
message(ef="tns"msgSi!!ing.ata"
operation(ef="tns"*e?'estSi!!ingO!")>

<se=uence/lo% target(ef="*ecei:eSi!!ing1%n$i*mati%n"
source(ef="sendSi!!ing;e?'est")>
<!-- (eceive !$ipment Notification -->

<receive.as> id="*ecei:eSi!!ing1%n$i*mati%n" name=";ecei:e Si!!ing 1%n$i*mati%n"
message(ef="tns"msgSi!!ing1%n$i*mati%n"
operation(ef="tns"*e?'estSi!!ingO!" )>

<se=uence/lo% target(ef="3%in" source(ef="*ecei:eSi!!ing1%n$i*mati%n")>
<parallel?ate%ay id="3%in" gate%ay+irection="1%n:e*ging")>
<se=uence/lo% target(ef="end2" source(ef="3%in")>
<end"vent id="end2")>
<)process>
<)definitions>
38 9*#N 2.0 .4 ()ample: ;ersion 1.0
12 E-Ma+l 6ot+n' Example
&his chapter 0i.. provide an e5amp.e o/ a business process mode.ed 0ith B"M#. &his e5amp.e 0as presented in the
B"M# 1.0 speci/ication, but has been updated /or B"M# 2.0. &he process that 0i.. be described is a process used to he.p
deve.op this notation. It is a process /or reso.ving issues through e*mai. votes 3see )igure4. &his "rocess is sma.., but
/air.y comp.e5 and 0i.. provide e5amp.es /or many o/ the /eatures o/ B"M#, and it 0i.. he.p i..ustrate that B"M# can
hand.e simp.e and unusua. business processes and sti.. be easi.y understandab.e /or readers o/ the ,iagram. &he sections
be.o0 0i.. iso.ate segments o/ the "rocess and high.ight the mode.ing /eatures as the 0or8ings o/ the "rocess is
described.
9*#N 2.0 .4 ()ample: ;ersion 1.0 3:
3 9*#N 2.0 .4 ()ample: ;ersion 1.0
/
r
id
a
4
R
e
v
ie
&
Is
s
u
e

8
is
t
A
r
e
is
s
u
e
s

r
e
a
d
4
B
Is
s
u
e
8
is
t
MIn
itia
lN
N
o
3
is
c
u
s
s
io
n
C
4
c
le
A
n
n
o
u
n
c
e

Is
s
u
e
s
fo
r

3
is
c
u
s
s
io
n
C

e
c
%

C
a
le
n
d
a
r

fo
r

C
o
n
fe
r
e
n
c
e

C
a
ll
#
o
d
e
r
a
te

(
6
m
a
il
3
is
c
u
s
s
io
n
7

3
a
4
s
3
e
la
4
0
d
a
4
s
fr
o
m
A
n
n
o
u
n
c
e
m
e
n
t
(
6
m
a
il
d
is
c
u
s
s
io
n

3
e
a
d
lin
e

?
a
r
n
in
!
(
v
a
lu
a
te

3
is
c
u
s
s
io
n

*
r
o
!
r
e
s
s
C
o
n
fe
r
e
n
c
e

C
a
ll in

3
is
c
u
s
s
io
n

?
e
e
%
B
#
o
d
e
r
a
te

C
o
n
fe
r
e
n
c
e

C
a
ll
3
is
c
u
s
s
io
n
?
a
it u
n
til
,

u
r
s
d
a
4
: 5
a
m
N
o
G
e
s
Is
s
u
e
8
is
t
MIn
3
is
c
u
s
s
io
n
N
C
o
n
fe
r
e
n
c
e
C
a
lls
a
r
e

e
v
e
r
4
t&
o

&
e
e
%
s
?
a
r
n
in
!
,
e
)
t
,

e
*
r
o
c
e
s
s
&
ill
lo
o
p
if t
e
r
e
is

n
o
d
is
c
u
s
s
io
n
o
f
t
e
is
s
u
e
s
o
r

s
u
ffic
ie
n
t
s
o
lu
tio
n
s
Is
s
u
e
8
is
t
MR
e
a
d
4
N
Is
s
u
e
8
is
t
MN
o
t R
e
a
d
4
N
A
n
n
o
u
n
c
e

Is
s
u
e
s
fo
r
;
o
te
G
e
s
; o t i n ! # e m . e r s
Is
s
u
e

A
n
n
o
u
n
c
e
m
e
n
t
3
e
a
d
lin
e

?
a
r
n
in
!
C
o
lle
c
t ;
o
te
s
C

e
c
%

C
a
le
n
d
a
r
fo
r

C
o
n
fe
r
e
n
c
e

C
a
ll
#
o
d
e
r
a
te
(
6
m
a
il
3
is
c
u
s
s
io
n
3
e
la
4
1
3
d
a
4
s
C
o
n
fe
r
e
n
c
e
C
a
ll in

;
o
tin
!
?
e
e
%
B
?
a
it u
n
til
,

u
r
s
d
a
4
: 5
a
m
#
o
d
e
r
a
te

C
o
n
fe
r
e
n
c
e

C
a
ll
3
is
c
u
s
s
io
n
N
o
G
e
s
Is
s
u
e
8
is
t
MIn
;
o
tin
!
N
(
6
m
a
il ;
o
te

3
e
a
d
lin
e

?
a
r
n
in
!
3
e
la
4
1

d
a
4
?
a
r
n
in
!
,
e
)
t
R
e
c
e
iv
e
;
o
te
In
c
r
e
m
e
n
t
,
a
ll4
*
o
s
t S
ta
tu
s
o
n

?
e
.
S
ite
#
e
m
.
e
r
;
o
te
Is
s
u
e
;
o
te
s
*
r
e
p
a
r
e

R
e
s
u
lts
*
o
s
t R
e
s
u
lts

o
n
?
e
.
S
ite
(
6
m
a
il R
e
s
u
lts

o
f ;
o
te
3
id
(
n
o
u
!


#
e
m
.
e
r
s
;
o
te
B
R
e
d
u
c
e
n
u
m
.
e
r
o
f
;
o
tin
!
#
e
m
.
e
r
s
a
n
d

R
e
c
a
lc
u
la
te
;
o
te
+
a
v
e
t
e

#
e
m
.
e
r
s
.
e
e
n

&
a
r
n
e
d
B
R
e
6
a
n
n
o
u
n
c
e
;
o
te

&
it
?
a
r
n
in
!
to

;
o
tin
!
#
e
m
.
e
r
s
;
o
te
A
n
n
o
u
n
c
e
m
e
n
t
;
o
te
Is
s
u
e
;
o
te
s
M/
in
a
lN
N
o
Is
s
u
e
s
&
>o

#
a
Oo
r
it4
B
G
e
s
G
e
s
N
o
3
e
a
d
lin
e

?
a
r
n
in
!
;
o
te

R
e
s
u
lts
?
a
r
n
in
!
,
e
)
t
;
o
te

a
n
n
o
u
n
c
e
m
e
n
t &
it

?
a
r
n
in
!
2
n
d

,
im
e
N
o
G
e
s
R
e
d
u
c
e
to
,
&
o

S
o
lu
tio
n
s
(
6
m
a
il ;
o
te
r
s

t
a
t
a
v
e
to

C

a
n
!
e
;
o
te
s
Is
s
u
e
;
o
te
s
MA
d
Ou
s
te
d
N
N
o
G
e
s
C

a
n
!
e
;
o
te

#
e
s
s
a
!
e
Is
s
u
e
;
o
te
s
M/
in
a
l 2
N
Is
s
u
e
;
o
te
s
MA
d
Ou
s
t
e
d
N
Is
s
u
e
;
o
te
s
M/
in
a
l 2
N
?
a
it u
n
til
#
o
n
d
a
4
: 5
A
m
1
4
3
a
4
s
&he "rocess has a point o/ vie0 that is /rom the perspective o/ the manager o/ the Issues 2ist and the discussion around
this .ist. )rom that point o/ vie0, the voting members o/ the 0or8ing group are considered as e5terna. "articipants 0ho
0i.. be communicated 0ith by messages 3sho0n as Message ).o04.
&he Issue 2ist Manager 0i.. revie0 the .ist and determine i/ there are any issues that are ready /or going through the
discussion and voting cyc.e. &hen a ,ecision must be made. I/ there are no issues ready, then the "rocess is over /or that
0ee8**to be ta8en up again the /o..o0ing 0ee8. I/ there are issues ready, then the "rocess 0i.. continue 0ith the
discussion cyc.e. &he O,iscussion Cyc.eP %ub*"rocess is the /irst activity a/ter the O$ny issues readySP ,ecision and this
%ub*"rocess has t0o incoming %e:uence ).o0, one o/ 0hich originates /rom a do0nstream ,ecision and is thus part o/ a
.oop. It is one o/ a set o/ /our 3F4 comp.e5 .oops that e5ist in the "rocess. &he contents o/ the O,iscussion Cyc.eP %ub*
"rocess and the activities that /o..o0 0i.. be described be.o0.
12.1 .%e )+r(t !ub-Proce((
&he O,iscussion Cyc.eP %ub*"rocess starts 0ith a &as8 /or the Issue 2ist Manager to send an e*mai. to the 0or8ing group
that a set o/ Issues are no0 open /or discussion through the 0or8ing groupLs message board. %ince this &as8 sends a
message to an outside "articipant 3the 0or8ing group members4, an outgoing Message ).o0 is seen /rom the O,iscussion
Cyc.eP %ub*"rocess to the O>oting MembersP "oo. in the )igure. Basica..y, the 0or8ing group 0i.. be discussing the
issues /or one 0ee8 and proposing additiona. so.utions to the issues. $/ter the /irst &as8, three separate para..e. paths are
/o..o0ed, 0hich are synchroni;ed do0nstream. &his is sho0n by the three outgoing %e:uence ).o0 /or that activity.
&he top para..e. path in the /igure starts 0ith a .ong*running &as8, OModerate (*mai. ,iscussion,P that has a &imer
Intermediate (vent attached to its boundary. &he OModerate (*Mai. ,iscussionP &as8 0i.. never actua..y be comp.eted
norma..y in this mode., but 0i.. be interrupted by the &imer Intermediate (vent.
&he midd.e para..e. path o/ the /or8 contains an Intermediate (vent and a &as8. $ &imer Intermediate (vent used in the
midd.e o/ the "rocess /.o0 3not attached to the boundary o/ an activity4 0i.. cause a de.ay. &his de.ay is set to Q days.
&he O(*Mai. ,iscussion ,ead.ine <arningP &as8 0i.. /o..o0. $gain, since this &as8 sends a message to an outside
"articipant, an outgoing Message ).o0 is seen /rom the O,iscussion Cyc.eP %ub*"rocess to the O>oting MembersP "oo.
in the )igure.
&he bottom para..e. path o/ the /or8 contains more than one ob!ect, /irst o/ 0hich is &as8 0here the issue .ist manager
chec8s the ca.endar to see i/ there is a con/erence ca.. this 0ee8. &he output o/ the &as8 0i.. be an update to the variab.e
OConCa..P 3not seen4, 0hich 0i.. be true or /a.se. $/ter the &as8, an (5c.usive Gate0ay 0ith its t0o Gates /o..o0s. &he
Ode/au.tP ).o0 connects direct.y to an merging (5c.usive Gate0ay. $ merging (5c.usive Gate0ay is used in this
situation because the ne5t ob!ect is a !oining "ara..e. Gate0ay 3the diamond 0ith the cross in the center4 that is used to
synchroni;e the three 394 para..e. paths. I/ the merging Gate0ay 0as not used and both %e:uence ).o0 connected to the
"ara..e. Gate0ay, the "rocess 0ou.d have been stuc8 at the "ara..e. Gate0ay that 0ou.d 0ait /or a &o8en to arrive /rom
each o/ the incoming %e:uence ).o0. &he O=esP %e:uence ).o0 0i.. have a condition that chec8s the va.ue o/ the
OConCa..P variab.e 3set in the previous &as84 to see i/ there 0i.. be a con/erence ca.. during the 0ee8. I/ so, the &imer
Intermediate (vent indicates de.ay, since a.. con/erence ca..s /or the 0or8ing group start at Ham ",& on &hursdays. &he
&as8 /or moderating the con/erence ca.. /o..o0s the de.ay, 0hich is /o..o0ed by the merging Gate0ay.
&he merging Gate0ay in bottom path, the OModerate (*mai. ,iscussionP &as8, and the O(*Mai. ,iscussion ,ead.ine
<arningP &as8 a.. /.o0 into a synchroni;ing "ara..e. Gate0ay. &his Gate0ay 0aits /or a.. three paths to comp.ete be/ore
the "rocess 0i.. continue to the ne5t &as8, O(va.uate ,iscussion "rogress.P &he Issue 2ist Manager 0i.. revie0 the status
o/ the issues and the discussions during the past 0ee8 and decide i/ the discussions are over. &he O,iscussionverP
variab.e 3not seen4 0i.. be set to &+'( or )$2%(, depending on this eva.uation. I/ the variab.e is set to )$2%(, then the
0ho.e %ub*"rocess 0i.. be repeated, since it has .ooping set and the .oop condition that 0i.. test the O,iscussionverP
variab.e.
12.2 .%e !econd !ub-Proce((
&he OCo..ect >otesP %ub*"rocess is preceded by a &as8 /or the issue .ist manager to send out an e*mai. to announce to
the 0or8ing group, and the voting members in particu.ar, 0hich .ets them 8no0 that the issues are no0 ready /or voting.
%ince this &as8 sends a message to an outside "articipant 3the 0or8ing group members4, an outgoing Message ).o0 is
seen /rom the O$nnounce IssuesP &as8 to the O>oting MembersP "oo. in the )igure above. &his &as8 is a.so a target /or
one o/ the comp.e5 .oops in the "rocess.
9*#N 2.0 .4 ()ample: ;ersion 1.0 3<
&he OCo..ect >otesP %ub*"rocess /o..o0s the &as8, and is a.so a target o/ one o/ the .ooping %e:uence ).o0. &his %ub*
"rocess is basica..y a set o/ three 394 para..e. paths that e5tend /rom the beginning to the end o/ the %ub*"rocess. In
addition, there is a non*interrupting (vent %ub*"rocess that is used to receive the votes /rom the voting members as they
come in.
&he /irst branch o/ the /or8 .eads to a ,ecision that determines 0hether or not a con/erence ca.. 0i.. occur during the
upcoming 0ee8, a/ter the <or8ing GroupLs schedu.e has been chec8ed. Basica..y, i/ there 0as a ca.. .ast 0ee8, then there
0i.. not be a ca.. this 0ee8 and vice versa. I/ there is no ca.., then there is a &imer Intermediate (vent that is set to 0ait
unti. the ne5t Monday, then the path .oops bac8. &he appropriate variab.e that 0as updated in the O,iscussion Cyc.eP
"rocess 0i.. be used again.
&he second and third branches o/ the /or8s 0or8 the same 0ay as the simi.ar activities in the O,iscussion Cyc.eP %ub*
"rocess, e5cept that it 0i.. .ast t0o 0ee8s. Ho0ever, since the branches .ead to an (nd (vent instead o/ a "ara..e.
Gate0ay, a merging (5c.usive Gate0ay is not needed 3the necessary synchroni;ation 0i.. be done by the (nd (vent4.
&he (vent %ub*"rocess 0i.. accept votes /rom the voting members throughout the t0o 0ee8s that the OCo..ect >otesP
%ub*"rocess runs. &he po.icy o/ the 0or8ing group is that voting members can vote more than once on an issue6 that is,
they can change their mind as many times as they 0ant throughout the entire t0o 0ee8s. &he Message %tart (vent
triggers the per/ormance o/ the (vent %ub*"rocess. It is o/ the non*interrupting type so that mu.tip.e votes can be
co..ected during the t0o 0ee8s. $s part o/ this, an incoming Message ).o0 is seen /rom the O>oting MembersP "oo. to
the O+eceive >oteP %tart (vent. <ithin the (vent %ub*"rocess are &0o &as8s that /o..o0 the start. )irst, a &as8 0i..
prepare a.. the voting resu.ts, then a &as8 0i.. send the resu.ts to the voting members.
12.3 .%e End o/ t%e Proce((
&he .ast section o/ the "rocess inc.udes a comp.e5 set o/ ,ecisions and .oops. )irst a set o/ &as8s 0i.. prepare the voting
resu.ts, emai. them to the voting members, and post them on a 0eb site. &he /irst ,ecision, O,id (nough Members
>oteS,P is necessary since t0o*thirds o/ the voting members are re:uired to approve any so.ution to an issue. I/ .ess than
t0o*thirds o/ the voting members cast votes, 0hich sometimes happens, the issues canLt be reso.ved. &his ,ecision is
/o..o0ed by another ,ecision /or both o/ its $.ternatives. &he O#oP $.ternative is /o..o0ed by the OHave the Members
been <arnedSP ,ecision. I/ a voting member misses a vote, they are 0arned. I/ they miss a second vote, they .ose their
status as a voting member and the voting percentages are reca.cu.ate through a &as8 3O+educe number o/ >oting
Members and +eca.cu.ate >oteP4. I/ they havenLt yet been 0arned, then a 0arning is sent and the voting cyc.e is
repeated. I/ a.. issues are reso.ved, then the "rocess is done. I/ not, then another ,ecision is re:uired. &he voting is given
t0o chances be/ore it goes bac8 to another cyc.e o/ discussion. &he /irst time 0i.. see a reduction o/ the number o/
so.utions to the t0o most popu.ar based on the vote 3more i/ there are ties4. %ome voting members 0i.. have to change
their votes !ust because their se.ected so.ution is no .onger va.id. &hese t0o activities are p.aced in a %ub*"rocess to sho0
ho0 a %ub*"rocess 0ithout %tart and (nd (vents can be used to create a simp.e set o/ para..e. activities. In/orma..y, this
is ca..ed a Opara..e. bo5.P It is not a specia. ob!ect, but another use o/ %ub*"rocesses. )or simp.e situations, it can be used
to sho0 a set o/ para..e. activities 0ithout the e5tra c.utter o/ a .ot o/ %e:uence ).o0. In actua.ity, these t0o &as8s cannot
actua..y be done in para..e., but they are mode.ed this 0ay to high.ight the optiona. use o/ %tart and (nd (vents. $/ter the
para..e. bo5, the /.o0 .oops bac8 to the OCo..ect >otesP %ub*"rocess. I/ there a.ready has been t0o cyc.es o/ voting, then
the process ).o0 bac8 to the O,ecision Cyc.eP %ub*"rocess.
3> 9*#N 2.0 .4 ()ample: ;ersion 1.0
*nnex *: ?M$ !er+al+;at+on( /or all pre(ented
Model(
KinformativeL
*.1 Mac%+ne-readable ?M$ !er+al+;at+on(
&he BM2 seria.i;ations /or a.. mode.s are provided in machine*readab.e /orm as a separate ;ip /i.e, 0hich has the MG
,ocument #umber dtcK2010*0Q*09 and is avai.ab.e /or do0n.oad at http7KK000.omg.orgKspecKB"M#K2.0Ke5amp.esKTI".
9*#N 2.0 .4 ()ample: ;ersion 1.0 37

You might also like