922013 Marcello La Rosa Queensland University of Technology Brisbane 19 September 2013 Quick Repeat from Week 8 What is a process event What is the difference between a message and a timer event ID: 321337
Download Presentation The PPT/PDF document "Business Process Modelling" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Business Process Modelling-9.2/2013 -
Marcello La RosaQueensland University of Technology
Brisbane,
19
September 2013Slide2
Quick Repeat from Week 8What is a process event?
What is the difference between a message and a timer event?How to interrupt an activity?Slide3
Event-based decisionWith 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 flowSometimes, 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 split
3Slide4
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.4Slide5
A possible solution
5Slide6
Quiz: find the bugs
not
Intermediate
Timer
Event
6Slide7
Solution: event-based decision
7Slide8
Remember the quiz from slide 23 of Week 8?
8Slide9
Interlude: multiple start eventsThe first such event that occurs, will trigger an instance of the process.
9Slide10
What is this process doing?
10Slide11
BPMN Modelling- Exception Handling -Slide12
Simplest form of exception: Terminate eventExceptions are events that deviate a process from its “normal” courseThe 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)Slide13
Example: terminate eventSignal the negative outcome…Slide14
Example 2: terminate eventAbort the process by removing all tokens…Slide15
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.
15Slide16
Solution
16Slide17
Exception handlingHandling exceptions often involves stopping a sub-process and performing a special activityTypes of exceptions for an activity (task/sub-process) in BPMN:
Timeout: an activity takes too long and must be interrupted. Handled with the Timer eventExternal: 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. H
andled with the Error event
All these events stop the
enclosing
activity and start an exception handling routine.Slide18
Internal exceptions: error event
Must be attached to the activity’s boundarySlide19
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.Slide20
Solution20
Must catch an error event
thrown from within the same
activitySlide21
Compensation HandlingMay be used as part of an exception handling procedureRollback 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 EventCompensation Handler (triggered bya catching Compensate event)
performs
the rollbackSlide22
Compensate event
Must be attached to the activity’s boundarySlide23
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).Slide24
Possible solution: compensation event
Only one compensate
activity must
be linked from a catching compensate event, via a directed associationSlide25
Recap: Terminate, Error and Compensate eventsSlide26
Non-interrupting boundary eventsSometimes 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 borderAttached to the boundary of a task/sub-processSlide27
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.Slide28
Solution: non-interrupting boundary eventsSlide29
An alternative: Event Sub-ProcessTo 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 cornersIs activated when its start event is triggeredIt may or may not interrupt the parent process or sub-process, depending on the type of its start event:Non-Interrupting:Interrupting: Slide30
Example: Event Sub-Process
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-processSlide31
Recap: EventsSlide32
References
RequiredSections 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” 2
nd
Edition, Cody-CassidySlide33
A/Prof. Marcello La Rosa
IS School Academic Director(Corporate Programs and Partnerships)
BPM Discipline, IS School
Science & Engineering Faculty
Queensland University of Technology
126 Margaret Street
Brisbane QLD 4000
Australia
p +61 (0)7 3138-9482
e
m.larosa@qut.edu.au
w www.marcellolarosa.com