Professional Documents
Culture Documents
< partnerLinks > <!! "ata used by the process --> <#ariables> ... < #ariables > <!! $upports asynchronous interactions --> <correlation$ets> ... < correlation$ets> <!! %cti#ities that the process performs --> &acti#ities'( <!!)*ception handlin+, %lternate e*ecution path to deal -ith faulty situations --> <fault.andlers> ... < fault.andlers> <!!/ode that is e*ecuted -hen an action is 0undone --> <compensation.andlers> ... < compensation.andlers> <!!.andlin+ of concurrent e#ents --> <e#ent.andlers> ... < e#ent.andlers> < process>
<partnerLinks$ <partnerLink name= #Purc!asing# partnerLinkType= Purc!ase"rderPLT# my(ole= #Purc!aseSer%ice# &$ <partnerLink name= 'redit'!ecker-partnerLinkType= 'redit'!eckPLT# my(ole=#'redit(e)uester# partner(ole= 'redit'!ecker#&$ <partnerLink name= BillingSer%ice# partnerLinkType= BillingPLT# my(ole= Bill(e)uester# partner(ole= Biller#&$ <&partnerLinks$
async!ronous
<%aria*les$ <%aria*le name= P" messageType= P"0essage#&$ <%aria*le name= 1n%oice messageType= 1n%0essage#&$ < %aria*le name= "rder2cceptance# messageType= "rder2ccept0essage#& $ < %aria*le name= P"3ault# messageType= P"3aultType#& $ <&%aria*les$ <assign$ <copy$ <from %aria*le=#P"# part= purc!ase"rder#&$ <to %aria*le= credit(e)uest-part= purc!ase"rder#&$ <©$ <&assign$
<4sdl5 message name= P"0essage$ < 4sdl5 part name= manufacturer1nfo-type= sns5manufacturer1nfo&$ < 4sdl5 part name= purc!ase"rder-type= sns5purc!ase"rder&$ <& 4sdl5 message$ ++ < 4sdl5 message name=#"rder2ccept0essage# $ < 4sdl5 part name= "2-type= sns5"rder2cceptance &$ <& 4sdl5 message$ < 4sdl5 message name= P"3aultType$ < 4sdl5 part name= pro*lem1nfo -type= 6sd 5string&$ <& 4sdl5 message$ <788 portTypes supported *y t!e purc!ase order process 88$ ++ <portType name= Purc!asePortType#$ <operation name= SendPurc!ase#$ <input message=#pos5 P"0essage#&$ <output message=#pos5 1n%0essage#&$ <fault name=#cannot'omplete"rder# message=#pos5P"3aultType#& $ <&operation$ <&portType$
<se3uence>
<recei#e
< recei#e> <flo-> <links> <link name=1in#entory-check1 > <link name=1credit-check1 > < links> <!! /heck in#entory --> <in#oke partnerLink=1in#entory/hecker1 port2ype=1lns,4n#entoryPort2ype1 operation=1check4n#entory1 input6ariable=1in#entoryRe3uest1 output6ariable=1in#entoryResponse1> <source link7ame=1in#entory-check1 > 8. <in#oke > <!! /heck credit --> <in#oke partnerLink=1credit/hecker1 port2ype=1lns,/redit/heckPort2ype1 operation=1check/redit1 input6ariable=1creditRe3uest1 output6ariable=1creditResponse1> <source link7ame=1credit-check1 > 8. <in#oke > <!! 4ssue bill once in#entory and credit checks are successful --> <in#oke partnerLink=15illin+$er#ice1 port2ype=1lns,5illin+Port2ype1 operation=1bill/lient1 input6ariable=1billRe3uest1 output6ariable=14n#oice1 9oin/ondition=1+etLink$tatus&:in#entory-check;' %7" +etLink$tatus&:credit-check;'1> <tar+et link7ame=1in#entory-check1 > <tar+et link7ame=0credit-check1 > 8. <in#oke > < flo-> ... <reply partnerLink=1Purchasin+1 port2ype=1lns,purchaseOrderP21 operation=1Purchase1 #ariable=14n#oice1 > < se3uence>
<part name=1R$P1 type=1tns,PurchaseOrderResponse1 > < messa+e> 8 <correlation$ets> <correlation$et name=1PO/orr1 properties=1cor,manufact4d cor,order4d1 > <correlation$et name=14n#oice/orr1 properties=1cor,supplier4d cor,in#oice7umber1 > < correlation$ets> ... <recei#e partnerLink=1=anufacturer1 port2ype=1PO$ubmissionPort2ype1 operation=$ubmitPurchase1 #ariable=1PO1> <correlations> <correlation set=1PO/orr1 initiate=1yes1> < correlations> < recei#e> 8 <in#oke partnerLink=1=anufacturer1 port2ype=1order/allbackPort2ype1 operation=1PurchaseResponse1 input6ariable=1POResponse1> <correlations> <correlation set=1PO/orr1 initiate=1no1 pattern=1out1> <correlation set=14n#oice/orr1 initiate=1yes1 pattern=1out1> < correlations> < in#oke> 8
<fault.andlers> <catch fault7ame=1Order7ot/omplete1 fault6ariable=1PO>ault1> <reply partnerLink=0=anufacturer1 port2ype=0PurchasePort2ype1 operation=0Purchase1 #ariable=1PO>ault1 fault7ame=1Order7ot/omplete1 > < catch> < fault.andlers>
<information2ype name=1purchaseOrder2ype1 type=1pons,PurchaseOrder=s+1 > <information2ype name=1purchaseOrder%ck2ype1 type=1pons,PurchaseOrder%ck=s+1 > <token name=1purchaseOrder4"1 information2ype=1tns,int2ype1 > <token name=0supplierRef1 information2ype=1tns,uri2ype1 > 88 <role name=0=anufacturer1> <beha#ior name=0manufacturer>or$upplier1 interface=1cns,=anufacturer$upplierP21 > <beha#ior name=1manufacturer>orAarehouse1 interface=1cns,$upplierAarehouseP21 > < role> <role name=1$upplier1> <beha#ior name=0supplier>or=anufacturer1 interface=1rns,=anufacturer$upplierP21 > < role> <relationship name=1=anufacturer$upplierRelationship1> <role type=1tns,=anufacturer1 beha#ior=1 manufacturer>or$upplier1 > <role type=1tns,$upplier1 beha#ior=0supplier>or=anufacturer1 > < relationship> <channel2ype name=1=anufacturer/hannel1> <role type=1tns,=anufacturer1 > <reference> <token type=1tns,manufacturerRef1 > < reference> <identity> <token type=1tns,purchaseOrder4"1 > < identity> < channel2ype> 88 <choreo+raphy name=1 =anufacturer$upplier/horeo1 root=1true1> <relationship type=1tns,=anufacturer$upplierRelationship1 > <#ariable"efinitions> <#ariable name=1purchaseOrder1 information2ype=1tns,purchaseOrder2ype1 > 88 <#ariable name=1supplier-channel1 channel2ype=1tns,$supplier/hannel1 > 88 <interaction channel6ariable=1tns,supplier-channel1 operation=1handlePurchaseOrder1 ali+n=1true1initiate/horeo+raphy=1true1> <participate relationship=1tns,=anufacturer$upplierRelationship1 fromRole=1tns,=anufacturer1 toRole=1tns,$upplier 1 > <e*chan+e messa+e/ontent2ype=1tns,purchaseOrder2ype1 action=1re3uest1> <use #ariable=1cdl,+et6ariable&tns,purchaseOrderB tns,=anufacturer'1 > <populate #ariable=1cdl,+et6ariable&tns,purchaseOrderB tns,$upplier '1 > < e*chan+e> <e*chan+e messa+e/ontent2ype=1purchaseOrder%ck2ype1 action=1respond1> <use #ariable=1cdl,+et6ariable&tns,purchaseOrder%ckB tns,$upplier'1 > <populate #ariable=1cdl,+et6ariable&tns,purchaseOrder%ckB tns,=anufacturer'1 > < e*chan+e> <record role=1tns, $upplier 1action=1re3uest1> <source #ariable=1cdl,+et6ariable&tns,purchaseOrderB PO =anufacturer RefB tns, $upplier '1 > <tar+et #ariable=1cdl,+et6ariable&tns,manufacturer-channelB tns,$upplier '1 > < record> < interaction> < choreo+raphy> < packa+e>