You are on page 1of 26

2UDFOH:RUNIORZ5HOHDVH

%XVLQHVV(YHQW6\VWHPDQG
3/64/'HYHORSPHQW*XLGHOLQHV

$Q2UDFOH7HFKQLFDO:KLWH3DSHU
2FWREHU




Oracle Workflow Release 2.6.2 Business Event System and PL/SQL Development Guidelines Page 2
2UDFOH:RUNIORZ5HOHDVH%XVLQHVV(YHQW6\VWHP
DQG3/64/'HYHORSPHQW*XLGHOLQHV

([HFXWLYH2YHUYLHZ 
2UDFOH:RUNIORZ%XVLQHVV(YHQW6\VWHP%DVLFV  
:KDWLVWKH2UDFOH:RUNIORZ%XVLQHVV(YHQW6\VWHP" 
:KDWLVWKH%XVLQHVV(YHQW6\VWHP %(6 )UDPHZRUN"  
:KDWLVDEXVLQHVVHYHQW"  
:KDWLVDQHYHQWVXEVFULSWLRQ"  
:K\GHILQHEXVLQHVVHYHQWV" 
,DOUHDG\XVH2UDFOH:RUNIORZ'R,KDYHWRPDNHDQ\FRGH
FKDQJHVIRU2UDFOH:RUNIORZ%XVLQHVV(YHQW6\VWHP"  
:HDUHFRQVLGHULQJDGGLQJVRPHZRUNIORZVWRRXUSURGXFW&DQZH
ODXQFKWKH:RUNIORZVGLUHFWO\LQVWHDGRIXVLQJWKH%(6)UDPHZRUN
$3,V" 
7KH(YHQW0DQDJHU  
'HILQLQJ(YHQWV 
,QWHUQDO1DPH 
'LVSOD\1DPH  
'HVFULSWLRQ 
6WDWXV 
*HQHUDWH)XQFWLRQ  
2ZQHU1DPH PDQGDWRU\  
2ZQHU7DJ PDQGDWRU\  
'HILQLQJ(YHQW6XEVFULSWLRQV 
6XEVFULEHU6\VWHP  
7ULJJHULQJ&RQGLWLRQ6RXUFH7\SH  
7ULJJHULQJ&RQGLWLRQ(YHQW)LOWHU 
7ULJJHULQJ&RQGLWLRQ6RXUFH$JHQW  
([HFXWLRQ&RQWURO3KDVH PDQGDWRU\  
([HFXWLRQ&RQWURO6WDWXV 
([HFXWLRQ&RQWURO5XOH'DWD 
$FWLRQ5XOH)XQFWLRQ UHTXLUHG  
$FWLRQ:RUNIORZ,WHP7\SHDQG:RUNIORZ3URFHVV1DPH
RSWLRQDO  
$FWLRQ2XW$JHQWDQG7R$JHQW RSWLRQDO  
$FWLRQ3ULRULW\ RSWLRQDO  
$FWLRQ3DUDPHWHUV RSWLRQDO  
'RFXPHQWDWLRQ2ZQHU1DPH PDQGDWRU\  

Oracle Workflow Release 2.6.2 Business Event System and PL/SQL Development Guidelines Page 3
'RFXPHQWDWLRQ2ZQHU7DJ PDQGDWRU\  
'RFXPHQWDWLRQ'HVFULSWLRQ 
%XLOGLQJ:RUNIORZ3URFHVVHVXVLQJ%XVLQHVV(YHQWV 
5HFHLYLQJ(YHQWVLQD:RUNIORZ3URFHVV  
6HWWLQJ,WHP$WWULEXWHV 
5DLVLQJ(YHQWVIURP:RUNIORZ 
6HQGLQJ%XVLQHVV(YHQWVIURPD:RUNIORZ3URFHVV 
5DLVLQJ%XVLQHVV(YHQWVIURP3/64/&RGH 
:KHUHVKRXOG,SXWFDOOVWR5DLVH(YHQW  
´7HVWLQJµ%XVLQHVV(YHQWV 
6DPSOH3/64/&RGH  
:ULWLQJ(YHQW*HQHUDWH)XQFWLRQV  
:ULWLQJ(YHQW6XEVFULSWLRQ5XOH)XQFWLRQV  
'HIHUUHG3URFHVVLQJ 
'HIHUUHG6XEVFULSWLRQV  
'HIHUUHG'LVSDWFKLQJRI(YHQWV  
'HIHUULQJRI:RUNIORZV  
([WHQGLQJ%XVLQHVV(YHQW6\VWHP(UURU+DQGOLQJ  
8VHIXO'HEXJJLQJ7LSV 
6DPSOH'HEXJ2XWSXW  
&RQFOXVLRQ 



Oracle Workflow Release 2.6.2 Business Event System and PL/SQL Development Guidelines Page 4
2UDFOH:RUNIORZ5HOHDVH%XVLQHVV(YHQW6\VWHP
DQG3/64/'HYHORSPHQW*XLGHOLQHV

EXECUTIVE OVERVIEW
7KHREMHFWLYHRIWKLVGRFXPHQWLVWRGHVFULEHGHYHORSPHQWVWDQGDUGVZKLFKFDQEH
IROORZHGZKHQEXLOGLQJDSSOLFDWLRQVXVLQJWKH2UDFOH:RUNIORZ5HOHDVH
%XVLQHVV(YHQW6\VWHPDQG3/64/,WH[SODLQVSULQFLSOHVHVVHQWLDOIRU
XQGHUVWDQGLQJDQGGHYHORSLQJZLWKWKH2UDFOH:RUNIORZ%XVLQHVV(YHQW6\VWHP
DVZHOODVSURYLGLQJDIUDPHZRUNIRUGHYHORSPHQWVWDQGDUGV)RUVSHFLILFGHWDLOVRI
WKHFRPSRQHQWVRI2UDFOH:RUNIORZSOHDVHUHIHUWRWKH2UDFOH:RUNIORZ*XLGH
7KLVGRFXPHQWFRQWDLQVJHQHUDOJXLGHOLQHVDQGQDPLQJVWDQGDUGV\RXVKRXOG
IROORZZKHQXVLQJWKH%XVLQHVV(YHQW6\VWHP

ORACLE WORKFLOW BUSINESS EVENT SYSTEM BASICS

What is the Oracle Workflow Business Event System?


7KH%XVLQHVV(YHQW6\VWHPDOORZVDSSOLFDWLRQGHYHORSHUVWR
• 'HILQHLQWHUHVWLQJEXVLQHVVHYHQWV
• 5HJLVWHU]HURRUPRUHHYHQWVXEVFULSWLRQVWRWKHVHEXVLQHVVHYHQWV
• 5HIHUHQFHRUUDLVHWKHVHEXVLQHVVHYHQWVLQDSSOLFDWLRQFRGH
7KH%XVLQHVV(YHQW6\VWHPDOORZVFXVWRPHUVDQGFRQVXOWDQWVWR
• &XVWRPL]HWKHEHKDYLRURISDFNDJHGDSSOLFDWLRQVZLWKRXWKDYLQJWR
PRGLI\DQ\VWDQGDUGDSSOLFDWLRQFRGH
• 5RXWHPHVVDJHVWRDQGIURPEXVLQHVVWREXVLQHVVH[FKDQJHV
• 5RXWHPHVVDJHVWRDQGIURPOHJDF\DSSOLFDWLRQV

What is the Business Event System (BES) Framework?


,WLVWKHGHYHORSPHQWDSSURDFKDQGDVVRFLDWHG$3,VWKDWHQDEOHGHYHORSHUVWR
EXLOGFRQILJXUDEOH2UDFOHEDVHGDSSOLFDWLRQVXVLQJWKH2UDFOH:RUNIORZ%XVLQHVV
(YHQW6\VWHP
'HYHORSPHQWWHDPVXVLQJWKH%(6)UDPHZRUNZLOOSURYLGHFXVWRPHUVWKHDELOLW\
WRH[WHQGDQGFRQILJXUHEXVLQHVVORJLFDQGDV\QFKURQRXVPHVVDJLQJWRPHHW
EXVLQHVVUHTXLUHPHQWVZLWKRXWWKHQHHGWRPRGLI\VWDQGDUGDSSOLFDWLRQFRGH

Oracle Workflow Release 2.6.2 Business Event System and PL/SQL Development Guidelines Page 5
What is a business event?
$EXVLQHVVHYHQWLVVLPSO\DQ\HYHQWZKLFKPLJKWEHRILQWHUHVWWRFXVWRPHUVRU
GHYHORSPHQWWHDPV)RUH[DPSOHWKHFUHDWLRQRIDVDOHVRUGHUPLJKWEHDEXVLQHVV
HYHQW7KHXSGDWHRIDVDOHVRUGHUOLQHPLJKWEHDQRWKHUH[DPSOHRIDEXVLQHVV
HYHQW

What is an event subscription?


(YHQWVXEVFULSWLRQVWRDEXVLQHVVHYHQWW\SLFDOO\SHUIRUPDQ\RUDOORIWKH
IROORZLQJDFWLRQV
• ([HFXWLRQRIFXVWRP3/64/FRGH
• 6HQGLQJWKHEXVLQHVVHYHQWWRDSUHGHILQHGZRUNIORZSURFHVV
• $V\QFKURQRXVPHVVDJLQJXVLQJ2UDFOH$GYDQFHG4XHXLQJ
(YHQWVXEVFULSWLRQVFDQEHHQDEOHGRUGLVDEOHGXVLQJDXVHULQWHUIDFHWKHUHLVQR
UHTXLUHPHQWIRUDQ\FRGLQJFKDQJH

Why define business events?


(YHU\EXVLQHVVHYHQWGHILQHGDQGUHIHUHQFHGLQDQDSSOLFDWLRQUHSUHVHQWVDSRVVLEOH
H[WHQVLRQRUFXVWRPL]DWLRQSRLQWIRUFXVWRPHUVFRQVXOWDQWVDQGGHYHORSHUV7KH
PRUHEXVLQHVVHYHQWVUHIHUHQFHGLQDQDSSOLFDWLRQWKHJUHDWHUWKHDELOLW\IRU
FXVWRPHUVDQGFRQVXOWDQWVWRFXVWRPL]HDSSOLFDWLRQEHKDYLRUE\DGGLQJFXVWRP
ORJLFLQVWHDGRIFXVWRPL]LQJVWDQGDUGDSSOLFDWLRQFRGH
,QWKHSDVWFXVWRPHUVZRXOGFUHDWHGDWDEDVHWDEOHWULJJHUVWRSHUIRUPYHU\VSHFLILF
YDOLGDWLRQORJLF$QH[DPSOHRIWKLVZRXOGEHD¶EHIRUHURZLQVHUW·WULJJHURQWKH
6DOHV2UGHUOLQHKHDGHUWDEOHZKLFKGHWHFWHGLIFHUWDLQFRQGLWLRQVZHUHWUXH,IWKH
FRQGLWLRQZHUHWUXHDQDSSOLFDWLRQHUURUZRXOGEHUDLVHG
7KH%XVLQHVV(YHQW6\VWHPJLYHVSURGXFWWHDPVWKHDELOLW\WRGRFXPHQWDQG
GHILQHWKHDSSURSULDWHFXVWRPL]DWLRQSRLQWVIRUFXVWRPHUV3HUKDSVDIWHUWKH
>6$9(@EXWWRQLVSUHVVHGRQWKH6DOHV2UGHUVFUHHQWKH¶6DOHV2UGHU&UHDWHG·
HYHQWLVUDLVHG&XVWRPHUVFRXOGFUHDWHDVXEVFULSWLRQWRWKLVHYHQWZKLFKUXQV
WKHLUFXVWRPYDOLGDWLRQORJLFZKLFKWKH\FDQHQDEOHRUGLVDEOHDVUHTXLUHG

I already use Oracle Workflow 2.5. Do I have to make any code changes
for Oracle Workflow 2.6 Business Event System?
1R7KHH[LVWLQJ:RUNIORZ(QJLQH$3,VWRFUHDWHDQGVWDUWZRUNIORZSURFHVVHV
DUHVWLOOIXOO\VXSSRUWHG+RZHYHUZHVWURQJO\UHFRPPHQGWKDW\RXPDNHDQ
HIIRUWWRODXQFKWKHVHZRUNIORZSURFHVVHVXVLQJWKH%XVLQHVV(YHQW6\VWHP
)UDPHZRUNDV\RXZLOOSURYLGHDPRUHFRQVLVWHQWSURIHVVLRQDOFXVWRPL]DWLRQ
DSSURDFKIRU\RXUFXVWRPHUV

Oracle Workflow Release 2.6.2 Business Event System and PL/SQL Development Guidelines Page 6
We are considering adding some workflows to our product. Can we
launch the Workflows directly instead of using the BES Framework
APIs?
1R ZLWKWKHH[FHSWLRQRIIRUFHGV\QFKURQRXVZRUNIORZV 
<RXPXVWXVHWKH%XVLQHVV(YHQW6\VWHP5DLVH$3,DQGKDYHDQHQDEOHG
VXEVFULSWLRQZKLFKZLOOODXQFKWKHZRUNIORZSURFHVV:KHQ\RXUDLVHWKHHYHQW
\RXUFXVWRPHUVPD\DOVRZDQWWRDGGWKHLURZQVXEVFULSWLRQVWRWKLVHYHQW
,I\RXGLUHFWO\ODXQFKWKHZRUNIORZ\RXDUHQHHGOHVVO\IRUFLQJ\RXUFXVWRPHUVWR
PRGLI\\RXUVWDQGDUGZRUNIORZZKHQWKH\PD\QRWQHHGWRLI\RXKDGUDLVHGD
EXVLQHVVHYHQW

Oracle Workflow Release 2.6.2 Business Event System and PL/SQL Development Guidelines Page 7
THE EVENT MANAGER
7KH(YHQW0DQDJHUFRQWDLQVWKHUHJLVWU\RIV\VWHPVDJHQWVEXVLQHVVHYHQWVDQG
VXEVFULSWLRQVWREXVLQHVVHYHQWV

Defining Events

Internal Name

:KHQ\RXGHILQHDQHYHQWLQWKH(YHQW0DQDJHU\RXPXVWDVVLJQLWDXQLTXH
LQWHUQDOQDPHZKLFKLVFDVHVHQVLWLYH7KHIRUPDWIRUWKHVHLQWHUQDOQDPHVLVD
FRPSRXQGVWUXFWXUHRILGHQWLILHUVVHSDUDWHGE\SHULRGV  LVDVIROORZV
<company>.<productfamily>.<product>.<component>.<object>.<event>

7KLVIRUPDWDOORZV\RXWRRUJDQL]HWKHHYHQWV\RXGHILQHLQWRDFODVVLILFDWLRQ
KLHUDUFK\

Display Name

7KH'LVSOD\1DPHLVZKDWZLOOVKRZLQWKH(GLW(YHQWOLVW

Description

$QRSWLRQDOGHVFULSWLRQ

Status

'LVDEOHGLIWKHUHDUHQRVXEVFULSWLRQVVKLSSHGZLWKWKLVHYHQW
(QDEOHGLIVXEVFULSWLRQVDUHVKLSSHGZLWKWKHHYHQW

Generate Function

7KH*HQHUDWHIXQFWLRQLVDFDOOEDFN3/64/$3,ZKLFKFDQJHQHUDWHDQ;0/
GRFXPHQWIURPWKHHYHQWNH\DQGSDUDPHWHUOLVW
$Q\VXEVFULSWLRQVZKLFKUHTXLUHWKHPHVVDJHWREHJHQHUDWHGXVLQJWKH*HQHUDWH
IXQFWLRQVKRXOGEHGHIHUUHG

Owner Name (mandatory)

7KH2ZQHU1DPHVKRXOGEH\RXUSURGXFWQDPH

Owner Tag (mandatory)

7KH2ZQHU7DJVKRXOGEH\RXUOHWWHUSURGXFWFRGH

Defining Event Subscriptions

Subscriber: System

7KLVZLOOXVXDOO\EHWKHORFDOV\VWHPWKHV\VWHPRQZKLFKWKHVXEVFULSWLRQFRGHLV
WRUXQ

Oracle Workflow Release 2.6.2 Business Event System and PL/SQL Development Guidelines Page 8
Triggering Condition: Source Type

6HWWKHVRXUFHW\SHWR/RFDOLIWKHVXEVFULSWLRQDSSOLHVRQO\WRHYHQWVUDLVHGRQWKH
VXEVFULELQJV\VWHP
6HWWKHVRXUFHW\SHWR([WHUQDOLIWKHVXEVFULSWLRQDSSOLHVRQO\WRHYHQWVUHFHLYHG
E\DQLQERXQGDJHQWRQWKHVXEVFULELQJV\VWHP
6HWWKHVRXUFHW\SHWR(UURULIWKHVXEVFULSWLRQDSSOLHVRQO\WRHUURUHGHYHQWV
GHTXHXHGIURPWKH:)B(5525TXHXH

Triggering Condition: Event Filter

6HOHFWWKHHYHQWWKDWWKLVVXEVFULSWLRQLVIRU

Triggering Condition: Source Agent

/HDYHEODQN
<RXVKRXOGRQO\XVHWKLVILHOGLQH[FHSWLRQDOFDVHV,I\RXVSHFLI\DVRXUFHDJHQW
WKHQWKHVXEVFULSWLRQLVH[HFXWHGRQO\ZKHQWKHWULJJHULQJHYHQWLVUHFHLYHGIURP
WKDWDJHQW

Execution Control: Phase (mandatory)

(QWHUDSKDVHQXPEHUIRUWKHVXEVFULSWLRQWRVSHFLI\WKHRUGHULQZKLFK
VXEVFULSWLRQVWKDWDSSO\WRWKHVDPHHYHQWDUHH[HFXWHG
9DOLGYDOXHVDUHIRUVXEVFULSWLRQVZKLFKDUHWREHH[HFXWHGLPPHGLDWHO\DQG
DQGDERYHIRUVXEVFULSWLRQVZKLFKDUHWREHGHIHUUHG
%\GHIDXOWVHHGHGVXEVFULSWLRQVVKRXOGKDYHDSKDVHQXPEHURIRUKLJKHU
'HIHUULQJVXEVFULSWLRQSURFHVVLQJZLOOSUHYHQWSHUIRUPDQFHLVVXHVZLWKRQOLQH
XVHUVLI\RXKDYHFRVWO\VXEVFULSWLRQSURFHVVLQJ

Execution Control: Status

6HOHFW(QDEOHGRU'LVDEOHGDVWKHVXEVFULSWLRQVWDWXV,I\RXGLVDEOHDVXEVFULSWLRQ
LWVWLOOUHPDLQVLQWKH(YHQW6XEVFULSWLRQVOLVWIRUUHIHUHQFHEXWLWFDQQRORQJHUEH
DFWLYHO\XVHGWRUHVSRQGWRHYHQWV

Execution Control: Rule Data

.H\WKHVXEVFULSWLRQUHTXLUHVRQO\WKHHYHQWNH\
0HVVDJHWKHVXEVFULSWLRQUHTXLUHVWKHFRPSOHWHHYHQWGDWDWREHJHQHUDWHG,I
\RXVSHFLILHGD*HQHUDWHIXQFWLRQIRU\RXUEXVLQHVVHYHQW\RXVKRXOGFKRRVH
0HVVDJH
6XEVFULSWLRQVZKLFKKDYHWKH5XOH'DWDVHWWR0HVVDJHVKRXOGDOZD\VEHGHIHUUHG
SKDVHQXPEHUVHWWRRUJUHDWHU 'HIHUULQJVXEVFULSWLRQSURFHVVLQJZLOO
SUHYHQWSHUIRUPDQFHLVVXHVZLWKRQOLQHXVHUV

Oracle Workflow Release 2.6.2 Business Event System and PL/SQL Development Guidelines Page 9
Action: Rule Function (required)

,QPRVWFDVHV\RXVKRXOGDOZD\VXVHZIBUXOHGHIDXOWBUXOH7KLVUXOHIXQFWLRQZLOO
HQDEOH\RXWRODXQFKDZRUNIORZSURFHVVRUVHQGDEXVLQHVVHYHQWPHVVDJHWRDQ
DJHQW
,QVRPHFDVHV\RXPD\ZDQWWRZULWH\RXUVSHFLDOL]HGUXOHIXQFWLRQV
&XVWRPHUVPD\ZULWHFXVWRPUXOHIXQFWLRQVZKLFKPD\FRQWDLQYDOLGDWLRQORJLF
ZKLFKFDQEHVZLWFKHGRQRURIIE\HQDEOLQJRUGLVDEOLQJWKHVXEVFULSWLRQV

Action: Workflow Item Type and Workflow Process Name (optional)

(QWHU\RXU:RUNIORZ,WHP7\SHDQG:RUNIORZ3URFHVV1DPH$ZRUNIORZ
SURFHVVFDOOHGE\WKH%XVLQHVV(YHQW6\VWHPPXVWKDYHDVLWVILUVWDFWLYLW\D
5HFHLYHDFWLYLW\QRWD6WDUWDFWLYLW\
2UDFOH:RUNIORZFRQWUROVWKHH[HFXWLRQRIDSUHGHILQHGVHULHVRIDFWLYLWLHV7KH
QHHGIRUVRSKLVWLFDWHGEUDQFKLQJORJLFPRGHOLQJFRQVWUXFWVDQGWKHDELOLW\WR
LQFOXGHKXPDQUHVSRQVHVWKURXJKQRWLILFDWLRQVPDNHVLWDVXLWDEOHFKRLFHIRU
PRGHOLQJ\RXUEXVLQHVVSURFHVVDVDZRUNIORZSURFHVV

Action: Out Agent and To Agent (optional)

)RULQWHJUDWLRQ\RXUFXVWRPHUFRXOGHQWHUWKLVGDWDDVSDUWRIWKHFRQILJXUDWLRQRI
V\VWHPV

Action: Priority (optional)

7KLVZLOODIIHFWWKHGHTXHXHRUGHURIPHVVDJHV/HDYHDV1RUPDO)RU'HIHUUHG
6XEVFULSWLRQVWKHSULRULW\LVXVHGWRFRQWUROWKHGHTXHXHRUGHULQJ

Action: Parameters (optional)

7KH3DUDPHWHUVFROXPQFDQEHXVHGWRDGGVSDFHGHOLPLWHGQDPH YDOXHSDLUV
ZKLFKFDQEHDFFHVVHGE\DUXOHIXQFWLRQ7KHVHQDPH YDOXHSDLUVFRXOGEHXVHG
WRFRQWUROWKHEHKDYLRURIWKHUXOHIXQFWLRQDQGWKXVWKHVXEVFULSWLRQ

Documentation: Owner Name (mandatory)

7KH2ZQHU1DPHVKRXOGEH\RXUSURGXFWQDPH

Documentation: Owner Tag (mandatory)

7KH2ZQHU7DJVKRXOGEH\RXUOHWWHUSURGXFWFRGH

Documentation: Description

$Q\XVHIXOLQIRUPDWLRQ\RXPLJKWZDQWWRGRFXPHQWDERXWWKHVXEVFULSWLRQ


Oracle Workflow Release 2.6.2 Business Event System and PL/SQL Development Guidelines Page 10
BUILDING WORKFLOW PROCESSES USING BUSINESS EVENTS

Receiving Events in a Workflow Process


%XVLQHVVHYHQWVFDQEHXVHGWRVWDUWRUFRQWLQXHDZRUNIORZSURFHVV
:RUNIORZSURFHVVHVVWDUWHGRUFRQWLQXHGE\WKH%XVLQHVV(YHQW6\VWHPUHTXLUH
WKDWWKHILUVWDFWLYLW\0867EHD5HFHLYHHYHQWDFWLYLW\5HFHLYHHYHQWD$FWLYLWLHV
XVHGWRVWDUWDZRUNIORZPXVWEHODEHOHGDVWKH6WDUWQRGH
7KH5HFHLYHHYHQWDFWLYLW\FDQFDSWXUHWKHHYHQWQDPHHYHQWNH\DQGHYHQW
PHVVDJHLQLWHPDWWULEXWHVVSHFLILHGLQWKH(YHQW'HWDLOVSURSHUW\SDJHZKLFKFDQ
WKHQEHDFFHVVHGIRUWKHGXUDWLRQRIWKHZRUNIORZSURFHVV
9HUVLRQVRI2UDFOH:RUNIORZSULRUWR2UDFOH:RUNIORZZHUHVWDUWHGE\WKH
:RUNIORZ(QJLQH6WDUW3URFHVV$3,7KLV$3,UHTXLUHGWKDWWKHILUVWDFWLYLW\RID
SURFHVVEHODEHOHGDVWKH6WDUWQRGH:KLOHWKLVILUVWDFWLYLW\FRXOGEHDQ\DFWLYLW\
W\SLFDOO\LWZDVWKH6WDUWIXQFWLRQIURPWKH6WDQGDUGLWHPW\SH


$VLPSOHZRUNIORZSURFHVVWKDWFDQEHODXQFKHGE\WKH%XVLQHVV(YHQW
6\VWHP



7KH(YHQW'HWDLOVSURSHUW\SDJHRIWKH5HFHLYH(YHQWDFWLYLW\7KH5HFHLYH
(YHQWFDQRSWLRQDOO\FDSWXUHWKHHYHQWQDPHHYHQWNH\DQGHYHQWPHVVDJH
DQGVWRUHWKHVHLQWKHVSHFLILHGLWHPDWWULEXWHV

Oracle Workflow Release 2.6.2 Business Event System and PL/SQL Development Guidelines Page 11
Setting Item Attributes
$EXVLQHVVHYHQWPHVVDJHLVEXLOWRQWKH:)B(9(17B7DEVWUDFWGDWDW\SH7KH
DEVWUDFWGDWDW\SHFRQWDLQVPHVVDJHKHDGHUSURSHUWLHV LQFOXGLQJDQDUUD\
:)B3$5$0(7(5B/,67B7ZKLFKFDQFRQWDLQXSWRQDPHYDOXHSDLUV DQG
DSD\ORDG
SQL> desc wf_event_t

Name Null? Type

----------------------------------------- -------- ----------------------------

PRIORITY NUMBER

SEND_DATE DATE

RECEIVE_DATE DATE

CORRELATION_ID VARCHAR2(240)

PARAMETER_LIST WF_PARAMETER_LIST_T

EVENT_NAME VARCHAR2(240)

EVENT_KEY VARCHAR2(240)

EVENT_DATA CLOB

FROM_AGENT WF_AGENT_T

TO_AGENT WF_AGENT_T

ERROR_SUBSCRIPTION RAW(16)

ERROR_MESSAGE VARCHAR2(4000)

ERROR_STACK VARCHAR2(4000)


:KHQDEXVLQHVVHYHQWPHVVDJHVWDUWVRUFRQWLQXHVDZRUNIORZSURFHVVWKHHQWLUH
FRQWHQWVRIWKHYDU\LQJDUUD\DUHFUHDWHGDVLWHPDWWULEXWHV,IWKHLWHPDWWULEXWH
DOUHDG\H[LVWVWKHQWKH:RUNIORZ(QJLQHZLOOVHWWKHYDOXHRIWKHLWHPDWWULEXWH,I
WKHLWHPDWWULEXWHGRHVQRWH[LVWWKHQWKH:RUNIORZ(QJLQHZLOOFUHDWHWKHLWHP
DWWULEXWHDQGWKHQVHWWKHYDOXH

Raising Events from Workflow


,QVWHDGRIIRUFLQJ\RXUFXVWRPHUVWRFRQILJXUHDQGFXVWRPL]HWKHZRUNIORZV\RX
VKLSZLWK\RXUSURGXFW\RXFRXOGMXVWUDLVHDEXVLQHVVHYHQWIURPDZRUNIORZ
SURFHVV&XVWRPHUVFRXOGWKHQVXEVFULEHWRWKDWEXVLQHVVHYHQWDQGKDYHWKHLU
RZQFRPSOHWHO\FXVWRPZRUNIORZSURFHVVH[HFXWHG:KHQ\RXUDLVHDEXVLQHVV
HYHQWIURPDZRUNIORZSURFHVV\RXFDQRSWLRQDOO\SDVVSDUDPHWHUVWRWKH%XVLQHVV
(YHQW6\VWHP7KHVHSDUDPHWHUVZLOOJHWFUHDWHGDVLWHPDWWULEXWHVE\DQ\
ZRUNIORZSURFHVVHVWKDWDUHVXEVFULEHGWRWKDWEXVLQHVVHYHQW
<RXVKRXOGSDVVWKHPLQLPXPQXPEHURISDUDPHWHUVSRVVLEOHVXFKWKDWDQ\
VXEVFULSWLRQVWRWKHHYHQWZLOOKDYHHQRXJKLQIRUPDWLRQWRGHULYHRWKHUUHTXLUHG
YDOXHV
:KHQ\RXUDLVHDEXVLQHVVHYHQWIURPDZRUNIORZSURFHVV\RXPXVW
• 'HILQHWKHEXVLQHVVHYHQWLQWKH(YHQW0DQDJHU

Oracle Workflow Release 2.6.2 Business Event System and PL/SQL Development Guidelines Page 12
• &UHDWHD5DLVHHYHQWDFWLYLW\LQ\RXUZRUNIORZSURFHVV
• 2SWLRQDOO\GHILQHDVPDQ\HYHQWDFWLYLW\DWWULEXWHVDVUHTXLUHG
• 'UDJWKH5DLVHHYHQWDFWLYLW\RQWRDZRUNIORZSURFHVV
• &RQILJXUHWKHHYHQWDFWLYLW\DWWULEXWHVWREHSRSXODWHGE\YDOXHVIURP
FRQVWDQWVRULWHPDWWULEXWHV



([DPSOHRID5DLVH(YHQW$FWLYLW\ZLWK´3DUDPHWHUµDFWLYLW\DWWULEXWHV
7KHVHDFWLYLW\DWWULEXWHVFDQWKHQEHVHWLQDZRUNIORZSURFHVVDVUHTXLUHG

Sending Business Events from a Workflow Process


'XULQJDZRUNIORZSURFHVVDEXVLQHVVHYHQWPHVVDJHFDQEHGLUHFWO\VHQWWRD
%XVLQHVV(YHQW6\VWHPDJHQW 2UDFOH$GYDQFHG4XHXH ZLWKRXWJRLQJWKURXJK
DQ\VXEVFULSWLRQSURFHVVLQJ7KLVLVHTXLYDOHQWWRDKDUGZLUHGVHQGRIDPHVVDJH
WKRXJKDWWKHWLPHRIGHILQLQJWKHHYHQWVXEVFULSWLRQ\RXPD\QRWKDYHNQRZQ
ZKHUHWKHPHVVDJHZDVWREHVHQW
7KHVHQGLQJRIDEXVLQHVVHYHQWPHVVDJHDOVRHQDEOHV\RXWRRSWLRQDOO\RYHUZULWH
WKHHYHQWQDPHHYHQWNH\2XW$JHQWDQG7R$JHQW

Oracle Workflow Release 2.6.2 Business Event System and PL/SQL Development Guidelines Page 13

2SWLRQDORYHUULGHVDYDLODEOHIURPWKH6HQGHYHQWDFWLYLW\(YHQW'HWDLOV
SURSHUW\SDJH
7KH2UDFOH:RUNIORZ6WDQGDUGLWHPW\SHKDVQXPEHURIIXQFWLRQDFWLYLWLHVZKLFK
FDQEHXVHGDFFHVVHYHQWKHDGHUSURSHUWLHVDQGWKH;0/HYHQWPHVVDJHSD\ORDG
7KHVHDUH
• &RPSDUH(YHQW3URSHUW\5RXWHRQKHDGHUSURSHUWLHV
• *HW(YHQW3URSHUW\*HWHYHQWKHDGHUSURSHUW\DQGVHWLQWRDQLWHP
DWWULEXWH
• 6HW(YHQW3URSHUW\6HWHLWKHUDFRQVWDQWRUDQLWHPDWWULEXWHLQWRDQHYHQW
KHDGHUSURSHUW\
• ;0/&RPSDUH7DJ9DOXH 'DWH1XPEHU7H[W 5RXWHRQFRQWHQWVRIDQ
;0/WDJVHWZLWKLQWKHHYHQWPHVVDJHSD\ORDG VWDQGDORQH:RUNIORZ
RQO\ 
• ;0/*HW7DJ9DOXH*HWFRQWHQWVRIDQ;0/WDJVHWZLWKLQDQHYHQW
PHVVDJHSD\ORDGDQGVHWLQWRDQLWHPDWWULEXWH VWDQGDORQH:RUNIORZ
RQO\ 
• ;0/7UDQVIRUP$SSO\DQ;0/VW\OHVKHHWWRDQHYHQWPHVVDJHSD\ORDG
VWDQGDORQH:RUNIORZRQO\ 

Oracle Workflow Release 2.6.2 Business Event System and PL/SQL Development Guidelines Page 14
RAISING BUSINESS EVENTS FROM PL/SQL CODE

Where should I put calls to raise events?


<RXZRXOGSXWDFDOOLQWRUDLVHHYHQWVDWH[DFWO\WKHVDPHSRLQWV\RXSXWFDOOVLQWR
ODXQFKZRUNIORZV,QDGGLWLRQ\RXVKRXOGFRQVLGHUFDOOLQJ5DLVHMXVWEHIRUH\RX
LVVXHFRPPLWVWDWHPHQWVRUZKHQVRPHWKLQJSRWHQWLDOO\LQWHUHVWLQJKDVRFFXUUHG

“Testing” Business Events

(YHQWVXEVFULSWLRQVPD\UHTXLUHDPHVVDJH
<RXFDQLQGLFDWHWKLVZKHQ\RXDUHGHILQLQJVXEVFULSWLRQVXVLQJWKH5XOH'DWD
ILHOG,IWKH5XOH'DWDLV¶.H\·WKHVXEVFULSWLRQRQO\UHTXLUHVKHDGHUSURSHUWLHVIRU
SURFHVVLQJ,IWKH5XOH'DWDLV¶0HVVDJH·WKHVXEVFULSWLRQUHTXLUHVKHDGHU
SURSHUWLHVDQGDPHVVDJHSD\ORDGIRUSURFHVVLQJ7KHPHVVDJHSD\ORDGLVW\SLFDOO\
DQ;0/GRFXPHQW
,I\RXZLOOKDYHDFFHVVWRWKH;0/GRFXPHQW RUDQ$3,ZKLFKFDQJHQHUDWHWKH
;0/GRFXPHQW WKDWWKHEXVLQHVVHYHQWLVUHODWHGWR\RXVKRXOGILUVWWHVWZKHWKHU
WKHUHDUHDQ\VXEVFULSWLRQVWRWKDWEXVLQHVVHYHQWZKLFKZLOOUHTXLUHWKH;0/
GRFXPHQW7KLVLVGRQHE\XVLQJWKHZIBHYHQWWHVW$3,ZKLFKZLOOUHWXUQ
0(66$*(LIWKHUHLVDVXEVFULSWLRQZKLFKUHTXLUHVWKH;0/GRFXPHQWRU.(<
LIQRQHRIWKHVXEVFULSWLRQVUHTXLUHWKH;0/GRFXPHQW7KHWHVW$3,PD\DOVR
UHWXUQ121(EXW\RXPXVWQRWEUDQFK\RXUFRGHIRUWKLVUHVXOWWRGHWHUPLQHLI
\RXVKRXOGUDLVHWKHHYHQWRUQRWOHWWKH%XVLQHVV(YHQW'LVSDWFKHUORRNDIWHUWKLV
SURFHVVLQJ
,I\RXGRQRWKDYHDFFHVVWRWKH;0/'RFXPHQW\RXGRQRWQHHGWRGRDQ\WKLQJ
²WKH%XVLQHVV(YHQW6\VWHPFRGHZLOOGHWHUPLQHZKHWKHURUQRWDPHVVDJHLV
UHTXLUHGDQGJHQHUDWHWKHPHVVDJHLIUHTXLUHG

Sample PL/SQL Code

7RUDLVHDQHYHQWIURP3/64/FRGHXVHWKHIROORZLQJWHPSODWH
declare

/*
** Optional - if complete event data is available, declare these.
** l_xmldocument varchar2(32000);
** l_eventdata clob;
** l_message varchar2(10);
*/

l_parameter_list wf_parameter_list_t := wf_parameter_list_t();

begin

Oracle Workflow Release 2.6.2 Business Event System and PL/SQL Development Guidelines Page 15
/*
** We know that we are going to raise an event, so
** we will set some parameters now, these will become
** item attributes in any workflow processes that called
** by the business event system due to this business event
** Up to 100 name/value pairs. The fewer the parameters the
** better performance will be.
*/

wf_event.AddParameterToList(p_name=>‘ORG_ID’,
p_value=>’<ORG_ID Value>’,
p_parameterlist=>l_parameter_list);

wf_event.AddParameterToList(p_name=>‘<Parameter Name>’,
p_value=>’<Parameter Value>’,
p_parameterlist=>l_parameter_list);

wf_event.AddParameterToList(p_name=>‘<Parameter Name>’,
p_value=>’<Parameter Value>’,
p_parameterlist=>l_parameter_list);

/*
** ***** OPTIONAL *****
** In most cases, you do not need to do this.
**
** If the complete event data is easily available, we can
** optionally test if any subscriptions to this event
** require it (rule data = Message).
** From PL/SQL, you probably won’t need to do this
**
** l_message := wf_event.test('<EVENT_NAME>');
**
** If we do require a message, and we have the message now,
** set it; else we can just rely on the Event Generate
** Function callback code. Then Raise the Event with the
** required parameters. From PL/SQL, you probably won’t need
** to do this.
**
** if l_message = 'MESSAGE' then
**
** if l_xmldocument is not null then
** dbms_lob.createtemporary(l_eventdata, FALSE, DBMS_LOB.CALL);
** dbms_lob.write(l_eventdata, length(l_xmldocument), 1,

Oracle Workflow Release 2.6.2 Business Event System and PL/SQL Development Guidelines Page 16
** l_xmldocument);
** -- Raise the Event with the message
** wf_event.raise( p_event_name => ’<EVENT_NAME>’,
** p_event_key => ’<EVENT_KEY>’,
** p_event_data => l_eventdata,
** p_parameters => l_parameter_list);
**
** else
**
** -- Raise the Event without the message
** -- The Generate Function Callback will create the XML Document
** -- Also possible that an API might be called from here
** -- to generate the XML document
** wf_event.raise( p_event_name => ’<EVENT_NAME>’,
** p_event_key => ’<EVENT_KEY>’,
** p_parameters => l_parameter_list);
**
** end if;
**
** elsif
**
** l_message = ’KEY’ then
** -- Raise the Event
** wf_event.raise( p_event_name => <EVENT_NAME>,
** p_event_key => <EVENT_KEY>,
** p_parameters => l_parameter_list);
**
** end if;
*/

/*
** Raise the event with no XML document, if an XML
** document is required to be generated, the Generate Function
** will automatically be run
*/

wf_event.raise( p_event_name => <EVENT_NAME>,


p_event_key => <EVENT_KEY>,
p_parameters => l_parameter_list);

l_parameter_list.DELETE;

Oracle Workflow Release 2.6.2 Business Event System and PL/SQL Development Guidelines Page 17
/*
** Up to your own code to commit the transaction
*/
commit;

/*
** Up to your code to handle any major exceptions
** The Business Event System is unlikely to return any errors
** As long as the Raise can be submitted, any errors will be placed
** on the WF_ERROR queue and a notification sent to SYSADMIN
*/

exception
when others then
<YOUR ERROR CODE>;
end;

Oracle Workflow Release 2.6.2 Business Event System and PL/SQL Development Guidelines Page 18
WRITING EVENT GENERATE FUNCTIONS
:KHQ\RXGHILQHDQHYHQWLQWKH%XVLQHVV(YHQW6\VWHP\RXFDQDVVLJQD
*HQHUDWHIXQFWLRQWKDWFDQSURGXFHWKHFRPSOHWHHYHQWGDWD W\SLFDOO\DQ;0/
GRFXPHQW IURPWKHHYHQWQDPHHYHQWNH\DQGSDUDPHWHUOLVW
7KH(YHQW0DQDJHUFDOOVWKH*HQHUDWHIXQFWLRQZKHQDQDSSOLFDWLRQUDLVHVWKH
HYHQWZLWKRXWSURYLGLQJHYHQWGDWDDQGLWLVSURFHVVLQJWKHILUVWVXEVFULSWLRQWRWKH
HYHQWZKLFKUHTXLUHVWKHHYHQWGDWD7KH*HQHUDWHIXQFWLRQUHWXUQVWKHHYHQWGDWD
LQFOREIRUPDW
:RUNIORZFRPHVZLWKRQH*HQHUDWHIXQFWLRQ
• :)B(9(17B)81&7,216B3.**(1(5$7(²JHQHUDWHV;0/
GRFXPHQWVZKLFKUHSUHVHQW%XVLQHVV(YHQW6\VWHPPHWDGDWD
7KH3/64/IXQFWLRQWKDWJHQHUDWHVWKHHYHQWGDWDPXVWKDYHWKHIROORZLQJ
VWDQGDUG$3,
function <function_name> (p_event_name in varchar2,
p_event_key in varchar2
p_parameter_list in wf_parameter_list_t
default null)
return clob;

7KHDUJXPHQWVIRUWKHIXQFWLRQDUHDVIROORZV
• SBHYHQWBQDPH7KHLQWHUQDOQDPHRIWKHHYHQW
• SBHYHQWBNH\$VWULQJJHQHUDWHGZKHQWKHHYHQWRFFXUVZLWKLQDSURJUDP
RUDSSOLFDWLRQ7KHHYHQWNH\XQLTXHO\LGHQWLILHVDVSHFLILFLQVWDQFHRIWKH
HYHQW
• SBSDUDPHWHUBOLVW$QRSWLRQDOOLVWRIDGGLWLRQDOSDUDPHWHUQDPHDQGYDOXH
SDLUVIRUWKHHYHQW

Oracle Workflow Release 2.6.2 Business Event System and PL/SQL Development Guidelines Page 19
WRITING EVENT SUBSCRIPTION RULE FUNCTIONS
:KHQ\RXGHILQHDQHYHQWVXEVFULSWLRQ\RXPXVWGHILQHD3/64/IXQFWLRQFDOOHG
DUXOHIXQFWLRQZKLFKLVH[HFXWHGE\WKH'LVSDWFKHU7KLVUXOHIXQFWLRQFRQWUROV
WKHEHKDYLRURIWKHHYHQWVXEVFULSWLRQLWFDOOVWRWKH:RUNIORZ(QJLQHWRODXQFKD
ZRUNIORZSURFHVVDQGFDOOVWRWKHVHQG$3,WRHQTXHXHPHVVDJHV
:RUNIORZFRPHVZLWKWZRPDLQUXOHIXQFWLRQV
• :)B58/('()$8/7B58/(²WKLVLVWKHUXOHIXQFWLRQ\RXZRXOG
XVHIRU\RXUHYHQWVXEVFULSWLRQV,WLQFOXGHVFDOOVWRWKH:RUNIORZ(QJLQH
DQGRUVHQG$3,
• :)B58/((5525B58/(²WKLVLVWKHUXOHIXQFWLRQ\RXVKRXOGXVH
IRUDQ\VXEVFULSWLRQVZLWKDVRXUFHW\SHRI¶(5525·
,I\RXZLVKWRZULWH\RXURZQUXOHIXQFWLRQIROORZWKLVSURJUDPPDWLFWHPSODWH
function <function_name> (p_subscription_guid in raw,
p_event in out WF_EVENT_T) return varchar2 is
<local declarations>
begin
<your executable statements>

<optional code for WARNING>


WF_CORE.CONTEXT(’<package name>’, ’<function name>’,
p_event.getEventName( ), p_subscription_guid);
WF_EVENT.setErrorInfo(p_event, ’WARNING’);
return ’WARNING’;

<your executable statements>

return ’SUCCESS’;

exception
when others then
WF_CORE.CONTEXT(’<package name>’, ’<function name>’,
p_event.getEventName( ), p_subscription_guid);
WF_EVENT.setErrorInfo(p_event, ’ERROR’);
return ’ERROR’;
end;

&XVWRPUXOHIXQFWLRQVDUHPHDQWIRUFXVWRPHUVFRQVXOWDQWVDQGSDUWQHUVWR
FRQILJXUHWKHEHKDYLRURIWKHDSSOLFDWLRQSURGXFW

Oracle Workflow Release 2.6.2 Business Event System and PL/SQL Development Guidelines Page 20
DEFERRED PROCESSING
7KH2UDFOH:RUNIORZ%XVLQHVV(YHQW6\VWHPVXSSRUWV
• 'HIHUUHGVXEVFULSWLRQV²WKLVLVZKDW\RXVKRXOGXVHLQPRVWFDVHVZKHQ
\RXGHILQHVXEVFULSWLRQV
• 'HIHUUHGGLVSDWFKLQJRIHYHQWV
• 'HIHUULQJRIZRUNIORZV
'HIHUUHGHYHQWVDQGVXEVFULSWLRQVDUHSODFHGRQWKH:)B'()(55('DJHQW
$OO'HIHUUHG(YHQWVDQG6XEVFULSWLRQVDUHSURFHVVHGZKHQWKH:RUNIORZ
$JHQW/LVWHQHULVVXEPLWWHGWRUXQRQWKH:)B'()(55('DJHQW

Deferred Subscriptions
:KHQDEXVLQHVVHYHQWLVGLVSDWFKHGV\QFKURQRXVO\DOOVXEVFULSWLRQVZLWKDSKDVH
RIWRZLOOEHSURFHVVHG$Q\VXEVFULSWLRQVZLWKDSKDVHDERYHZLOOEH
GHIHUUHG7KLVLVFRQILJXUDEOHZLWKRXWFKDQJLQJFRGH²WKHVXEVFULSWLRQSKDVHFDQ
EHFKDQJHVZLWKRXWDQ\FXVWRPL]DWLRQ

Deferred Dispatching of Events


8QGHUYHU\H[WUHPHFLUFXPVWDQFHVZKHQ\RXUDLVHDEXVLQHVVHYHQW\RXUHTXLUH
WKDWWKHGLVSDWFKLQJRIWKHHYHQWWREHDV\QFKURQRXV7KLVPHWKRGLVJHQHUDOO\QRW
UHFRPPHQGHG
7KLVZRXOGUHTXLUH\RXWRKDUGFRGHWKHIROORZLQJOLQHRIFRGHEHIRUH\RXUDLVHDQ
HYHQW
Wf_event.SetDispatchMode(‘ASYNC’);


$Q\EXVLQHVVHYHQWVUDLVHGLQWKDWVHVVLRQZLOOEHGHIHUUHG7RUHVHWWKHVHVVLRQVR
HYHQWVFDQEHGLVSDWFKHGV\QFKURQRXVO\LQVHUWWKHIROORZLQJOLQHRIFRGH
Wf_event.SetDispatchMode(‘SYNC’);

Deferring of Workflows
:RUNIORZSURFHVVLQJFDQEHGHIHUUHGLQDQXPEHURIZD\V6HHWKH2UDFOH:RUNIORZ
*XLGH7\SLFDOO\\RXFDQGHIHUDZRUNIORZSURFHVVE\VHWWLQJWKHFRVWRIDQ
DFWLYLW\WREHJUHDWHUWKDQ


Oracle Workflow Release 2.6.2 Business Event System and PL/SQL Development Guidelines Page 21
EXTENDING BUSINESS EVENT SYSTEM ERROR HANDLING
$Q\HUURUVWKDWRFFXUGXULQJDZRUNIORZSURFHVVDUHFDSWXUHGE\WKH:RUNIORZ
(QJLQHDQGHLWKHUWKHGHIDXOWHUURUSURFHVVLVODXQFKHGRUDXVHUGHILQHGHUURU
SURFHVVLVODXQFKHG(UURUKDQGOLQJLQWKH%XVLQHVV(YHQW6\VWHPIROORZVWKHVDPH
PRGHO
%\GHIDXOWLIDQHUURURUZDUQLQJLVHQFRXQWHUHGGXULQJVXEVFULSWLRQSURFHVVLQJD
PHVVDJHLVSXWRQWKH:)B(5525DJHQW,IWKH5XOH)XQFWLRQUHWXUQV
:$51,1*VXEVFULSWLRQSURFHVVLQJFRQWLQXHV,IWKH5XOH)XQFWLRQUHWXUQV
(5525VXEVFULSWLRQSURFHVVLQJIRUWKLVHYHQWGRHVQRWFRQWLQXHDQGDQ\
VXEVFULSWLRQVZKLFKZHUHDOUHDG\UXQIRUWKDWHYHQWDUHUROOHGEDFN
3HULRGLFDOO\DQDJHQWOLVWHQHUUXQVRQ:)B(5525DQGDIWHUGHTXHXLQJWKH
HUURUHGPHVVDJHWKH'LVSDWFKHUORRNVIRUHQDEOHGVXEVFULSWLRQVWRWKLVHYHQWZLWK
D6RXUFH7\SHRI(5525,IWKHUHDUHQRHQDEOHGVXEVFULSWLRQVIRUWKLVHYHQW
ZLWKD6RXUFH7\SHRI(5525WKHQWKHVXEVFULSWLRQWRWKH
RUDFOHDSSVZIHYHQWXQH[SHFWHGHYHQWZLWKD6RXUFH7\SHRI(5525LVUXQ
7KHGHIDXOWHUURUSURFHVVIRU%XVLQHVV(YHQW6\VWHPHUURUVLVLQWKH:)(5525
LWHPW\SHWKH'()$8/7B(9(17B(5525SURFHVV,I\RXZLVKWREXLOG
FXVWRPHUURUSURFHVVHVIRUDEXVLQHVVHYHQW\RXZLOOQHHGWRFUHDWH\RXURZQLWHP
W\SH

Oracle Workflow Release 2.6.2 Business Event System and PL/SQL Development Guidelines Page 22
USEFUL DEBUGGING TIPS
7KH:RUNIORZ%XVLQHVV(YHQW6\VWHPLQFOXGHVDGHEXJIODJZKLFK\RXFDQVZLWFK
RQWRRXWSXWXVHIXOORJPHVVDJHVWRDVVLVWGHEXJJLQJRI\RXUFRGH
<RXVKRXOGQHYHUVHWWKHGHEXJIODJLQ\RXURZQSURGXFWLRQFRGHRUVKLSFRGHLW
VKRXOGRQO\EHXVHGGXULQJWHVWLQJDQGVHWLQD64/VFULSW:RUNIORZVKLSVZLWK
DQDGPLQVFULSWZIDGPLQVTOZIDJWOVWVTOZKLFKLVXVHGWRUXQWKHDJHQWOLVWHQHUV
LQGHEXJPRGH
7RVHWGHEXJJLQJRQ\RXFDQH[HFXWHWKHIROORZLQJ64/
set serveroutput on size 100000
begin
dbms_output.put_line(’=============================================’);
wf_log_pkg.wf_debug_flag := TRUE;
end;
/

7RVHWWKHGHEXJJLQJRII
begin
wf_log_pkg.wf_debug_flag := FALSE;
end;
/


Sample Debug Output


:KHQUDLVLQJWKHRUDFOHDSSVZIHYHQWZIVHQGHYHQWIURP64/ 3OXVZHJHWWKH
IROORZLQJGHEXJPHVVDJHV
Level:6 Module:dispatch Time:21-06-2001 16:03:35
>>> Message: dispatching oracle.apps.wf.event.wf.send
Level:6 Module:dispatch Time:21-06-2001 16:03:35
>>> Message: found a LOCAL subscription
Level:6 Module:workflow_protocol Time:21-06-2001 16:03:35
>>> Message: calling wf_engine.event()
Priority: 50
SendDate: 06-21-2001 04:06:35
ReceiveDate:
CorrelationID:
Begin Parameter list
Name: ACKREQ Value: Y
Name: SNDACK Value: N
Name: SUB_GUID Value: 0CDF0769828244E0852543AB8E15142B
End Parameter list
EventName: oracle.apps.wf.event.wf.send

Oracle Workflow Release 2.6.2 Business Event System and PL/SQL Development Guidelines Page 23
EventKey: 1602
EventData:
Level:6 Module:dispatch Time:21-06-2001 16:03:36
>>> Message: ran wf_rule.workflow_protocol and returned SUCCESS

7KHVHGHEXJPHVVDJHVVKRZ
• 7KHHYHQWEHLQJGLVSDWFKHG
• ,IDQ\PDWFKLQJVXEVFULSWLRQVZHUHIRXQG
• :KDWUXOHIXQFWLRQZDVH[HFXWHGZKDWDFWLRQZDVWDNHQ
• 7KHRXWSXWRIWKHHYHQWPHVVDJHDIWHUWKHVXEVFULSWLRQZDVH[HFXWHG
• 7KHUHWXUQFRGHRIWKHUXOHIXQFWLRQ

CONCLUSION
)ROORZLQJWKHVHGHYHORSPHQWJXLGHOLQHVZLOOKHOS\RXEXLOGSRZHUIXODSSOLFDWLRQV
XVLQJWKH2UDFOH:RUNIORZ%XVLQHVV(YHQW6\VWHPDQG3/64/


Oracle Workflow Release 2.6.2 Business Event System and PL/SQL Development Guidelines Page 24


Oracle Workflow Release 2.6.2 Business Event System and PL/SQL Development Guidelines Page 25
Oracle Workflow Release 2.6.2 Business Event System and PL/SQL Development Guidelines
October 2001
Author: Mark Craig
Contributing Authors: Kevin Hudson, Clara Jaeckel, Janet Lee, Donna Ng, Debbie Quezadaz

Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065
U.S.A.

Worldwide Inquiries:
Phone: +1.650.506.7000
Fax: +1.650.506.7200
www.oracle.com

Oracle is a registered trademark of Oracle Corporation. Various


product and service names referenced herein may be trademarks
of Oracle Corporation. All other product and service names
mentioned may be trademarks of their respective owners.

Copyright © 2001 Oracle Corporation


All rights reserved.

You might also like