BPMN 2.0 Analysts

From Training Material
Revision as of 08:48, 25 April 2019 by Fstachecki (talk | contribs) (→‎Signal Events⌘)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


Parallel Event-Based Gateway⌘

ParallelEventBasedGateway.png

  • All events must occur before a process can start

ParallelEventBasedGatewayExample.png

Complex Gateway⌘

ComplexGateway.png

  • The Complex Gateway can be used to model complex synchronization behavior
  • For example, it could specify that tokens on three out of five incoming Sequence Flows are needed to activate the Gateway.

ComplexGatewayExample.png

Data Modeling⌘

  • Data modeling is used to describe physical or information items that are created, manipulated, and used during the execution of a Process.
  • Data can be modeled using: Data Objects, Data Inputs, Data Outputs, Data Stores, Data Associations, ....

Data Objects⌘

BPMNDataObject.png

  • The primary construct for modeling data within the Process flow.
  • Data Associations are used to move data between Data Objects.
  • Tokens do not flow along a Data Association.

Data Input, Data Output⌘

BPMNDataObjectInOut.png

  • Activities and Processes often need data in order to execute.
  • In addition they can produce data during or as a result of execution.
  • Data requirements are captured as Data Inputs.
  • Data that is produced is captured using Data Outputs.

Data Store⌘

BPMNDataStore.pngDataStoreAndAssociations.png

  • A DataStore provides a mechanism for Activities to get or update stored information that will persist beyond the scope of the Process.
  • Represents a single unit of information (e.g. database record)

Link Events⌘

  • A Link is a mechanism for connecting two sections of a Process.
  • Link Events can be used to avoid long Sequence Flow lines.
  • The use of Link Events is limited to a single Process level (i.e., they cannot link a parent Process with a Sub-Process or one pool to another pool).
  • There can be multiple source Link Events, but there can only be one target Link Event.

LinkEvents.png

Link Events Example ⌘

LinkEventsExample.png

Link Events as Off-Page Connector⌘

ClipCapIt-151001-142717.PNG

Conditional Events ⌘

  • Is triggered when a condition such as "Temperature above 20°C" become true.

BPMNConditionalEvents.png

BPMNConditionalEventExampleEN.png

Signal Events⌘

  • A Signal is for general communication within and across Process levels, across Pools, and between Business Process Diagrams.
  • A BPMN Signal is similar to a signal flare that shot into the sky for anyone who might be interested to notice and then react. Thus, there is a source of the Signal, but no specific intended target.
SignalEvents.png

Signal Event Example 1⌘

SignalExample.png

Signal Event Example 2⌘

SignalExample2.png

Error Events⌘

  • An Error is generated when there is a critical problem in the processing of an Activity or when the execution of an Operation failed
  • An Error indicates that a named Error should be generated.
  • Process can't wait for an error or rise an error in itermediate event (only in Boundary Intermediate)
  • Process can't be instantiated using error event (only in Event Sub-Process)
ErrorEvents.png

Error Events Example 1⌘

BasicExceptionHandling.png Ex02 BasicExceptionHandlingMerge.png

Error Events Example 2⌘

Ex03 ExceptionHandling.png

Error Events Example 3⌘

Ex04 ExceptionHandling.png

Error Event Exercises⌘

  • Exercise 1.
  • Exercise 2.

Escalation Events⌘

  • An Escalation identifies a business situation that a Process might need to react to.
  • In contrast to an Error, an Escalation by default is assumed to not abort the Activity to which the boundary Event is attached.
EscalationEvents.png

Escalation Example⌘

ClipCapIt-171020-104431.PNG


Escalation Exercises⌘

  • Exercise 1.

Compensation⌘

CompensationSimpeExample.png

  • Compensation is undoing steps that were already successfully completed, because their results and possibly side effects are no longer desired and need to be reversed.
  • If an Activity is still active, it cannot be compensated, but rather needs to be canceled.
  • Compensation is not an error handling
  • A compensation handler performs the steps necessary to reverse the effects of an Activity.

Compensation handler⌘

Compensation.png

  • A compensation handler connected via a boundary Event can only perform “black-box” compensation of the original Activity.
  • Compensation Activity is connected to the boundary Event through an Association.
  • The Compensation Activity can be either a Task or a Sub-Process, has a marker to show that it is used for compensation only and is outside the normal flow of the Process.

Compensation Using Event Sub-Process⌘

CompensationExample.png

A Compensation Event Sub-Process can access data that is part of its parent, and can recursively trigger compensation for Activities contained in its parent.

Compensation Exercises⌘

  • Exercise 1.
  • Exercise 2.

Transaction⌘

Transaction.png

  • Is a specialized type of Sub-Process that will have a special behavior that is controlled through a transaction protocol.
  • Transaction verifies if all of the participants have successfully completed their end of the transaction or have been restored to the equivalent of their original state.
  • ACID model describes transactions:
    • Atomic - transaction is "all or nothing": if one part of the transaction fails, the entire transaction fails, and the system state is left unchanged.
    • Consistent - any transaction will bring the system from one valid state to another.
    • Isolatated - concurrent execution of transactions results in a system state that would be obtained if transactions were executed serially, i.e. one after the other.
    • Durable - once a transaction has been committed, it will remain so, even in the event of power loss, crashes, or errors.

Transaction in BPMN⌘

TransactionOutcomes.png

Three basic outcomes of a Transaction:

  • Succes
  • Cancel
  • Error

Collapsed Transaction Sub-Process⌘

ClipCapIt-141127-104407.PNG

Cancel Events⌘

TransactionCancel.png

  • Cancel Events are only used in the context of modeling Transaction Sub-Processes
  • Activities indicated by sequence flow from cancel event will be executed after transaction is rolled back
CancelEvents.png

Transaction Exercises⌘

  • Exercise 1.
  • Exercise 2.

Loops and multi-instance⌘

Standard Loop ⌘

LoopingActivity.png

  • The Activity will loop as long as the boolean loopCondition is true
  • The condition is evaluated for every loop iteration, and MAY be evaluated at the beginning or at the end of the iteration (testBefore = true or testBefore = false)
  • In addition, a numeric cap can be optionally specified - loopMaximum
  • Loop activity instances are sequentially executed - one after another.
  • Loop Activity is similar to DO WHILE loop.

Multi-Instance Activity⌘

Element multiple instances parallel.png Figure10-48-activity-multi-instance-marker-for-parallel-instances.png Multi-Instance parallel

Element multiple instances sequential.png Figure10-49-activity-multi-instance-marker-for-sequential-instances.png Multi-Instance sequential

  • The instances MAY execute in parallel or MAY be sequential.
  • Multi-Instance Activites are used with collection of items
  • Multi-Instance Activity is similar to FOR EACH loop

Multi-Instance Activity Example⌘

MultiInstanceActivityExample.png

Loop Exercises ⌘

LoopExercise1.png

Global Task and Global Process⌘

  • A Global Task is a reusable, atomic Task definition that can be called from within any Process by a Call Activity.
  • A Global Task is not defined within a Process, but is callable element.
ClipCapIt-151201-205547.PNG
  • The types of Global Tasks are only a subset of standard Tasks types: GlobalUserTask, GlobalManualTask, GlobalScriptTask, and GlobalBusinessRuleTask
  • A Global Process can be called from another Process.
    • Question: Do you know any example of non-global process?

Call Activity⌘

ClipCapIt-140729-124234.PNG
  • A Call Activity is a type of Activity that identifies a point in the Process where a global Process or a Global Task is used.

Process, Collaboration, Choreography and
Conversation in BPMN 2.0⌘

Process - again⌘

A Process describes a sequence or flow of Activities
in an organization with the objective of carrying out work.
  • Process is depicted as a graph of Flow Elements, which are a set of Activities, Events, Gateways, and Sequence Flows that define finite execution semantics.
  • BPMN uses the term Process specifically to mean a set of flow elements
  • It uses the terms Collaboration and Choreography when modeling the interaction between Processes

Types of BPMN Processes ⌘

There are three basic types of BPMN Processes (Orchestrations):

  • Private Non-executable (internal) Business Processes
  • Private Executable (internal) Business Processes

FIgure7-1-example-of-a-private-business-process.png

  • Public Processes

Figure7-2-example-of-a-public-process.png

Collaboration⌘

Figure7-3-example-of-collaborative-process.png

  • Collaboration is a collection of Participants shown as Pools, their interactions as shown by Message Flows, and MAY include Processes within the Pools and/or Choreographies between the Pools
  • A Choreography is an extended type of Collaboration

Choreography⌘

CollaborationChoreography.png SimpleChoreography.png

  • A Choreography defines the sequence of interactions between Participants (Pools).
  • Choreographies exist outside of or in between Pools.
  • Choreography does not exist in a single Pool. Each step in the Choreography involves two or more Participants.
  • A Choreography does not have a central control mechanism.

Choreography Example 1⌘

Choreography.png

Choreography Task⌘

BPMNChoregraphyTask.png

  • A Choreography Task is an atomic Activity in a Choreography Process.
  • It represents an Interaction, which is one or two Message exchanges between two Participants.

Choreography Task with a Message⌘

BPMNChoregraphyTask2.png

Two-way Choreography Task⌘

BPMNChoregraphyTask2way.png

Sequence Flow⌘

BPMNChoregraphySequenceFlow.png

Gateways⌘

  • Interactions between Participants can happen in sequence, in parallel, or through exclusive selection.
  • Exclusive, Inclusive, Parallel, Event-based and Complex Gateways can be used with some constraints (because the lack of a central mechanism to maintain data visibility, and no central evaluation)

Exclusive Gateway Example⌘

BPMNChoregraphyExclusiveGatewayExample.png

Choreography Example 2 from spec⌘

Business Process Model and Notation (BPMN), Version 2.0, pages 318-319

ChoreographySpecExample1.png

Choreography Example 2 from spec⌘

ChoreographySpecExample2.png

Conversations⌘

SimpleConversation.png

  • The Conversation diagram is particular usage of a Collaboration diagram (simplified version of Collaboration)
  • Pools usually are empty.
  • A Conversation is a logical grouping of Message exchanges

Conversation Example⌘

Conversation.png

Annex⌘

BPMN shapes⌘

BPMN tools⌘

BPMN types of events

Business Process Model and Notation, v2.0, page 261

TypesOfEvents.png