Business Process Modelling -9.2/2013 -

33
Business Process Modelling -9.2/2013 - Marcello La Rosa Queensland University of Technology Brisbane, 19 September 2013

description

Business Process Modelling -9.2/2013 -. 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? How to interrupt an activity?. Event-based decision. - PowerPoint PPT Presentation

Transcript of Business Process Modelling -9.2/2013 -

Page 1: Business Process Modelling -9.2/2013 -

Business Process Modelling-9.2/2013 -

Marcello La Rosa

Queensland University of Technology

Brisbane, 19 September 2013

Page 2: Business Process Modelling -9.2/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?

Page 3: Business Process Modelling -9.2/2013 -

© 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

Page 4: Business Process Modelling -9.2/2013 -

© 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

Page 5: Business Process Modelling -9.2/2013 -

© 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

Page 6: Business Process Modelling -9.2/2013 -

© 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

Page 7: Business Process Modelling -9.2/2013 -

© INB/INN320 9.2/2011 – 19 September 2013

Solution: event-based decision

Send reminder

Send Questionnaire

Filled Questionnaire

Received

After 5 days

7

Page 8: Business Process Modelling -9.2/2013 -

© INB/INN320 9.2/2011 – 19 September 2013

Remember the quiz from slide 23 of Week 8?P

ool 1

Poo

l 2

C

Dc1

ENot c1c2

F

A B

Not c2

Message zMessage yMessage x

Poo

l 1P

ool 2

C

Dc1

ENot c1c2 F

A

Message x

Not c2

B

Message y Message z

8

Page 9: Business Process Modelling -9.2/2013 -

© 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

Page 10: Business Process Modelling -9.2/2013 -

© 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

Page 11: Business Process Modelling -9.2/2013 -

BPMN Modelling- Exception Handling -

Page 12: Business Process Modelling -9.2/2013 -

© 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)

Page 13: Business Process Modelling -9.2/2013 -

© 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

Page 14: Business Process Modelling -9.2/2013 -

© INB/INN320 9.2/2011 – 19 September 2013

Example 2: terminate event

Abort the process by removing all tokens…

Page 15: Business Process Modelling -9.2/2013 -

© 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

Page 16: Business Process Modelling -9.2/2013 -

© 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

Page 17: Business Process Modelling -9.2/2013 -

© 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.

Page 18: Business Process Modelling -9.2/2013 -

© 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

Page 19: Business Process Modelling -9.2/2013 -

© 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

Page 20: Business Process Modelling -9.2/2013 -

© 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

Page 21: Business Process Modelling -9.2/2013 -

© INB/INN320 9.2/2011 – 19 September 2013

Compensation Handling

• May be used as part of an exception handling procedure

• Rollback of completed process activitiesE.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

Page 22: Business Process Modelling -9.2/2013 -

© 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

Page 23: Business Process Modelling -9.2/2013 -

© 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).

Page 24: Business Process Modelling -9.2/2013 -

© 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

Page 25: Business Process Modelling -9.2/2013 -

© 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

Catc

hing

Thro

win

g

Boun

dary

In

terr

uptin

g

Page 26: Business Process Modelling -9.2/2013 -

© 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

Page 27: Business Process Modelling -9.2/2013 -

© 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.

Page 28: Business Process Modelling -9.2/2013 -

© 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

Page 29: Business Process Modelling -9.2/2013 -

© 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

+

Page 30: Business Process Modelling -9.2/2013 -

© 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

Page 31: Business Process Modelling -9.2/2013 -

© 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

Catc

hing

Thro

win

g

Even

t Sub

-Pro

cess

Inte

rrup

ting

Top-

Leve

l

Even

t Sub

-Pro

cess

Non-

Inte

rrup

ting

Boun

dary

In

terr

uptin

g

Boun

dary

Non

-In

terr

uptin

g

Error: Catching or throwing named errors.

Compensate: Handling or triggering compensation.

Terminate: Triggering the immediate termination of a process.

Page 32: Business Process Modelling -9.2/2013 -

© 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

Page 33: Business Process Modelling -9.2/2013 -

© 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