BITM 305-Week - 3
BITM 305-Week - 3
BITM 305-Week - 3
(BITM 305)
Manage
identification Materials
Support Processes
Products Products Products
Service
Manage
35h B 30h
Manage Personnel Information Manage Assets
15h
Process architecture
A E
D
5m 3m 5m 10m 30m 2h 10m
C
15m 1.5h 10min Conformance and Process As-is process
performance
discovery model
insights
A B C D E
Process Process
monitoring analysis
Executable Insights on
process weaknesses and
model their impact
Process Process
implementation To-be process redesign
model
First Steps with BPMN
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
BPMN
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:
start end
activity event gateway sequence flow
Let’s start modeling
Order-to-cash
Check stock
availability
Purchase
order
received
9
Let’s start modeling – break it down
Order-to-cash
end
activity
Reject order event
Items not in
Order
stock
rejected
Check stock split gateway end
availability
Purchase event
order Items in
received stock Confirm Emit Archive
start Ship goods
order invoice order
Order
event fulfilled
Naming conventions
• Event: noun + past-participle verb (e.g. insurance claim lodged)
• Activity: verb + noun (e.g. assess credit risk)
11
Execution of a process model
The “token game”
Order #1
Order #2
Order #3
Reject order
Items not in
Order
stock
rejected
Check stock
availability
Purchase
order Items in
received stock Confirm Emit Archive
Ship goods
order invoice order
Order
fulfilled
12
A little bit more on events…
13
Order-to-cash example revisited…
[…] If the purchase order is confirmed, an invoice is emitted and the goods requeste
d are shipped (in any order). The process completes by archiving the order. […]
Reject order
Items not in
Order
stock
rejected
Check stock
availability
Purchase
order Items in
received stock Confirm Emit Archive
Ship goods
order invoice order
Order
fulfilled
14
First try
Order-to-cash
Reject order
Items not in
Order
stock
rejected
Check stock
availability split Emit invoice
Purchase
order Items in
received stock Confirm Emit Archive
Ship goods
order invoice order
Order
fulfilled
split join
Ship goods
15
Branching and Merging
A little more on gateways: XOR Gateway
condition
16
Example: XOR Gateway
Invoice checking process
5
A little more on gateways: AND Gateway
18
Example: AND Gateway
Airport security check
19
Revised order-to-cash process model
Reject order
Items not in
stock Order
rejected
Check stock
availability XOR-split Send invoice
Purchase
order Items in
received stock
Archive
Confirm order
order
Order
AND-split AND-join fulfilled
Ship goods
20
Case Analysis
Order distribution process
A company has two warehouses that store different products: Amsterdam and Hamburg
. When an order is received, it is distributed across these warehouses: if some of the rel
evant products are maintained in Amsterdam, a sub-order is sent there; likewise, if som
e relevant products are maintained in Hamburg, a sub-order is sent there. Afterwards, t
he order is registered and the process completes.
21
Solution one
Order distribution process
XOR-split XOR-join
AND-split AND-join
22
Solution two
Order distribution process
AND-split AND-join
XOR-split XOR-join
23
OR Gateway
cond1
24
Solution using OR Gateway
Order distribution process
25
Beware: Beginner’s Mistake…
Components of a modeling language
Modelling Language
Vocabulary
Can be:
• Physical or digital information artifacts (e.g. an order on paper, an invoic
e on PDF)
• Physical material (e.g. a box containing the ordered goods)
Our Order-to-cash process, again
Send
invoice
Confirm Archive
Items in order order
stock Order
fulfilled
Check stock
Ship goods
availability
Purchase
order Items not in
received stock
Reject order
Order
rejected
Confirm Archive
Items in order order
stock Order
fulfilled
Check stock
Ship goods
availability
Purchase
order Items not in
received stock
Reject order
Order Orders DB
rejected Shipment
notice
Warehouse DB
The purchase order document serves as an input to the stock
Purchase availability check against the Warehouse DB. Based on the
Order
[rejected]
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.
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
Clear vendor
Ship goods
line items
Resources
Active resources:
• Process participant
• Software system
• Equipment
Resource class:
A group of (active) resources that are interchangeable, e.g. a role, an organizatio
nal unit or the whole organization.
Resources in the order-to-cash example
Pool
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)
Lane
Pool
Lane
Lane
Lane
Solution: Order-to-cash
Exchanging information between business parties
Order-to-cash
The purchase order sent by the Customer is received by the Seller and checked ag
ainst the stock. This is done via an ERP module within the Warehouse & Distributi
on 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 ship
ment notification to the Customer. Meantime, the Sales department emits the inv
oice and sends it to the Customer. The process concludes with the order being arc
hived by the Sales department.
BPMN Elements – Message Flow
Pool 2
Pool 2
Receive
Pool 1
Pool 1
Send Receive
Send
BPMN Elements – Start Message Event
The start message event triggers a process by the receipt of a message when an
incoming message flow is connected to the event
Message
Message
received
Solution: Order-to-cash
Pools, Lanes and Message Flows: syntax
1. The Sequence Flow cannot cross the boundaries of a Pool
2. Both Sequence Flow and Message Flow can cross the boundaries of Lanes
3. A Message Flow cannot connect two flow elements within the same pool
When are messages sent or received?
• A Send activity will send the outgoing message upon activity completion
• A Receive activity won’t start until the incoming message has been received
Pool 2
Pool 2
Receive
Pool 1
Pool 1
Send Receive
Send
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?
• 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
Process (or Orchestration) Diagram
Auctioning Service
Private view (white box)
Auctioning Service Conduct auction
Models a global business process between at least two business parties (ea
ch modelled by a Pool)
Send delivery
Seller notification
Auction
Bid Bid
completion
acknowledgement
notification
Bidder
Public
process
Process decomposition
An activity in a process can be decomposed into a “sub-process”
Expanded Sub-process
Collapsed
Task
Sub-process
Activities
Use this feature to:
1. Improve understanding by breaking down large models
2. Identify parts that should be:
• repeated
• executed multiple times in parallel
• interrupted, or
• compensated
Example: Sub-Process
Process Invoice
no
mismatches
Enter Invoice /
Check Invoice
Credit Note
Mismatches
Details
mismatch
exists
Block Invoice
Identify possible sub-processes
Acquire raw materials
Clear Order
Credit
Level 5 Check Credit
Record
available
...
Contact
customer
Credit not
available
account rep.
Decomposition drivers:
• Logical: group elements meaningfully (e.g. common business object)
• Structural: up to 30 nodes (activities, events, gateways)
Process Reuse
By default, a sub-process is “embedded” into its parent process (i.e. it is stored within the
same file)
In order to maximize reuse, it is possible to “extract” the sub-process and store it as a sepa
rate file in the process model repository
Such a sub-process is called “global” model, and is invoked via a “call” activity
(normal) Call
activity activity
Example: process reuse
Quote-to-order
Any question?
End