2 09/11/2013 WebRatio 6 BPM WebRatio 6 BPM permits you to: Model and Document your processes Execute and Validate your processes by instantly prototyping Developing, Improving and Refining your processes and create a complete Web application
3 09/11/2013 What is BPMN? BPMN is flow-chart based notation for defining Business Processes Community standard The current version is 1.2, with a major revision process for 2.0 in progress Covers three different levels of process modeling: Process Maps – simple flow charts of the activities Process Descriptions – flow charts extended with additional information, but not enough to fully define actual performance Process Models – flow charts extended with enough information so that the process can be analyzed, simulated, and/or executed
4 09/11/2013 Basic concepts Small 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 Objects Events, Activities, Gateways Connecting Objects Sequence Flow, Message Flow, Association Swimlanes Pool, Lane Artifacts (Artefacts) Data Object, Group, Annotation It is also allowed to make a custom type of a Flow Object or an Artifact to make the diagram more understandable.
5 09/11/2013 Pool and lanes A Pool: 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 Pool Is 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)
6 09/11/2013 Sequence flow A Sequence Flow is used to show the order that activities will be performed in a Process The source and target must be one of the following objects: Events Activities Gateways A Sequence Flow cannot cross a Sub-Process boundary or a Pool boundary
7 09/11/2013 How to read diagrams A useful concept that helps the action of reading of a diagram is the Token The start of a process generates a Token that must eventually be consumed at the conclusion of the process A Token will traverse the Sequence Flow and pass through the Flow Objects in the Process The behavior of the Process can be described by tracking the path(s) of the Token through the Process Multiple Tokens may exist because of concurrent Process instances or the dividing of the Token for parallel processing within a single Process instance
8 09/11/2013 Activities An activity: is work that is performed within a business process Can be a: Task Sub-Process Can be performed once or can have internally defined loops
9 09/11/2013 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 application User: by a human performer with the assistance of a software application and is scheduled through a task list manager of some sort Has its own state: Ready: waiting to be worked Active: someone is working on it Completed: someone has finished working on it Aborted: someone has cancelled it Defines the parameters to show and to edit
10 09/11/2013 Basic flow control - Sequence
11 09/11/2013 Parameters A parameter is: A simple property that stores an information managed by the process Used when there is the need to take a decision, sending a message and so on Defined by: Name Type: simple (string, integer, etc.) or complex (Business object) Available values Selection policy (single or multiple) Defined at pool level Replied for each process instance
12 09/11/2013 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 object you have to use two or more properties to define an object Defined by properties A property is a simple object defined by: Name Type (string, integer, etc.) Available values Selection policy (single or multiple) Defined at project level
13 09/11/2013 Gateways A gateway: Is used to control how sequence flows interact as they converge and diverge within a process Can be executed: User: manually by a user choosing the gate using a set of parameters to show or edit like an activity Service: automatically as a service with a set of condition parameters to test Is divided into types: Exclusive Inclusive Parallel
14 09/11/2013 Exclusive gateway An exclusive gateway is: a location within a business process where the sequence flow can take two or more alternative paths basically the fork in the road for a process Only one of the possible outgoing paths can be taken when the process is performed Is divided in two types: Data-based Event-based
15 09/11/2013 Exclusive gateway (Data-based) The Data-Based Exclusive Gateway is: the most commonly used type of gateway The available set of gates can be based on: The name (Literal) of the outgoing Sequence Flow of the gateway The boolean expression contained in the Expression attribute of the outgoing Sequence Flow of the gateway These expressions use the input parameters of the gateway to determine or calculate which path should be taken (hence the name Data-Based)
16 09/11/2013 Exclusive Data-based gateway
17 09/11/2013 Inclusive gateway An inclusive gateway is: A decision where there is more than one possible outcome Usually followed by a corresponding merging inclusive gateway The available set of gates can be based on: The name (Literal) of the outgoing Sequence Flow of the gateway The boolean expression contained in the Expression attribute of the outgoing Sequence Flow of the gateway These expressions use the input parameters of the gateway to determine or calculate which path should be taken
18 09/11/2013 Inclusive Gateway
19 09/11/2013 Parallel gateway A parallel gateway is: a place in the process where multiple parallel paths are defined is also used to synchronize (wait for) parallel paths
20 09/11/2013 Parallel Gateway
21 09/11/2013 Events An 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 line interrupt/resume a flow. Is drawn as a circle with a double thin black line end a flow. Is drawn as a circle with a single thick black line Can be one of these types: None, Message, Timer, Signal, Conditional, Link, Error, Cancel, Terminate, Compensation Can be used to catch or throw the event Can be defined as standalone or on the boundary of an activity as intermediate event
22 09/11/2013 Exception Handling Intermediate 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 Event Continued after the flow has proceeded from the Event Events of type Timer, Error, Message and Signal can be used
23 09/11/2013 None Event Simply starts, interrupts or ends the flow Types: Start Intermediate End Purposes: Catch Throw Places: In the flow On the boundary CatchingThrowing
24 09/11/2013 Timer event Triggers an event based on specific time-date or specific cycle Types: Start Intermediate End Purposes: Catch Throw Places: In the flow On the boundary CatchingThowing
25 09/11/2013 Timer Start Event The process starts when a specific time-date or a specific cycle (e.g., every Monday at 9am), defined by a trigger, occurs One or more triggers can be defined Available schedule policies: Predefined (Every day, Once a week, Specific date etc.) Custom (using a Cron expression)
26 09/11/2013 Timer Intermediate Event If used within the main flow, it acts as a delay mechanism If placed on an activity boundary, is used for exception handling changing the Normal Flow into an Exception Flow Two schedule policies: Relative (to the process flow and to the Active state of the activity) Absolute (by specifying a date)
27 09/11/2013 Timer Start and Intermediate Event
28 09/11/2013 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 level Types: Start Intermediate End Purposes: Catch Throw Places: In the flow On the boundary CatchingThowing
29 09/11/2013 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 09/11/2013 Conditional Intermediate Event If used within the main flow, causes the Process to stop and wait for the condition to become true If placed on an activity boundary and is used for exception handling changing the Normal Flow into an Exception Flow
31 09/11/2013 Message event Receives and sends messages from/to the process Used to connect to processes defined in different flows Types: Start Intermediate End Purposes: Catch Throw Places: In the flow On the boundary CatchingThowing
32 09/11/2013 Message Start Event A message arrives from a participant, is catched and triggers the start of the Process
33 09/11/2013 Message Catching Intermediate Event If used within the main flow, causes the Process to stop and wait for the message If placed on an activity boundary and is used for exception handling changing the Normal Flow into an Exception Flow
34 09/11/2013 Message Throwing Intermediate Event If used within the main flow, causes the Process to send a message and to continue the flow
35 09/11/2013 Message End Event A message is thrown and the process is ended
36 09/11/2013 Message Start and Intermediate Event,5
37 09/11/2013 Signal Event A Signal is for general communication within and across Process Levels, across Pools, and between Business Process Diagrams A signal is not a message, which has a specific target, but is a broadcast A signal is defined by: Name A set of parameters to show or edit Multiple processes can have events that are triggered from the same broadcasted signal
38 09/11/2013 Signal Event Types: Start Intermediate End Purposes: Catch Throw Places: In the flow On the boundary CatchingThowing
39 09/11/2013 Signal Start Event A 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 09/11/2013 Signal Catching Intermediate Event If used within the main flow, causes the Process to stop and wait for the signal If placed on an activity boundary and is used for exception handling changing the Normal Flow into an Exception Flow
41 09/11/2013 Signal Throwing Intermediate Event If used within the main flow, causes the Process to send a signal and to continue the flow
42 09/11/2013 Signal End Event A signal is thrown at the conclusion of the process
43 09/11/2013 Signal Start and End Event
44 09/11/2013 Message Flow A Message Flow is used to show the flow of messages between two Participants of Process A Message Flow can connect to the boundary of the Pool or to an object within the Pool Message Flow are not allowed between objects within a single Pool
45 09/11/2013 Link Event A 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 level Paired 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 09/11/2013 Link Event Types: Start Intermediate End Purposes: Catch Throw Places: In the flow On the boundary CatchingThowing
47 09/11/2013 Error event Triggers a process based on a named error Types: Start Intermediate End Purposes: Catch Throw Places: In the flow On the boundary CatchingThowing
48 09/11/2013 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 09/11/2013 Error End Event Indicates 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 09/11/2013 Compensation Compensation 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 doesnt 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 09/11/2013 Compensation Event Catch or throws an event to compensate one or more activities Types: Start Intermediate End Purposes: Catch Throw Places: In the flow On the boundary CatchingThowing
52 09/11/2013 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 09/11/2013 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 09/11/2013 Terminate Event Indicates 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 End Purposes: Catch Throw Places: In the flow On the boundary CatchingThowing
55 09/11/2013 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 End Purposes: Catch Throw Places: In the flow On the boundary CatchingThowing
56 09/11/2013 Multiple Event This means that there are multiple ways of triggering the Process or multiple events thrown Types: Start Intermediate End Purposes: Catch Throw Places: In the flow On the boundary CatchingThowing
57 09/11/2013 Multiple Start Event There 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 09/11/2013 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 09/11/2013 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 09/11/2013 Exclusive gateway (Event-based) The Event-Based Exclusive Gateway is: Similar to the Data-Based gateway The available set of gates is based on events that occurs at that point in the process The event that follow the gateway determines the chosen path The first event triggered wins
61 09/11/2013 Exclusive Event-based gateway
62 09/11/2013 Sub-Process Is a compound activity in that it has detail that is defined as a flow of other activities Enables hierarchical process development Points directly to a separately defined process Defines its own input/output parameters and exposes them when called/executed Is started from a None Start Event, if more than once one will be chosen Can be multi instanced in: Loop: defined by a while condition Parallel: defined by a count parameter passed as input Serial: defined by a count parameter passed as input
63 09/11/2013 Sub-Process
64 09/11/2013 Serial Sub-Processes
65 09/11/2013 Parallel Sub-Processes
66 09/11/2013 References and useful links WebRatio Official Site (http://www.webratio.com)http://www.webratio.com) WebRatio Official Wiki (http://wiki.webratio.com)http://wiki.webratio.com) - WebRatio 6 - Getting started - WebRatio 6 - Tutorial - Vacation Request BPMN Official Site (http://www.bpmn.org/)http://www.bpmn.org/ Bruce Silver - BPMN Method & Style (http://www.bpmnstyle.com/)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.