You are on page 1of 1

Check for the latest version at: http://bpmn.itposter.

net

Sequence Flow and message flow rules


Only those objects that can have an incoming and/or outgoing Sequence Flow /
An event is something that happens during the process. These events affect the An activity is a generic term of work that company performs. An activity Message Flow are shown on tables.
A gateway is used to split or merge multiple process There are three ways of connecting Flow objects (Events, Activities,
flow of the process and usually have a cause (trigger) or an impact (result). Examples: can be atomic (task) or compound (process, sub-process). Examples:
flows. Thus it will determine branching, forking, Gateways) to each other or other information using sequence flow, To: To:
'Email received', '3 o'clock', 'Warehouse empty', 'Critical error',... 'Send a letter', 'Write a report', 'Calculate the interests',...
merging and joining of paths. Examples: 'Condition true? message flow or association.
A task is used to represent the yes/no', 'Choose colour? red/green/blue',...
Process Expanded
activity on the lowest abstraction Graphical connecting objects
sub-process
level.
Collapsed Normal A Sequence Flow is used to show the order that activities will be
sub-process Transaction Gateway control types sequence flow performed in a Process.
More information about
Conditional

From:
transaction and compensation Sequence Flow can have condition expressions that are evaluated at

From:
Data based exclusive decision or
Task attribute in Compensation XOR merging. Both symbols have equal sequence flow runtime to determine whether or not the flow will be used.
The Start Event indicates where a particular process will start. Intermediate (DATA) meaning. See also Conditional flow.
Association. Default For Data-Based Exclusive Decisions or Inclusive Decisions, one type
Events occur between a Start Event and an End Event. It will affect the flow of flow is the Default condition flow. This flow will be used only if all
of the process, but will not start or (directly) terminate the process. The End sequence flow the other outgoing conditional flow is not true at runtime.
Event indicates where a process will end. XOR Event based exclusive decision or A Message Flow is used to show the flow of messages between two
A message arrives from a participant and triggers the Event. This causes Task/Subprocess special attributes (EVENT) merging. Message flow participants that are prepared to send and receive them. In BPMN,
two separate Pools in the Diagram can represent the two participants.
process to {start,continue,end} if it was waiting for a message, or changes
An Association (directed, non-directed) is used to associate
the flow of exception handling. The task or sub-process is repeated.
Data based inclusive decision or Association information with Flow Objects. Text and graphical non-Flow Objects
The tasks in the sub-process can not be connected with the
OR merging. can be associated with the Flow objects.
A specific time or cycle can be set that will trigger the start of the Process sequence flow at the design time.
or continue the process. Intermediate timer can be used to model the time-
based delays. Multiple instances of task or sub-process will be created. COM- Complex condition (a combination of
PLEX basic conditions)
This type of End indicates that a named Error should be generated. This The symbol represents a compensation task or sub-process.
Error will be caught by an Intermediate Event within the Event Context.
Parallel forking and joining
AND (synchronization). The Sequence Flow mechanisms is divided into four types: Normal flow, Exception In case of transactions it is desired that all activities which constitute
This type of Event is used within a Transaction Sub-Process. This type of
Event MUST be attached to the boundary of a Sub-Process. It SHALL be flow, Link Events and Ad Hoc (no flow). Within these types of flow, BPMN is related a transaction are finished successfully. Otherwise the transaction fails
triggered if a Cancel End Event is reached within the Transaction Sub- to specific Workflow Patterns. and rollback (compensation) activities occur which undo done
Process. activities.
This is used for compensation handling--both setting and performing Normal sequence flow Ad Hoc
compensation. It calls for compensation if the Event is part of a Normal Artefacts are used to provide additional information about the process. If No flow Task
Flow. It reacts to a named compensation call when attached to the required, modellers and modelling tools are free to add new artefacts. Intermediate
boundary of an activity. Very useful for modelling roll-back actions within Examples of data objects: 'A letter', 'Email message', 'XML document', Compensation activity
the transaction. Pools and lanes are used to represent organizations, link used as Task A
'Confirmation',...
roles, systems and responsibilities. Examples: Intermediate link GOTO
This type of event is triggered when the conditions for a rule
A Transaction boundary
become true. Rules can be very useful to interrupt the loop process, for 'University', 'Sales division', 'Warehouse', 'ERP system',... used as GOTO Exception X
example: 'The number of repeats = N'. Set of standardized artefacts Undo task A
A Pool MUST contain 0 or 1 Until Loop Looped subprocess Start Successfull
A Link is a mechanism for connecting the end (Result) of one Data objects provide information about what activities are required to be business processes. transaction transaction

Lane Lane
Process to the start (Trigger) of another. Typically, these are triggered and/or what they produce. They are considered as Artefacts No Expanded sub-process Task B
Data object because they do not have any direct effect on the Sequence Flow or A Pool can contain 0 or more Error - compensation

Pool
two Sub-Processes within the same parent Process. It can be used, for A
example, when the working area (page) is too small go to another page. Message Flow of the Process. The state of the data object should also be lanes events cannot be
[state] set.
Exception flow Exception X Undo task B triggered
This type of event indicates that there are multiple ways of triggering the Two pools can only be connected Try again
The grouping can be used for documentation or analysis purposes.
with message flows. B
Process. Only one of them will be required to {start, continue, end} the Groups can also be used to identify the activities of a distributed
Process. Group transaction that is shown across Pools. A grouping of activities that does A Pool represents a participant in a process. It contains a business
not affect the Sequence or Message Flow. process and is used in B2B situations. Interrupt
This type of End indicates that all activities in the Process should be Exception X Transaction Handle through
Text Annotations are a mechanism for a modeller to provide additional loop rule
immediately ended. This includes all instances of Multi-Instances. The
Annotation Description A Lane is a sub-partition within a pool used to organize and exception other services
Process is ended without compensation or event handling. information for the reader of a BPMN Diagram. categorize activities. Failed transaction
B Collapsed adhoc sub-process Cancel - compensation
events are triggered
Wait a few minutes

There are two common mistakes when using time events. First, Multiple merge, uncontrolled flow
Gateways are connected only with sequence flows. Avoid also Normal sequence flow
starting events are often used instead of intermediate events.
When modelling Pools, sequence flows and start/end events are Lanes are often wrongly used in similar ways as Pools. They potential deadlock when using gateways.
Second, using intermediate events as a delay mechanism
often missing, because it is wrongly presumed that message instead of exception mechanism (representing the duration of a wrongly contain more business processes or contain message
flows substitute sequence flows. Additionally, sequence flows task) and vice-versa. flows between different lanes.
are incorrectly used to connect pools.
Message flow is not allowed Message flow cannot Exclusive choice with Simple merge,
A Pool can contain only one Parallel split, uncontrolled flow
Model the process in each Pool independently and afterwards within a process influence the gateway decision gateway uncontrolled flow
Time event used as a DELAY (1) process
define message flows between Pools.
Missing end event mechanism.

Lane A
Task A
Missing sequence flows Task C

Pool B
Decision Conditional flow not allowed
... Task A Task B ... Multiple choice

Lane B
information (necessary) here
Task B Task C from Pool X
Delay Task A Discriminator,
Pool A

No output flow from the task Parallel split,


Task A Task B Task C forking gateway Synchronization merging gateway
... exists.
Exception
Lane A

Task B Simple merge,


Message Message Sequence flows are not Task A
Time event representing uncontrolled flow
flow AD flow EB allowed between Pools
Pool A

task DURATION. The decision must Alter. 1


Lane B

Task B ... Start event instead of contain at least two


Task B Task C
Pool B

intermediate event used. Send message to output flows Alter. 2


Task D Task E Task F Message flow cannot be a
Pool X
gateway alternative
Alter. 3
Event based decision Complex decision
Missing start event (gateway)
Task C

Task A
Analysing
When using expanded sub-processes, sequence flows should decision
Starting and intermediate events can not be sources of information Multiple choice, inclusive
message flows. be connected to the boundaries of sub-processes. Processes
Analysts often wrongly model events and tasks. For and sub-processes should start and end properly! Task B decision gateway Synchronization merge, Example of a
example: events are wrongly modelled as tasks, task states Both examples are wrong - intermediate merging gateway deadlock
are modelled as new tasks. message events can not produce Message
message flows Sequence flow cannot cross from Pool X
the boundary of sub-process Send message
Task A is automatically Message A to Pool X
Task automatically finished at output
sequence flow. Message to Pool X
starts at input
Wrong positioning of
sequence flow Message B
Document X message event A Task A This poster is licensed under Creative Commons Attribution-
Task B Task C
Noncommercial-No Derivative Works 2.5 Slovenia License
Starting task Receiving Task A
... ...
A document X finished ... Task A Task B ...
The sub-process should The process should have an Authors:
B have a start event end event
Important note, explanation Gregor Polani & dr.Tomislav Rozman
The getting of document is represented Email: info@itposter.net
by incoming message flow University of Maribor
Warning or error in the BPMN model
Faculty of Electrical Engineering and Computer Science
Recommendation Institute of Informatics
Task A Task B Task C
Message A Message B
Document X Wrong model Poster version: 1.0.7 (13th November 2007)
Literature used: BPMN Specification 1.0 @ http://www.bpmi.org
... Task A ... Right (corrected) model
... Task A Task B ... http://bpmn.itposter.net
Event X
B

You might also like