Академический Документы
Профессиональный Документы
Культура Документы
AntonisAntoniou'sBlog
Thursday,October8,2015
OracleBPM12cSubprocesses(Part1of3):
ReusableSubprocess
InthisthreepartserieswewillexploreanadditionalBPMNflow
object,thesubprocess.Bydefinition,asubprocessisanothertype
ofprocessthatcaneitherresidewithinthemainprocessoritis
calledbyanotherprocess.
Asubprocess,justlikeanormalprocesshasitsownstartandend
eventsandcanacceptdataobject,updatedataobjectsandreturn
dataobjects.Therearethreetypesofsubprocesses,Reusable
subprocesses,EmbeddedsubprocessesandEventsubprocesses.
InthisfirstpartwewilldiveintotheResuableprocess. OracleBusinessProcess
ManagementSuite12c
AResuableprocesses,asthenameimpliesisanindependent CertifiedImplementation
processthatisoftenusedtogroupcommonandrepeatedflows(and Specialist
activities)sothattheycanbereused(asopposedtore
implementedeverytimewhereneeded)andwhichcanbeinvoked OracleSOASuite12cCertified
bymultipleparentprocesseswithinthesameBPMproject.Andits ImplementationSpecialist
imperativetostressherethelastpart,withinthesameBPM
project,asaResuableprocesscannotbeused/invokedfromother OracleApplication
BPMprojects.Toachievethelatteryouwillneedtousetemplates DevelopmentFramework12c
(featurethatIwillbeblogginglater). CertifiedImplementation
Specialist
Asopposedtoanormalprocesswherecanyouuseavarietyof
eventstostartandendaprocess(forexample,messagestart OracleApplicationGrid11g
event,timerstartevent,signalstartevent,messageendevent, CertifiedImplementation
signalendevent,etc.),aReusablesubprocesscanonlystartwith Specialist
anonestarteventandcanonlyendwithanoneendevent.
OracleUnifiedBusiness
Furthermore,toinvokeaReusablesubprocessfromamain ProcessManagement11g
process,youwillneedtouseaCallactivitythatby CertifiedImplementation
implementationallowsyoutocallareusableprocesssynchronously. Specialist
Whatthismeansisthatwhentheparentprocessinvokesa
ReusableprocessitwillwaituntiltheReusablechildprocess ServiceOrientedArchitecture
completesexecutionbeforetheparentcontinuesitsflow. 11gImplementationSpecialist
However,eventhoughthetokenispassedfromtheparentprocess OracleApplication
tothesubprocess,thechildsubprocessdoesnotsharetheparent DevelopmentFramework11g
context,meaningthatthedataobjectsoftheparentprocessarenot CertifiedImplementation
availabletotheReusablechildprocess. Specialist
OracleWebCenterPortal11g
CertifiedImplementation
Specialist
OracleWebCenterContent11g
ImplementationSpecialist
http://antonisantoniou.blogspot.in/2015/09/oraclebpm12csubprocessespart1of3.html 1/9
12/24/2016 AntonisAntoniou'sBlog:OracleBPM12cSubprocesses(Part1of3):ReusableSubprocess
Tweetsby@AntoniouAntonis
AntonisAntoniou
@AntoniouAntonis
OracleIntegrationCloudService
Integrationin#OraclePCSantonis
antoniou.blogspot.com/2016/12/ora
cle|@soacommunity
SotopassdataobjectsfromtheparentprocesstotheReusable @OTNArchBeat@oracleace
childprocess(andviceversa),yoursubprocesswillneedtodefine
dataobjectofitsownandusingthedataassociationmappingsof 13Dec
thecallactivityyoucanpassdataobjectsfromtheparentprocess
tothesubprocessandbackwards.Dataobjectsdefinedina AntonisAntoniouRetweeted
subprocessareonlyaccessiblewithinthesubprocess.
RalfMueller
Letsseeinpracticehowyoucancreateasubprocessandhowto @ralf_mueller
invokeasubprocessfromamainprocess.Forthesakeofsimplicity
Greatblogpostby
andeasinesswewillbuildtheQuoteprocessdepictedabovebut
@AntoniouAntonisonEventBased
SaveQuoteservicecall.
GatewaysandCorrelationsin
CreatethebasicBPMapplicationandBPMprojectwithan #OraclePCS
asynchronousBPMNprocessthattakesasimplestringinput antonis
argument(forexamplebidId)andreturnsastringargument(for antoniou.blogspot.de/2016/11/even
examplestatus). t
07Dec
AntonisAntoniouRetweeted
SimoneGeib
@SOASimone
Embed ViewonTwitter
SearchThisBlog
Search
Followers
Createtwostringprocessdataobjectstostoretheprocessinputand
outputargumentsforreferencethroughouttheprocess. Followers(31)Next
Follow
TotalPageviews
http://antonisantoniou.blogspot.in/2015/09/oraclebpm12csubprocessespart1of3.html 2/9
12/24/2016 AntonisAntoniou'sBlog:OracleBPM12cSubprocesses(Part1of3):ReusableSubprocess
Nextassigntheprocessinputandoutputargumentstothe
respectiveprocessdataobjects.Onthe"StartMessage"select 160281
"Properties","Implementation","DataAssociations"anddragsource
argument(bidId)totargetdataobject(pBidId).Dothesameforthe
BlogArchive
outputargument,mappingstatustopStatus.
2016(15)
2015(23)
December(2)
November(2)
October(3)
OracleBPM12c
Subprocesses(Part2of
3):Embedde...
OracleBPM12c
Subprocesses(Part1of
3):Reusabl...
SuppressApproval
Draganddroptwointeractivehumantaskactivitiesontothedefault
ControlsfromBPM
transitionlinefromstarttoendnamingthefirstEnterQuote
DetailsandthesecondoneFinalizeQuote.Youprocessshould Workspace12c...
looklikebelow.
August(2)
July(2)
June(1)
May(1)
Noticehowthehumantaskactivitiesaremarkedasincomplete.
Thatsbecausetheyhaventbeenimplementedyet.Soletscreatea April(2)
singlehumantaskdefinitiontoservebothhumantasks.
March(2)
DoubleclickontheEnterQuoteDetailshumantaskandfromthe February(3)
PropertieswindowgototheImplementationtabandclickonthe
greenAddbuttontocreateanewdefinition.Specifyaname,(for January(3)
exampleSingleOutcomeHT)andjustselectasingleoutcome,OK.
2014(22)
2013(2)
2012(8)
2011(9)
2010(7)
AboutMe
A N T O N I SA N T O N I O U
Viewmycompleteprofile
Openthepropertiesofthesecondhumantask(FinalizeQuote)and
http://antonisantoniou.blogspot.in/2015/09/oraclebpm12csubprocessespart1of3.html 3/9
12/24/2016 AntonisAntoniou'sBlog:OracleBPM12cSubprocesses(Part1of3):ReusableSubprocess
selectthehumantaskdefinitionyoucreatedabove.Bothwarnings
shoulddisappearsincebothhumantaskshavebeenimplemented.
Letsnowcreateourreusablesubprocess.Thissubprocesswilljust
serveasavalidationsubprocessandwillincludeasinglehuman
task.
Rightclickthe"BPMNProcesses"folderandfromthecontextmenu
selectnew"BPMN2.0Process".Giveyourprocessanameand
ensureyouselect"ReusableProcess"fromtheprocesstype
selectionlist.
Todemonstratecontextisolationbetweenthemainprocessandthe
subprocesslet'screateaninputandanoutputargument(quoteIdas
aninputstringargumentandanoutcomeasanoutputstring
argument).
Createtwoprocessdataobjectstostoretheinputandoutput
argumentsforreferencethroughoutthesubprocess.
http://antonisantoniou.blogspot.in/2015/09/oraclebpm12csubprocessespart1of3.html 4/9
12/24/2016 AntonisAntoniou'sBlog:OracleBPM12cSubprocesses(Part1of3):ReusableSubprocess
Nextassignthesubprocessinputandoutputargumentstothe
respectivesubprocessdataobjects.Onthe"StartNone"select
"Properties","Implementation","DataAssociations"anddragsource
argument(quoteId)totargetdataobject(pQuoteId).Dothesame
fortheoutputargument,mappingpOutcometooutcome.
Draganddropaninteractivehumantaskactivityontothedefault
transitionlinefromstarttoend,nameit"ValidateQuote"andcreate
anewdefinitionfortheinteractivehumantaskactivity.Specifya
name,(forexampleDualOutcomeHT)andensurethatboth
"APPROVE"and"REJECT"outcomesareselected.
http://antonisantoniou.blogspot.in/2015/09/oraclebpm12csubprocessespart1of3.html 5/9
12/24/2016 AntonisAntoniou'sBlog:OracleBPM12cSubprocesses(Part1of3):ReusableSubprocess
Inthehumantasktitleensurethatyouusethesubprocessinput
dataobjecttoseehowdataobjectsarepassed(viaassignments)
fromtheparentprocesstothesubprocess.
Onelastthingistoassignthehumantaskoutcometothesub
processdataobjectyou'vecreatedtostorethesubprocessreturn
argument(pOutcome).Todosoopentheinteractivehumantask
activityproperties,gototheimplementationtabandusingthedata
associationsensurethatyoucopythehumantaskoutcome
argumentvaluetothepOutcomedataobject.
http://antonisantoniou.blogspot.in/2015/09/oraclebpm12csubprocessespart1of3.html 6/9
12/24/2016 AntonisAntoniou'sBlog:OracleBPM12cSubprocesses(Part1of3):ReusableSubprocess
Withthesubprocesscompletewecannowgotothemain(parent)
processandcallthe"ValidateQuoteSubProcess".Toinvokea
reusablesubprocessfromamainprocessyouwillneedtousea
"Call"activity.
Thereforedraganddropa"Call"activityjustbetweenthetwo
interactivehumantaskactivities.Giveyour"Call"activityaname
(forexample"CallValidateQuoteSubProcess")andfromthe
implementationtab,intheprocessdropdownlistensureyouselect
yourreusablesubprocess.
Asalreadystatedabove,themainprocessdoesnotshareits
context(thereforeitsdataobjects)withareusablesubprocess.To
passdataobjectsfromthemainprocesstoasubprocessyouneed
tousedataassociations.
Thereforeusingthedataassociationsofthe"Call"activityensure
that,fromtheinputtab,youcopythepBidIdmainprocessdata
objecttothequoteIdinputargumentofthereusablesubprocess
andfromtheoutputtabyoucopybacktheoutcomefromthe
reusablesubprocessbacktothemainprocess.
http://antonisantoniou.blogspot.in/2015/09/oraclebpm12csubprocessespart1of3.html 7/9
12/24/2016 AntonisAntoniou'sBlog:OracleBPM12cSubprocesses(Part1of3):ReusableSubprocess
Wearenowreadytodeployandtestourprocess(andsubprocess).
FromtheEM(EnterpriseManager)invokeanewinstanceofyour
processandopenontheflowtrace.Yourinstanceshouldbewaiting
atthefirsthumantaskactivity.
GototheBPMWorkspaceandyoushouldseeanewtaskinyour
inbox(weblogicgiventhatyoumappedweblogicastheprocess
owner).Submitthetaskandgobacktotheflowtrace.Youshould
seethatyourinstancehasinvokedyourreusablesubprocessandis
waitingforreview.
Approve(usingtheBPMWorkspace)thenewtaskthathasbeen
createdandassignedandgobacktotheflowtrace.Youinstance
shouldhaveresumedexecutionofyourmainprocessandshouldbe
pendingatthethirdstep.
Approvethethirdandlaststepandyourinstanceshouldbe
completed.Ifyouinspecttheaudittrailoftheendactivityofyour
mainprocessyoushouldnoticethatreviewhumantaskoutcome
fromthereusablesubprocesshasbeenpassedbacktothemain
processandcopiedtothereturnargumentofthemainprocess.
http://antonisantoniou.blogspot.in/2015/09/oraclebpm12csubprocessespart1of3.html 8/9
12/24/2016 AntonisAntoniou'sBlog:OracleBPM12cSubprocesses(Part1of3):ReusableSubprocess
Downloadsampleapplication:ReusableSubprocess
PostedbyAntonisAntoniouat12:51PM
Nocomments:
PostaComment
Enteryourcomment...
Commentas: GoogleAccount
Publish
Preview
Subscribeto:PostComments(Atom)
http://antonisantoniou.blogspot.in/2015/09/oraclebpm12csubprocessespart1of3.html 9/9