2 WebRatio 6 BPM WebRatio 6 BPM permits you to: Model and Document your processesExecute and Validate your processes by instantly prototypingDeveloping, Improving and Refining your processes and create a complete Web application
3 What is BPMN?BPMN is flow-chart based notation for defining Business ProcessesCommunity standardThe current version is 1.2, with a major revision process for 2.0 in progressCovers three different levels of process modeling:Process Maps – simple flow charts of the activitiesProcess Descriptions – flow charts extended with additional information, but not enough to fully define actual performanceProcess Models – flow charts extended with enough information so that the process can be analyzed, simulated, and/or executed
4 Basic conceptsSmall set of graphical elements to make it easy for business users as well as developers to understand the flow and the process.Four basic categories of elements compose a business process diagram (BPD):Flow ObjectsEvents, Activities, GatewaysConnecting ObjectsSequence Flow, Message Flow, AssociationSwimlanesPool, LaneArtifacts (Artefacts)Data Object, Group, AnnotationIt is also allowed to make a custom type of a Flow Object or an Artifact to make the diagram more understandable.
5 Pool and lanes A Pool: A Lane: represents a Participant in the Process. A Participant can be a specific business entity (e.g., a company) or can be a more general business role (e.g., a buyer, seller, or manufacturer)A Lane:Is a sub-partition within a PoolIs used to organize and categorize activities within a Pool.Is often used for such things as internal roles (e.g., Manager, Associate), systems (e.g., an enterprise application), an internal department (e.g., shipping, finance)PoolLane 1Lane 2
6 Sequence flowA Sequence Flow is used to show the order that activities will be performed in a ProcessThe source and target must be one of the following objects:EventsActivitiesGatewaysA Sequence Flow cannot cross a Sub-Process boundary or a Pool boundaryTask 1
7 How to read diagramsA useful concept that helps the action of reading of a diagram is the TokenThe start of a process generates a Token that must eventually be consumed at the conclusion of the processA Token will traverse the Sequence Flow and pass through the Flow Objects in the ProcessThe behavior of the Process can be described by tracking the path(s) of the Token through the ProcessMultiple Tokens may exist because of concurrent Process instances or the dividing of the Token for parallel processing within a single Process instance
8 Activities An activity: is work that is performed within a business processCan be a:TaskSub-ProcessCan be performed once or can have internally defined loops
9 Task Is an atomic activity that is included within a process Can be executed:Manual: outside the process (i.e. the customer accepts an offer)Service: automatically as some sort of service, which could be a Web service or an automated applicationUser: by a human performer with the assistance of a software application and is scheduled through a task list manager of some sortHas its own state:Ready: waiting to be workedActive: someone is working on itCompleted: someone has finished working on itAborted: someone has cancelled itDefines the parameters to show and to edit
11 Parameters A parameter is: A simple property that stores an information managed by the processUsed when there is the need to take a decision, sending a message and so onDefined by:NameType: simple (string, integer, etc.) or complex (Business object)Available valuesSelection policy (single or multiple)Defined at pool levelReplied for each process instanceDire a cosa serve
12 Business objects A business object is: A complex object that stores an entity managed by the process (i.e. an order, an invoice etc.)Useful when:the information is a structured objectyou have to use two or more properties to define an objectDefined by propertiesA property is a simple object defined by:NameType (string, integer, etc.)Available valuesSelection policy (single or multiple)Defined at project levelSpiegare quando usare Parametri e quando Business Objects
13 GatewaysA gateway:Is used to control how sequence flows interact as they converge and diverge within a processCan be executed:User: manually by a user choosing the gate using a set of parameters to show or edit like an activityService: automatically as a service with a set of condition parameters to testIs divided into types:ExclusiveInclusiveParallel
14 Exclusive gateway An exclusive gateway is: a location within a business process where the sequence flow can take two or more alternative pathsbasically the “fork in the road” for a processOnly one of the possible outgoing paths can be taken when the process is performedIs divided in two types:Data-basedEvent-based
15 Exclusive gateway (Data-based) The Data-Based Exclusive Gateway is:the most commonly used type of gatewayThe available set of gates can be based on:The name (Literal) of the outgoing Sequence Flow of the gatewayThe boolean expression contained in the Expression attribute of the outgoing Sequence Flow of the gatewayThese expressions use the input parameters of the gateway to determine or calculate which path should be taken (hence the name Data-Based)
16 Exclusive Data-based gateway Alternative 1 evaluated to trueTask 2Path 1Task 1Alternative 2 evaluated to trueTask 3Path 2
17 Inclusive gateway An inclusive gateway is: A decision where there is more than one possible outcomeUsually followed by a corresponding merging inclusive gatewayThe available set of gates can be based on:The name (Literal) of the outgoing Sequence Flow of the gatewayThe boolean expression contained in the Expression attribute of the outgoing Sequence Flow of the gatewayThese expressions use the input parameters of the gateway to determine or calculate which path should be taken
18 Inclusive Gateway Path 1 Task 2 Path 1 and 3 evaluated to true Task 1 Path 1 and 3 evaluated to false. Default path is takenTask 4Path 3
19 Parallel gateway A parallel gateway is: a place in the process where multiple parallel paths are definedis also used to synchronize (wait for) parallel paths
20 Parallel Gateway Path 1 and 2 are both taken Path 1 Task 2 Task 1 The gateway waits for ALL tokensTask 3Path 2
21 EventsAn event:Is something that happens during the course of a business process.Affects the flow of the process and often have a cause (trigger) or an impact (result).Can:start a flow. Is drawn as a circle with a single thin lineinterrupt/resume a flow. Is drawn as a circle with a double thin black lineend a flow. Is drawn as a circle with a single thick black lineCan be one of these types:None, Message, Timer, Signal, Conditional, Link, Error, Cancel, Terminate, CompensationCan be used to catch or throw the eventCan be defined as standalone or on the boundary of an activity as intermediate event
22 Exception HandlingIntermediate Events attached to the boundary of an activity represent triggers that can interrupt the activity.All work within the activity will be:Stopped and flow will proceed from the EventContinued after the flow has proceeded from the EventEvents of type Timer, Error, Message and Signal can be used
23 None Event Simply starts, interrupts or ends the flow Types: Start Intermediate EndPurposes: Catch ThrowPlaces: In the flow ☐On the boundaryCatchingThrowing
24 Timer eventTriggers an event based on specific time-date or specific cycleTypes: Start Intermediate ☐EndPurposes: Catch ☐ThrowPlaces: In the flow On the boundaryCatchingThowingTask 1
25 Timer Start EventThe process starts when a specific time-date or a specific cycle (e.g., every Monday at 9am), defined by a trigger, occursOne or more triggers can be definedAvailable schedule policies:Predefined (Every day, Once a week, Specific date etc.)Custom (using a Cron expression)
26 Timer Intermediate Event If used within the main flow, it acts as a delay mechanismIf placed on an activity boundary, is used for exception handling changing the Normal Flow into an Exception FlowTwo schedule policies:Relative (to the process flow and to the Active state of the activity)Absolute (by specifying a date)
27 Timer Start and Intermediate Event Timer Start Event:A timer triggers the startTimer Catching Intermediate Event:The process stops and waits for the timerTask 1Task 2A timer triggers the restart of the process
28 Conditional Event Triggers a process based on the value of a condition The condition, due to its complexity, will not be defined at BPM level but in the underlying Web Application development levelTypes: Start Intermediate ☐EndPurposes: Catch ☐ThrowPlaces: In the flow On the boundaryCatchingThowingTask 1
29 Conditional Start Event Is triggered when a Condition become true. The ConditionExpression for the Event must become false and then true before the Event can be triggered again.
30 Conditional Intermediate Event If used within the main flow, causes the Process to stop and wait for the condition to become trueIf placed on an activity boundary and is used for exception handling changing the Normal Flow into an Exception Flow
31 Message event Receives and sends messages from/to the process Used to connect to processes defined in different flowsTypes: Start Intermediate EndPurposes: Catch ThrowPlaces: In the flow On the boundaryCatchingThowingInvestigare se il Message Flow è obbligatorioTask 1
32 Message Start EventA message arrives from a participant , is catched and triggers the start of the Process
33 Message Catching Intermediate Event If used within the main flow, causes the Process to stop and wait for the messageIf placed on an activity boundary and is used for exception handling changing the Normal Flow into an Exception FlowSpiegare Exception Flow
34 Message Throwing Intermediate Event If used within the main flow, causes the Process to send a message and to continue the flow
35 Message End EventA message is thrown and the process is ended
36 Message Start and Intermediate Event Message Catching Intermediate Event:The process stops and waits for the messageTask 1Task 2,5Message Throwing Intermediate Event:A message is sentA new message arrives and the process restarts
37 Signal EventA Signal is for general communication within and across Process Levels, across Pools, and between Business Process DiagramsA signal is not a message, which has a specific target, but is a broadcastA signal is defined by:NameA set of parameters to show or editMultiple processes can have events that are triggered from the same broadcasted signal
38 Signal Event Types: Start Intermediate End Purposes: Catch Throw Places: In the flow On the boundaryCatchingThowingTask 1
39 Signal Start EventA signal, that has been broadcast from another process, arrives and triggers the start of the process that is listening for catching that type of signal
40 Signal Catching Intermediate Event If used within the main flow, causes the Process to stop and wait for the signalIf placed on an activity boundary and is used for exception handling changing the Normal Flow into an Exception Flow
41 Signal Throwing Intermediate Event If used within the main flow, causes the Process to send a signal and to continue the flow
42 Signal End EventA signal is thrown at the conclusion of the process
43 Signal Start and End Event Task 1Task 2Signal 1Signal End Event:The process ends throwing the signal (Signal 1)Task 1Signal Start Event:The process starts catching the signal (only Signal 1)Signal 1Task 1Signal 2Task 1Signal 3Task 1Signal 1
44 Message FlowA Message Flow is used to show the flow of messages between two Participants of ProcessA Message Flow can connect to the boundary of the Pool or to an object within the PoolMessage Flow are not allowed between objects within a single Pool
45 Link EventA Link is a mechanism for connecting two sections of a Process.Link Events can be used to create looping situations or to avoid long Sequence Flow lines.Link Event uses are limited to a single Process levelPaired Intermediate Events can also be used as “Off-Page Connectors” for printing a Process across multiple pages.Can also be used as generic “Go To” objects within the Process level.There can be multiple Source Link Events, but there can only be one Target Link Event.
46 Link Event Types: ☐Start Intermediate ☐End Purposes: Catch Throw Places: In the flow ☐On the boundaryCatchingThowing
47 Error event Triggers a process based on a named error Types: ☐Start Intermediate EndPurposes: Catch ThrowPlaces: In the flow On the boundaryCatchingThowingTask 1
48 Error Intermediate Event Can only be attached to the boundary of an activity, thus it catches a named error, or to any error if a name is not specified
49 Error End EventIndicates that a named Error should be generated and thrown.The Error will be caught by the Error intermediate event with the same ErrorCode or no ErrorCode that is on the boundary of the nearest enclosing parent activity (hierarchically). The behavior of the process is unspecified if no activity in the Process has such an Error intermediate event. The system executing the process may define additional Error handling in this case, a common one being termination of the process instance
50 CompensationCompensation is concerned with 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 triggered using a compensation throw Event, which can either be an Intermediate or an End Event.The Activity which needs to be compensated is referenced. If the Activity is clear from the context, it doesn’t have to be specified and defaults to the current Activity.If no Activity is specified in a “global” context, all completed Activities in the Process are compensated.
51 Compensation EventCatch or throws an event to compensate one or more activitiesTypes: ☐Start Intermediate EndPurposes: Catch ThrowPlaces: In the flow On the boundaryCatchingThowingTask 1
52 Compensation Catching Intermediate Event Can only be placed on an activity boundary, the Event is triggered by a thrown compensation that identifies the activity or to a broadcast compensation
53 Compensation Throwing Intermediate and End Event When used in the main flow, indicates that a Compensation is necessary.If the Event identifies an activity, then that is the activity (and no other) that will be compensated. Otherwise, the compensation is broadcast to all activities that have completed within the Process Instance, including the top- level Process and including all Sub-Processes.Each completed activity that is subject to compensation will be compensated, in the reverse order of the completion of the activities.To be compensated, an activity MUST have a Compensation Intermediate Event attached to its boundary.
54 Terminate EventIndicates that all activities in the Process should be immediately ended. This includes all instances of Multi- Instances. The Process is ended without compensation or event handling.Types: ☐Start ☐Intermediate EndPurposes: ☐Catch ThrowPlaces: In the flow ☐On the boundaryCatchingThowing
55 Cancel Event Is used within a Transaction Sub-Process. Indicates that the Transaction should be cancelled and will trigger a Cancel Intermediate Event attached to the Sub- Process boundary.Types: ☐Start Intermediate EndPurposes: Catch ThrowPlaces: In the flow On the boundaryCatchingThowingTask 1
56 Multiple EventThis means that there are multiple ways of triggering the Process or multiple events thrownTypes: Start Intermediate EndPurposes: Catch ThrowPlaces: In the flow On the boundaryCatchingThowingTask 1
57 Multiple Start EventThere are multiple ways of triggering the Process. Only one of them will be required to start the Process. The attributes of the Start Event will define which of the other types of Triggers apply.
58 Multiple Catching or Throwing Intermediate Event There are multiple Triggers assigned to the Event.If used within normal flow, the Event can “catch” the Trigger.When attached to the boundary of an activity, the Event can only “catch” the Trigger and only one of the assigned Triggers is required.
59 Multiple Throwing Intermediate and End Event There are multiple Triggers assigned to the Event.If used within normal flow, the Event “throws” the Triggers and all the assigned Triggers will be thrown.
60 Exclusive gateway (Event-based) The Event-Based Exclusive Gateway is:Similar to the Data-Based gatewayThe available set of gates is based on events that occurs at that point in the processThe event that follow the gateway determines the chosen pathThe first event triggered wins
61 Exclusive Event-based gateway Timer Intermediate Event:A timer triggers the gateway gateTask 2Conditional Intermediate Event:A condition true value triggers the gateway gateTask 1Task 3Task 4Message Catching Intermediate Event:A message arrives and triggers the gateway gate
62 Sub-ProcessIs a compound activity in that it has detail that is defined as a flow of other activitiesEnables hierarchical process developmentPoints directly to a separately defined processDefines its own input/output parameters and exposes them when called/executedIs started from a None Start Event, if more than once one will be chosenCan be multi instanced in:Loop: defined by a while conditionParallel: defined by a count parameter passed as inputSerial: defined by a count parameter passed as input
66 References and useful links WebRatio Official Site (http://www.webratio.com)WebRatio Official Wiki (http://wiki.webratio.com)- “WebRatio 6 - Getting started”- “WebRatio 6 - Tutorial - Vacation Request”BPMN Official Site (http://www.bpmn.org/)Bruce Silver - “BPMN Method & Style” (http://www.bpmnstyle.com/)Bruce Silver is a well-known BPM industry analyst and consultant, the founder and principal at BPMessentials, the leading provider of BPMN training, and a participant in the BPMN 2.0 development team in OMG.