Unit 3 - BPM
Unit 3 - BPM
Process Decomposition
1. Challenge of Model Complexity:
o Definition:
o Grouping Activities:
o Collapsed Sub-Process:
4. Hierarchical Decomposition:
5. When to Decompose:
o Guideline: Use sub-processes if the model exceeds ~30 flow objects (activities,
events, gateways).
▪ Density of connections.
o Example: "Ship product" activity could omit packaging and shipping details if
unnecessary.
o Global Sub-Process: Defined outside any parent process and can be invoked by
other processes in the same process model collection. This enhances
reusability.
o Example: The sub-process for signing loans in a loan disbursement process can
be reused for student and motor loans by defining it as a global process model.
▪ Shared processes like payment, invoicing, HR, and printing are typically
reused across various business processes.
o A sub-process must start with at least one start event and end with at least one
end event.
o If there are multiple start events, the sub-process is triggered by the first one to
occur.
o If there are multiple end events, the sub-process will complete when all tokens
have reached an end event.
• For example, when you send a document for approval, it may need to go back for edits if
it’s not approved. We call this rework.
• To model this, we can use XOR gateways (which look like diamond shapes with an "X"
inside). They direct the process based on conditions: if approved, move forward; if not,
go back and redo steps.
2. Using Loop Activities for Repetition:
• Instead of always using XOR gateways, we can use a loop activity to show repeated
steps simply.
• For example, let’s say there’s a process for approving government letters. You could
bundle the repeated steps (like edits and reviews) into one “sub-process” that has a
loop symbol.
• This loop symbol means the steps inside this sub-process repeat until a specific
condition is met (like “until response is approved”).
• Important Note: If you create a loop sub-process, make sure the last step inside is a
decision point (like “approved or not?”). This way, it’s clear when to stop repeating.
• A loop activity is a specific kind of repetition that has a clear start and end.
• However, not all processes fit neatly into a loop. Some have multiple entry or exit points,
which can make the process flow complex.
• For example, imagine a process where you assess an application, send rejection
notices, and get customer feedback. If there are multiple ways to enter or exit these
steps, we call this an unstructured cycle.
• In these cases, using a simple loop activity doesn’t work well. We’d need extra
conditions to show where each part starts or stops, making the model harder to follow.
Parallel Repetition
Sometimes, we need to perform the same task for different people or items at the same
time.
• For example, in a procurement process, if you want quotes from multiple suppliers,
you’d contact all suppliers at once.
• Multi-instance activity is used for these cases, letting us run several copies of an
activity simultaneously without making the model large.
• Instead of drawing a task for each supplier, we draw one task and mark it as multi-
instance (with three small vertical lines). It will then run for as many suppliers as
needed.
Example of Use:
• Suppose there are 20 suppliers in the database, but you only need quotes from five. You
can add an annotation to say, “Complete when five quotes are obtained.” This way, once
five quotes arrive, the remaining requests are canceled, and the process moves forward.
Uncontrolled Repetition with Ad-hoc Sub-processes:
• Some activities can happen multiple times in no set order. We call this uncontrolled
repetition.
• For example, after placing an order, a customer may email the seller to check on it
multiple times. Or they might want to update their personal details. These actions don’t
follow a specific order and may or may not happen.
• An ad-hoc sub-process is useful here. It’s a group of tasks marked by a tilde (~) symbol
to show that they can happen in any order.
• You can still use sequence arrows to show preferred order, but there are no start or end
events for these activities.
Handling Events
Events in a process represent things that happen instantly and trigger specific actions in a
workflow. Events can start or end a process (like creating or destroying tokens in a workflow) or
be "intermediate" events, which occur somewhere in the middle of a process. Tokens flow
through the process steps and pause at intermediate events until the event occurs. Once it
happens, the token continues on its path.
o An end event that signals the process has ended by sending a message (like a
confirmation sent after processing).
o Throwing event: With a filled icon, it "throws" or sends a trigger within the
process (e.g., sending a shipment notification).
4.4.2 Temporal Events
• Temporal events start based on time, like setting a process to start daily at a certain
time or to trigger at specific intervals. They are common for processes that need regular
updates or checks.
• Intermediate temporal events specify time gaps within the process. For example, if a
callover list needs to be prepared three weeks before a scheduled callover day, we can
set a timer event to prepare the list exactly at that time.
• Event-based XOR split: This represents a choice determined by external events. Unlike
an internal choice made by the process itself, the outcome here depends on which
external event occurs first. It is shown by a double-lined circle with a pentagon inside.
o For example, after sending an insurance quote to a client, the client may reply
with acceptance or rejection. The process then continues based on whichever
response comes first.
• When processes (or pools) interact, a deadlock can occur if they wait for actions that
never happen.
• Event-based gateways help ensure smooth interactions by checking the order and
conditions of message exchanges.
For instance, in an auctioning service and seller collaboration, if a seller is already registered,
they shouldn’t have to wait for an unnecessary confirmation. An event-based gateway allows for
flexible handling to prevent waiting endlessly, or deadlocking, if the expected message doesn’t
arrive.
Handling Exceptions
• Exceptions are unexpected events that disrupt a process flow, such as business faults
(e.g., out-of-stock items) and technology faults (e.g., database crash). Handling them
helps in managing process interruptions or recovery procedures.
o This is done using an End Terminate Event, depicted as an end event with a full
circle inside. The End Terminate Event immediately stops the process instance
at its current level and any sub-processes.
o Scenario: In a variant of the home loan process (Figure 4.14), the loan is
rejected and the process is aborted if the applicant has high debts or high
liability.
▪ All tokens within the process model and sub-processes are destroyed,
preventing further execution.
3. Avoiding Deadlocks:
o The terminate event helps avoid deadlocks in the process. For example, a token
may get trapped before an AND-join if there are conflicting conditions (e.g., high
debts and low liability, or low debts and high liability). By triggering the terminate
event, the process is halted to avoid this situation.
o If the terminate event is triggered within a sub-process, it will only abort the
sub-process, not the parent process.
Key Concepts
1. Error Event:
▪ End Error Event (throwing event): This event triggers the exception and
is represented by a filled lightning marker.
o The exception flow may include any elements to handle the error, such as
tasks, messages, or even other sub-processes.
4. Token Semantics:
o When the End Error Event is thrown, all tokens within the enclosing sub-process
are removed, causing an interruption.
o One token is sent through the exception flow, representing the start of the
recovery procedure.
1. The End Error Event is triggered, causing the interruption of the raw material
acquisition task.
2. The Intermediate Catching Error Event on the boundary of the activity catches
the exception.
3. The exception flow leads to a task such as notifying the customer about the
out-of-stock situation.
4. If recovery is not possible, the exception flow can lead to an End Terminate
Event, causing the entire process to be aborted.
4.5.3 External Exceptions
external exceptions occur due to events outside the process, like customer requests or system
errors.
Key Concepts
o When triggered, it interrupts the ongoing activity and follows the exception flow
to handle the event.
o The event removes the token from the activity, causing it to stop.
o The process then follows the exception flow to initiate a recovery procedure.
o The event scope is limited to a specific activity (e.g., canceling an order only
during stock checking).
o For broader coverage, use a sub-process with the event on its boundary.
4. Recovery Procedure:
o The event triggers actions like notifying the customer or updating order status.
Example:
o These events allow the process to continue executing while handling external
events (e.g., updating customer details without interrupting stock checks).
o After determining penalties, the customer is given a decision to either cancel the
order or continue. If the cancellation proceeds, an end signal event is thrown.
3. Signal Events:
o A signal event is different from a message event: it does not have a specific
target but is broadcast to all processes with a matching signal.
o The Order canceled signal can be caught by a catching signal event in another
part of the process, such as in the sub-process for acquiring raw materials. This
signal causes the sub-process to interrupt and initiate a recovery procedure,
which may involve charging the customer.
o Message events are specific in terms of source and target, while signal events
are broadcasted without a specific recipient, allowing broader process
interactions.
Example:
In the Order-to-Cash process, if a customer requests order cancellation during raw material
acquisition, the system:
• A signal event is thrown based on the customer’s decision, interrupting the raw material
acquisition and triggering a recovery procedure.
Key Differences
o Event Sub-Processes: These are more flexible and can be triggered by an event
at any point during the entire process. They are not tied to a specific activity but
instead capture events that may occur throughout the whole process.
2. Representation:
3. Interrupting vs Non-Interrupting:
▪ Interrupting Event Sub-Processes: Stop the main process flow, and the
procedure inside the sub-process handles the event.
4. Reusability:
• Global Scope: Can be triggered at any point in the process, not tied to a specific
activity.
• Reusability: Can be defined as a separate process model that can be reused in other
workflows.
• Flow Integration: Can be wired back into the main process flow, maintaining the
process continuity without needing a separate sub-process.
When to Use Each:
• Event Sub-Processes:
o Use when the event can occur at any time during the process and is not tied to a
specific activity.
o Use when you need to capture a reusable procedure (e.g., handling customer
inquiries in an order-to-cash process).
• Boundary Events:
o Use when the event is specific to a particular activity and must be handled in the
context of that activity (e.g., handling order cancellations during stock
availability check).
o Condition on a Flow: Rules can be added to the flow conditions after an (X)OR-
split.