BUSINESS&ERP

BUSA 379 – Week #5

Dr. Peter Drewes

Questions?

Business Process Model and Notation (BPMN)

OMG standard (BPMN 2.1)

Supported by numerous tools: bpmn.org lists over 70 tools

Both for conceptual and executable models

 

 

3

BPMN from 10,000 miles…

Based on popular graphical flowcharts:

Core set of notation elements

Each core element has various subtypes

 

A BPMN process model is a graph consisting of four types of core elements:

 

activity

gateway

event

sequence flow

start

end

 

4

A typical order-to-cash process is triggered by the receipt of a purchase order from a customer. The purchase order has to be checked against the stock regarding the availability of the item(s) requested. Depending on stock availability the purchase order may be confirmed or rejected.

If the purchase order is confirmed, an invoice is emitted and the goods requested are shipped. The process completes by archiving the order or if the order is rejected.

 

Let’s start modeling

Order-to-cash

Solution in BPMN: Order-to-cash

start event

end event

activity

split gateway

 

end event

 

 

Event: noun + past-participle verb (e.g. insurance claim lodged)

Naming conventions

Activity: imperative verb + noun (e.g. assess credit risk)

6

 

Activities capture work performed in a process

Different types of activities

 

 

 

Events represent the process’ triggers (start event) and outcomes (end event).

Different types of events

 

 

 

BPMN core elements

activity

7

start

event

end

event

7

 

Gateways capture forking and joining paths in the control flow.

Different types of gateways

 

 

Sequence flows represent the order in which activities and events will be performed.

They can be assigned a condition to distinguish between alternative branches.

Different types of flows

BPMN core elements

sequence flow

8

gateway

 

8

Process model vs process instances: The tokens game

9

 

 

 

Order #1

Order #2

Order #3

 

 

 

9

 

A start event triggers a new process instance by generating a token that traverses the sequence flow (“tokens source”)

 

 

An end event signals that a process instance has

completed with a given outcome by consuming

a token (“tokens sink”)

A little bit more on events…

10

start

event

end

event

 

10

[…] If the purchase order is confirmed, an invoice is emitted and the goods requested are shipped. The process completes by archiving the order. […]

 

Let’s reconsider our order-to-cash example

11

 

11

XOR-split  takes one outgoing branch

 

 

 

XOR-join  proceeds when one incoming branch has completed

 

A little more on gateways: XOR Gateway

12

An XOR Gateway captures decision points (XOR-split) and points where alternative flows are merged (XOR-join)

 

 

12

 

Example: XOR Gateway

5

 

 

 

 

 

Invoice checking process

 

13

A little more on gateways: AND Gateway

 

An AND Gateway provides a mechanism to create and synchronize “parallel” flows.

AND-split  takes all outgoing branches

 

 

 

AND-join  proceeds when all incoming branches have completed

 

 

 

 

 

14

 

 

Example: AND Gateway

 

 

 

Airport security check

 

15

Revised solution

XOR-split

AND-split

AND-join

 

Order-to-cash

 

16

Pen & Paper

 

Haptic

 

Standalone

E.g. Visio, Camunda Modeler

 

Repository-based

E.g. ARIS, Signavio, Apromore

 

Business Process Modeling Tools

17

 

Lecture – 20 July 2009

17

QUT Brisbane, Dr. Michael Rosemann

INB/INN320 – Business Process Modelling

A company has two warehouses, one in Amsterdam, the other in Hamburg, that store different products. When an order is received, it is distributed across these warehouses: if some of the relevant products are maintained in Amsterdam, a sub-order is sent there; likewise, if some relevant products are maintained in Hamburg, a sub-order is sent there. Afterwards, the order is registered and the process completes.

XOR / AND are not always what we need…

 

Order distribution process

18

 

Solution 1

XOR-split

XOR-join

AND-split

AND-join

 

Order distribution process

19

 

Solution 2

 

Order distribution process

XOR-split

XOR-join

AND-split

AND-join

20

 

OR Gateway

 

An OR Gateway provides a mechanism to create and synchronize n out of m parallel flows.

OR-split  takes one or more branches depending on conditions

 

 

OR-join  proceeds when all active incoming branches have completed

 

 

 

 

 

 

 

 

 

21

 

Solution using OR Gateway

OR-split

OR-join

22

Order distribution process

 

 

 

 

22

What join type do we need here?

23

23

 

Rework and repetition

Address ministerial correspondence

In the treasury minister’s office, once a ministerial inquiry has been received, it is registered into the system. Then the inquiry is investigated so that a ministerial response can be prepared.

The finalization of a response includes the preparation of the response itself by the cabinet officer and the review of the response by the principal registrar. If the registrar does not approve the response, the latter needs to be prepared again by the cabinet officer for review. The process finishes only once the response has been approved.

XOR-join: entry point

XOR-split: exit point

 

24

 

Components of a modeling language

 

Syntax

Modelling Language

Semantics

Notation

25

Vocabulary

 

Lecture – 20 July 2009

25

QUT Brisbane, Dr. Michael Rosemann

INB/INN320 – Business Process Modelling

Components of a modeling language: Vocabulary

 

Syntax

Modelling Language

Semantics

Notation

26

Vocabulary

Vocabulary: set of modeling elements of the language (BPMN: activities, gateways, events…)

 

 

Lecture – 20 July 2009

26

QUT Brisbane, Dr. Michael Rosemann

INB/INN320 – Business Process Modelling

Components of a modeling language: Syntax

 

Syntax

Modelling Language

Semantics

Notation

27

Vocabulary

Syntax: set of rules to govern how these elements can be combined (BPMN: start events only have outgoing sequence flows whereas end events only have incoming sequence flows).

 

Lecture – 20 July 2009

27

QUT Brisbane, Dr. Michael Rosemann

INB/INN320 – Business Process Modelling

Components of a modeling language

 

Syntax

Modelling Language

Semantics

Notation

28

Vocabulary

Semantics: bind these elements, including their textual descriptions, to a precise meaning (in BPMN: activities model something actively performed during the business process, while XOR gateways model exclusive decisions and simple merging points).

 

Lecture – 20 July 2009

28

QUT Brisbane, Dr. Michael Rosemann

INB/INN320 – Business Process Modelling

Components of a modeling language: Notation

 

Syntax

Modelling Language

Semantics

Notation

29

Vocabulary

Notation: set of graphical symbols for the visualization of the elements (in BPMN: labeled rounded boxes to depict activities and the circles with a thin border to depict start events).

 

Lecture – 20 July 2009

29

QUT Brisbane, Dr. Michael Rosemann

INB/INN320 – Business Process Modelling

 

Business Objects (aka artifacts)

Can be:

Physical or digital information artifacts (e.g. an order on paper, an invoice on PDF)

Physical material (e.g. a box containing the ordered goods)

30

 

30

Our Order-to-cash process, again

 

 

 

 

 

 

 

31

The purchase order document serves as an input to the stock availability check against the Warehouse DB. Based on the outcome of this check, the status of the document is updated, either to “approved” or “rejected”. If the order is approved, an invoice and a shipment notice are produced. The order is then archived on the Orders DB.

 

31

 

Business Objects in BPMN

A Data Object captures an artifact required (input) or produced (output) by an activity.

Can be physical or electronic

32

A Data Store is a place containing data objects that must be persisted beyond the duration of a process instance.

 

It is used by an activity to store (as output) or retrieve (as input) data objects.

 

32

 

Solution

33

The purchase order document serves as an input to the stock availability check against the Warehouse DB. Based on the outcome of this check, the status of the document is updated, either to “approved” or “rejected”. If the order is approved, an invoice and a shipment notice are produced. The order is then archived on the Orders DB.

 

33

BPMN Text Annotations

A Text Annotation is a mechanism to provide additional text information to the model reader

Doesn’t affect the flow of tokens through the process

 

34

 

34

Resources

Active resources:

Process participant

Software system

Equipment

 

Resource class:

A group of (active) resources that are interchangeable, e.g. a role, an organizational unit or the whole organization.

35

35

 

Resources in the order-to-cash example

The order-to-cash process is carried out by a seller’s organization which includes two departments: the Sales department and the Warehouse & Distribution department.

The purchase order received by the Seller has to be checked against the stock. This is done via an ERP module within the Warehouse & Distribution department.

If the purchase order is confirmed, the Warehouse & Distribution department ships the goods. Meantime, the Sales department emits the invoice. The process concludes with the order being archived by the Sales department.

36

 

36

BPMN Elements – Pools & Lanes

37

Pool

Captures a resource class. Generally used to model a business party (e.g. a whole company)

 

 

 

 

 

Lane

Captures a resource sub-class within a resource class by partitioning a pool. Generally used to model departments (e.g. shipping, finance), internal roles (e.g. Manager, Associate), software systems (e.g. DBMS, CRM) or equipment (e.g. Manufacturing plant)

37

 

Solution: Order-to-cash

Exchanging information between business parties

The purchase order sent by the Customer is received by the Seller and checked against the stock. This is done via an ERP module within the Warehouse & Distribution department. If the purchase order is not confirmed, the Sales department sends an order rejection to the Customer, otherwise it sends an order confirmation.

Next, the Warehouse & Distribution department ships the goods and sends a shipment notification to the Customer. Meantime, the Sales department emits the invoice and sends it to the Customer. The process concludes with the order being archived by the Sales department.

 

Order-to-cash

 

39

A Message Flow represents a flow of information or materials between two process parties (Pools)

 

 

 

 

 

 

 

 

BPMN Elements – Message Flow

A Message Flow can connect:

directly to the boundary of a Pool  captures a message to/from that party

to a specific activity or event within that Pool  captures a message that triggers a specific activity/event within that party

40

 

The start message event triggers a process by the receipt of a message when an incoming message flow is connected to the event

 

BPMN Elements – Start Message Event

41

 

 

Solution: Order-to-cash

42

 

Pools, Lanes and Message Flows: syntax

The Sequence Flow cannot cross the boundaries of a Pool

Both Sequence Flow and Message Flow can cross the boundaries of Lanes

A Message Flow cannot connect two flow elements within the same pool

 

19

 

43

A Send activity will send the outgoing message upon activity completion

A Receive activity won’t start until the incoming message has been received

 

 

 

 

 

 

Note: the order of the message flows w.r.t. an activity is irrelevant, the above rules always hold

 

When are messages sent or received?

44

44

 

 

When are messages sent or received?

45

Message B is first received before Activity can start.

Message A is sent after, upon Activity’s completion

First, message B is received, before Activity can start.

Then, message A is sent, upon Activity’s completion

45

 

Process (or Orchestration) Diagram

Models a single business party and can be:

Public view (black box)

 

 

 

 

Private view (white box)

 

46

46

 

Collaboration Diagram

Models a global business process between at least two business parties (each modelled by a Pool)

 

 

47

Public process

Private process

47

 

Process decomposition

 

It has been shown that the larger the model, the harder it is to understand it, and the higher is the likelihood of making syntactic mistakes, e.g. creating a deadlock in the model

48

Process decomposition

An activity in a process can be decomposed into a “sub-process”

 

 

 

 

 

 

 

Use this feature to:

Improve understanding by breaking down large models

Identify parts that should be:

repeated

executed multiple times in parallel

interrupted, or

compensated

Activities

 

49

49

For example, Emit invoice is a task, while Handle shipment is a subprocess as it includes tasks such as pick goods from warehouse shelves, package them, print shipment notice, attach it to package, load into track…

Example: Sub-Process

50

 

50

 

Identify possible sub-processes

 

 

51

Acquire raw materials

Ship and invoice

This is a more detailed version of our order-to-cash process where we added a branch to manufacture the product in case it is not in stock, and have made the shipment and invoicing part more detailed by asking for a shipment address and receiving the payment

51

 

Solution

52

 

52

The refactored model

53

From 22 to 10 nodes

53

Imposing order of messages via subprocess

54

The expanded subprocess for “Activity”

Linking value chains with process models

55

 

 

 

 

 

 

 

Process model for this process is available

 

Lecture – 20 July 2009

55

QUT Brisbane, Dr. Michael Rosemann

INB/INN320 – Business Process Modelling

 

Guidelines: modeling levels

Use sub-processes when the model becomes too large:

Hard to understand

Increased error probability

 

Level 1 – start with value chain

Level 2 – add main decisions and handoffs (lanes)

Level 3+ – add procedural aspects:

Parallel gateways

Data objects, data stores

Exception handling

And as much detail as is relevant

 

Decomposition drivers:

Logical: group elements meaningfully (e.g. common business object)

Structural: up to 30 nodes (activities, events, gateways)

56

Relevant: Consider domain, target audience and modelling purpose

 

Logical: group elements meaningfully on the basis of a common object: everything about invoice (invoice emission subprocess), everything about raw materials (acquisition from suppliers)

 

Structural: it has been shown empirically that having more than 30 flow objects leads to increased modelling errors

 

56

BPMN activities capture units of work in a process

Events define the start and end of a process, and signal something that happens during the execution of it

Gateways model exclusive and inclusive decisions, merges, parallelism and synchronization, and repetition

A process model depicts all the possible ways a given business process can be executed, while a process instance captures one specific process execution out of all possible ones

Data objects capture a physical or digital business object required to execute an activity or trigger an event, or that results from the execution of an activity or an event occurrence

Pools generally model resource classes while lanes are used to partition pools

Sub-processes represent activities that can be broken down in a number of internal steps, as compared to tasks, which capture single units of work

 

 

Recap

Claims Handling process at a car insurer

A customer submits a claim by sending in relevant documentation. The Customer Service department checks the documents for completeness and registers the claim. The Claims Handling department picks up the claim and first checks the insurance policy. Then, an assessment is performed. If the assessment is positive, a garage is phoned to authorise the repairs and the payment is scheduled (in this order). In any case (whether the outcome is positive or negative), an e-mail is sent to the customer to notify the outcome.

Assignment : Provide a BPMN diagram using the online tool.

 

Use diagram to represent the different stakeholders in the tasking subelement.

Homework is due on D2L by September 29th 11:59 pm.

Homework #3

Questions?

Purchaseorderreceived

Ship goods

Orderrejected

OrderfulfilledArchiveorder

Check stock Reject orderConfirm orderItems instockItems not in stock

Check stock availability

Emit invoice

Check stock availability

Reject order

Confirm order

Emit
 invoice

Ship goods

Purchase order received

Items in stock

Items not in stock

Order rejected

Order fulfilled

Archive order

Check stock availability

Reject order

Confirm order

Items in stock

Items not in stock

Check stock availability

Check stock availability

Reject order

Confirm order

Emit
 invoice

Ship goods

Purchase order received

Items in stock

Items not in stock

Order rejected

Order fulfilled

Archive order

Purchase order received

Check stock availability

Reject order

Confirm order

Emit
 invoice

Ship goods

Purchase order received

Items in stock

Items not in stock

Order rejected

Order fulfilled

Archive order

Check stock availability

Reject order

Confirm order

Emit
 invoice

Ship goods

Purchase order received

Items in stock

Items not in stock

Order rejected

Order fulfilled

Archive order

Check stock availabilityReject orderConfirm orderEmit invoiceShip goodsPurchaseorderreceivedItems instockItems not in stockOrderrejectedOrderfulfilledArchiveorder

Check stock availability

Reject order

Confirm order

Emit
 invoice

Ship goods

Purchase order received

Items in stock

Items not in stock

Order rejected

Order fulfilled

Archive order

Check stock availability

Reject order

Confirm order

Emit
 invoice

Ship goods

Purchase order received

Items in stock

Items not in stock

Order rejected

Order fulfilled

Archive order

condition¬ condition

condition

¬ condition

Check stock availabilityReject orderConfirm orderSend invoiceShip goodsPurchaseorderreceivedItems instockItems not in stockOrderrejectedOrderfulfilledArchiveorder

Check stock availability

Reject order

Confirm order

Send invoice

Ship goods

Purchase order received

Items in stock

Items not in stock

Order rejected

Order fulfilled

Archive order

cond1condn

Check stock availabilityConfirm orderReject orderSend invoiceShip goodsPurchaseorderreceivedItems not in stockItems instockOrderrejectedOrderfulfilledArchiveorder

Check stock availability

Confirm order

Reject order

Send invoice

Ship goods

Purchase order received

Items not in stock

Items in stock

Order rejected

Order fulfilled

Archive order

EmitinvoicePurchaseorderInvoice

Retrieve client informationOracle CRMClient info

Emit
invoice

Purchase
order

Invoice

Data Store

Initiating Message

Response Message

Choreography Task

Participant B

Participant A

Retrieve client information

Oracle CRM

Client info

PurchaseOrder[rejected]

PurchaseOrder[approved]

PurchaseOrder[approved]

Invoice

Check stock availabilityConfirm orderReject orderSend invoiceShip goodsPurchaseorderreceivedItems not in stockItems instockOrderrejectedOrderfulfilledArchiveorder

PurchaseOrder

PurchaseOrder[checked]

Shipmentnotice

Warehouse DB

Orders DB

Purchase Order

Purchase Order [checked]

Shipment notice

Data Store

Initiating Message

Response Message

Choreography Task

Participant B

Participant A

Warehouse DB

Data Store

Initiating Message

Response Message

Choreography Task

Participant B

Participant A

Orders DB

Purchase Order [approved]

Purchase Order [approved]

Purchase Order [rejected]

Purchase Order [approved]

Invoice

Check stock availability

Confirm order

Reject order

Send invoice

Ship goods

Purchase order received

Items not in stock

Items in stock

Order rejected

Order fulfilled

Archive order

Clear vendor line itemsFor blocked invoices

Ship goodsIncludes packaging

Description

Clear vendor line items

For blocked invoices

Description

Ship goods

Includes packaging

P

o

o

l

P

o

o

l

Lane

Lane

Lane

Lane

Pool

Pool

Lane

Lane

Message

Pool 2Pool 1

Pool 2Pool 1

Send

Receive

Send

Receive

Pool

Send

Receive

Pool

Send

Receive

Pool

Pool

Send

Receive

Pool

Send

Receive

Pool

Receive

Pool

Message

Pool

Pool 2

Pool 1

Pool

Pool 2

Pool 1

MessageMessagereceived

Pool

Message

Message received

Pool

Send

Receive

Pool

Pool

Send

Receive

Pool

Send

Receive

Pool

Receive

Pool

Pool

Pool 2

Pool 1

Pool

Pool 2

Pool 1

Pool

Send

Receive

A

u

c

t

i

o

n

i

n

g

 

S

e

r

v

i

c

e

A

u

c

t

i

o

n

i

n

g

 

S

e

r

v

i

c

e

Send auction

creation

confirmation

Auction

begins

Send auction

creation

confirmation

Conduct auction

Send auction

completion

notification

Auctioning Service

Auctioning Service

Send auction creation confirmation

Auction
begins

Send auction creation confirmation

Conduct auction

Send auction completion notification

S

e

l

l

e

r

A

u

c

t

i

o

n

i

n

g

 

S

e

r

v

i

c

e

Auction

creation

request

Auction

creation

confirmation

Payment

details

Delivery

acknowledgement

Payment

acknowledgement

B

i

d

d

e

r

Auction

completion

notification

Auction

completion

notification

Send auction

creation

request

Send

payment

details

Send

payment ack

.

Send delivery

notification

Goods

sent

notification

Send auction

creation

confirmation

Auction

begins

Send auction

creation

confirmation

Conduct auction

Send auction

completion

notification

Bid

acknowledgement

Bid

Seller

Auctioning Service

Auction creation request

Auction
creation
confirmation

Payment
details

Delivery
acknowledgement

Payment
acknowledgement

Bidder

Auction completion
notification

Bid acknowledgement

Bid

Auction completion
notification

Goods
sent
notification

Send auction creation request

Send payment details

Send payment ack.

Send delivery notification

Send auction creation confirmation

Auction
begins

Send auction creation confirmation

Conduct auction

Send auction completion notification

Collapsed

Sub-process

Expanded Sub-process

TaskTask

Collapsed Sub-process

Name

Expanded Sub-process

Task

Task

Process InvoiceProcess InvoiceCheck Invoice MismatchesEnter Invoice / Credit Note Detailsmismatch existsno mismatchesBlock InvoiceInvoice receivedProcess Payment

Name

Process Invoice

Process Invoice

Check Invoice Mismatches

Enter Invoice / Credit Note Details

mismatch exists

no mismatches

Block Invoice

Process Payment

Invoice received