Upload
mckenna-coppersmith
View
215
Download
1
Embed Size (px)
Citation preview
Business Process Modelling-9.2/2013 -
Marcello La Rosa
Queensland University of Technology
Brisbane, 19 September 2013
© INB/INN320 9.2/2011 – 19 September 2013
Quick Repeat from Week 8
• What is a process event?
• What is the difference between a message and a timer event?
• How to interrupt an activity?
© INB/INN320 9.2/2011 – 19 September 2013
Event-based decision
• With the XOR-split gateway, a branch is chosen based on conditions that evaluate over available data
The choice can be made immediately after the token arrives from the incoming flow
• Sometimes, the choice must be delayed until an event happens
The choice is based on a race among events• This is why BPMN distinguishes data-driven and event-
driven XOR-splits
data-driven XOR-split event-driven XOR split3
© INB/INN320 9.2/2011 – 19 September 2013
Example: event-based decision
Restaurants submit orders to suppliers to replenish their food stocks every Thursday. The process for completing an order starts when a restaurant receives either a “PO Response” or an error message. However it may also happen that no response is received at all. If no response is received by Friday afternoon or if an error message is received, the purchasing officer should be notified. Otherwise, the PO Response is processed normally.
4
© INB/INN320 9.2/2011 – 19 September 2013
A possible solution
Notify Purchasing
Officer
PO ResponseReceived
Error MessageReceived
Fridayafternoon
Process PO Response
From“Order
submission”Ordering
failed
Orderingcompleted
5
© INB/INN320 9.2/2011 – 19 September 2013
Quiz: find the bugs
Send reminder
Send Questionnaire
Filled Questionnaire
Received
After 5 daysnot Intermediate Timer Event
6
© INB/INN320 9.2/2011 – 19 September 2013
Solution: event-based decision
Send reminder
Send Questionnaire
Filled Questionnaire
Received
After 5 days
7
© INB/INN320 9.2/2011 – 19 September 2013
Remember the quiz from slide 23 of Week 8?P
oo
l 1P
oo
l 2
C
Dc1
ENot c1
c2
F
A B
Not c2
Message zMessage yMessage x
Po
ol 1
Po
ol 2
C
Dc1
ENot c1
c2 F
A
Message x
Not c2
B
Message y Message z
8
© INB/INN320 9.2/2011 – 19 September 2013
Interlude: multiple start events
The first such event that occurs, will trigger an instance of the process.
Notify Purchasing
Officer
PO ResponseReceived
Error MessageReceived
Fridayafternoon
Process PO Response
9
© INB/INN320 9.2/2011 – 19 September 2013
What is this process doing?
Request Proof of Delivery
(POD)good not delivered
Verify Goods Delivery
5 working days
good delivered
POD received
From “Process Invoice Relating to PO”
From “Process Blocked Invoice Relating to PO”
To “Create Goods Receipt - Centralised”
10
BPMN Modelling- Exception Handling -
© INB/INN320 9.2/2011 – 19 September 2013
Simplest form of exception: Terminate event
• Exceptions are events that deviate a process from its “normal” course
• The simplest form of exception is to notify that there is an exception (negative outcome)
• This can be done via the Terminate end event: it forces the whole process to abort (“wipes off” all tokens left behind, if any)
© INB/INN320 9.2/2011 – 19 September 2013
Example: terminate event
Signal the negative outcome…
Notify Purchasing
Officer
PO ResponseReceived
Error MessageReceived
Fridayafternoon
Process PO Response
From“Order
submission”Ordering
failed
Orderingcompleted
© INB/INN320 9.2/2011 – 19 September 2013
Example 2: terminate event
Abort the process by removing all tokens…
© INB/INN320 9.2/2011 – 19 September 2013
Example: our PO handling process (see Week 8)
A Purchase Order (PO) handling process starts when a PO is received. The PO is first registered. If the current date is not a working day, the process waits until the following working day before proceeding. Otherwise, an availability check is performed and a “PO response” is sent back to the customer.
Anytime after the PO has been registered, the customer may send a “PO change request”. When such a PO change request is received, any processing related to the PO must be stopped. The PO change request is then registered. Thereafter, the process proceeds as it would do after a normal PO is registered.
Further, if the customer sends a “PO cancelation request” after the PO registration, the PO processing must be stopped and the change request needs to be handled.
15
© INB/INN320 9.2/2011 – 19 September 2013
Solution
Handle PO
Register PO
POReceived
Next working dayweekend/
holiday
Check Availability
Send PO Response
weekday
POfulfilled
PORegistered
Responsesent
PO Changereceived
Register PO Change
16
PO Cancelreceived
Handle POCancelation
POcanceled
© INB/INN320 9.2/2011 – 19 September 2013
Exception handling
• Handling exceptions often involves stopping a sub-process and performing a special activity
• Types of exceptions for an activity (task/sub-process) in BPMN:
Timeout: an activity takes too long and must be interrupted. Handled with the Timer event
External: something goes wrong outside the process, and the execution of the current activity must be interrupted. Handled with the Message event
Internal: something goes wrong inside an activity, whose execution must thus be interrupted. Handled with the Error event
All these events stop the enclosing activity and start an exception handling routine.
© INB/INN320 9.2/2011 – 19 September 2013
Internal exceptions: error event
Error Event – Indicates an error: the “end” version generates an error event while the “catching intermediate” version consumes it when attached to the boundary of an activity
Must be attached to the activity’s boundary
© INB/INN320 9.2/2011 – 19 September 2013
Example: error event
Consider our “PO Handling process” example with the following extension: if an item is not available, any processing related to the PO must be stopped. Thereafter, the client needs to be notified that the PO cannot be further processed.
Register PO
POReceived
Next working dayweekend/
holiday
Check Availability
Send PO Response
weekday
POfulfilled
Handle PO
Register PO
POReceived
Next working dayweekend/
holiday
Check Availability
Send PO Response
weekday
POfulfilled
PORegistered
Responsesent
PO Changereceived
Register PO Change
PO Cancelreceived
Handle POCancelation
POcanceled
© INB/INN320 9.2/2011 – 19 September 2013
Solution
20
Handle PO
Register PO
POReceived
Next working dayweekend/
holiday
Check Availability
Send PO Response
weekday
POfulfilled
PORegistered
Responsesent
Items not available
Itemsavailable
PO Changereceived
Register PO Change
PO Cancelreceived
Handle POCancelation
POcanceled
Items not available
Notificationsent
Must catch an error event thrown from
within the same activity
© INB/INN320 9.2/2011 – 19 September 2013
Compensation Handling
• May be used as part of an exception handling procedure
• Rollback of completed process activities
E.g.: Bookings for holidays have successfully been completed. However, it turns out that the given credit card details were incomplete. A booking rescission
is necessary.
• Triggered by throwing Compensate Event
• Compensation Handler (triggered bya catching Compensate event) performs the rollback
Compensationhandler
© INB/INN320 9.2/2011 – 19 September 2013
Compensate event
Compensate Event – Indicates that the enclosing process must be compensated: the “throwing intermediate” and the “end” version generate the compensation event while the “intermediate catching” version consumes it when attached to the boundary of an activity
Must be attached to the activity’s boundary
© INB/INN320 9.2/2011 – 19 September 2013
Example: compensation event
Let’s extend out PO Handling process.
After a PO has been registered, checked, and a response has been sent back, a payment sub-process and a fulfilment sub-process are started in parallel. During these two sub-processes, a PO cancellation may be received from the customer. In this case, both sub-processes are stopped, and a compensation routine is performed for each of them (e.g. reimbursement and/or goods return may need to occur).
© INB/INN320 9.2/2011 – 19 September 2013
Possible solution: compensation event
Fulfil and Pay PO
Payment
Fulfillment
Re-imbursement
Goods return
PO Cancel received
Cancel PO
Cancel PO
Cancel PO
PO Received +
Handle PO
POfulfilled
and paidOnly one compensate activity must be linked
from a catching compensate event, via a
directed association
© INB/INN320 9.2/2011 – 19 September 2013
Recap: Terminate, Error and Compensate events
Error: Catching or throwing named errors.
Compensate: Handling or triggering compensation.
Terminate: Triggering the immediate termination of a process.
EndIntermediate
Cat
chin
g
Thro
win
g
Boundar
y In
terr
upting
© INB/INN320 9.2/2011 – 19 September 2013
Non-interrupting boundary events
Sometimes we may need to trigger a task/sub-process in parallel to the normal flow, i.e. without interrupting the normal flow.
This can be achieved by using non-interrupting boundary events:
– Double dashed border– Attached to the boundary of a task/sub-process
© INB/INN320 9.2/2011 – 19 September 2013
Example: non-interrupting boundary events
Again, our PO handling process…
A Purchase Order (PO) handling process starts when a PO is received. The PO is first registered. If the current date is not a working day, the process waits until the following working day before proceeding. Otherwise, an availability check is performed and a “PO response” is sent back to the customer.
Anytime after the PO has been registered, the customer may send a “PO change request”. When such a PO change request is received, any processing related to the PO must be stopped. The PO change request is then registered. Thereafter, the process proceeds as it would do after a normal PO is registered.
Further, if the customer sends a “PO cancelation request” after the PO registration, the PO processing must be stopped and the chance request needs to be handled.
The customer may send a “Customer address change request” after the PO registration. When such a request is received, it is just registered, without further action.
© INB/INN320 9.2/2011 – 19 September 2013
Solution: non-interrupting boundary events
Handle PO
Register PO
POReceived
Check Availability
PO Cancelreceived
Send PO Response
Handle PO Cancelation
Next working dayweekend/holiday
weekday
Check working day
POcanceled
POhandled
Update customer address
Addresschangereceived
Customeraddressupdated
© INB/INN320 9.2/2011 – 19 September 2013
An alternative: Event Sub-Process
To handle events that may not refer to a particular task/sub-process within a process.• Placed into a process or sub-process• Depicted within a dotted rectangle with rounded corners
• Is activated when its start event is triggered• It may or may not interrupt the parent process or sub-
process, depending on the type of its start event:– Non-Interrupting:
– Interrupting:
Event Sub-Process
EventSub-Process
+
© INB/INN320 9.2/2011 – 19 September 2013
Example: Event Sub-Process
Handle PO
Update customer address
Addresschange received
Handle Address Change
PO Cancelreceived
Handle Po Cancelation
Handle PO Cancelation
Check Availability
Send PO Response
Next working dayweekend/holiday
weekday
Check working day
Customeraddress changed
POcanceled
POhandled
Register PO
POReceived
when the event sub-process is inside a sub-process, it can only
be receptive of those events that occur during the execution of the
enclosing sub-process
© INB/INN320 9.2/2011 – 19 September 2013
Recap: Events
Untyped: indicate start point, state changes or final states.
Message: Receiving and sending messages.
Timer: Cyclic timer events, points in time, time spans or timeouts.
Link: Off-page connectors. Two corresponding link events equal a sequence flow.
Start EndIntermediate
Cat
chin
g
Thro
win
g
Even
t Su
b-P
roce
ssIn
terr
upting
Top
-Lev
el
Even
t Su
b-P
roce
ssNon
-Inte
rrupting
Bou
ndar
y In
terr
upting
Bou
ndar
y Non
-In
terr
upting
Error: Catching or throwing named errors.
Compensate: Handling or triggering compensation.
Terminate: Triggering the immediate termination of a process.
© INB/INN320 9.2/2011 – 19 September 2013
References
Required• Sections 4.4.3 and 4.5 of Chapter 4 of textbook “Fundamentals of BPM”
Recommended• OMG (2011): BPMN 2.0 Specification• BPM Offensive (2011): BPMN 2.0 Poster• OGM (2010): BPMN 2.0 By Example
Web References• OMG BPM Initiative• BPMN Community
Books on BPMN• Silver B. (2011): “BPMN Method & Style” 2nd Edition, Cody-Cassidy
© INB/INN320 9.2/2011 – 19 September 2013
A/Prof. Marcello La RosaIS School Academic Director(Corporate Programs and Partnerships)BPM Discipline, IS School
Science & Engineering FacultyQueensland University of Technology126 Margaret StreetBrisbane QLD 4000Australia
p +61 (0)7 3138-9482e [email protected] www.marcellolarosa.com