Summary Of The BPMN Graphical Objects - Notes of BPMN (Part 2)
Written by coregps on Saturday, January 8th, 2005 in Workflow.
If you're new here, you may want to subscribe to my RSS feed. Thanks for visiting!
BPMN development goals:
- Simple and adoptable by business analysts
- Depict complex business processes and map to BPM execution languages.
BPD Core Element Set - the basic categories of elements:
| Flow Objects, which are the main graphical elements to define the behavior of a Business Process. | ||
| Events | An event is sth. that ?happens? during the course of a business process. These events affect the flow of the process and usually have a cause or an impact. There are 3 types of Events: Start, Intermediate, and End. | ![]() |
| Activities | An activity is a generic term for work that company performs, which can be atomic or non-atomic. The types of activities that are a part of a Process Model are: Process, Sub-Process, and Task. Tasks and sub-Processes are rounded rectangles. Processes are either unbounded or a contained with a pool. | ![]() |
| Gateways | A Gateway is used to control the divergence and convergence of Sequence Flow. | ![]() |
| Connecting Objects, which provide 3 ways of connecting the Flow Objects to each other or other information. | ||
| Sequence Flow | A Sequence Flow is used to show the order that activities will be performed in a Process. | ![]() |
| Message Flow | A Message Flow is used to show the flow of messages between two participants that are prepared to send and receive them. | ![]() |
| Association | An Association is used to associate information with Flow Objects. | ![]() |
| Swimlanes, which provide 2 ways of grouping the primary modeling elements. | ||
| Pools | A Pool represents a Participant in a Process. It is also acts as a container for partitioning a set of activities from other pools. | ![]() |
| Lanes | A Lane is a sub-partition within a Pool which used to organize and categorize activities. | ![]() |
| Artifacts, which are used to provide additional information about the Process. | ||
| Data Object | They provide information about what activities require to be performed and/or what they produce, but do not effect on the Sequence Flow or Message Flow of the Process directly. | ![]() |
| Group | A box around a group of objects for documentation purposes | ![]() |
| Annotation | Text Annotations are a mechanism for a modeler to provide additional information for the reader of a BPMN Diagram. | ![]() |
BPD Complete Set:
| Event | Type Dimension\Flow Dimension | Start![]() |
Intermediate![]() |
End![]() |
||
| Message | ![]() |
![]() |
![]() |
|||
| Timer | ![]() |
![]() |
||||
| Error | ![]() |
![]() |
||||
| Cancel | ![]() |
![]() |
||||
| Compensation | ![]() |
![]() |
||||
| Rule | ![]() |
![]() |
||||
| Link | ![]() |
![]() |
![]() |
|||
| Multiple | ![]() |
![]() |
![]() |
|||
| Terminate | ![]() |
|||||
| Task (Atomic) | A task is an atomic activity that is included within a Process. | ![]() |
||||
| Process/ Sub-Process (non-atomic) | Collapsed Sub-Process | The details of it are not visible in the Diagram. | ![]() |
|||
| Expanded Sub-Process | The boundary of the Sub-Process is expanded and the details are visible within its boundary. | ![]() |
||||
| Gateway | XOR | Exclusive decision and merging. | Data-Based:![]() ![]() Event-Based: ![]() |
|||
| OR | Inclusive decision and merging | ![]() |
||||
| Complex | Complex conditions and situations | ![]() |
||||
| AND | Forking and Joining | ![]() |
||||
| Sequence Flow | Normal Flow | Uncontrolled flow | Which refers to flow that is not affected by any conditions or does not pass through a Gateway. | ![]() |
||
| Conditional flow | Which have condition expressions that are evaluated at runtime to determine whether or not the flow will be used. | ![]() |
||||
| Default flow | For Data-Based Exclusive Decisions or Inclusive Decisions, one type of flow is the Default condition flow. | ![]() |
||||
| Exception Flow | Which occurs outside the Normal Flow of the Process and is based upon an Intermediate Event that occurs during the performance of the Process. | ![]() |
||||
| Message Flow | Which is used to show the flow of messages between two entities that are prepared to send and receive them. | ![]() |
||||
| Compensation Association | Which occurs outside the Normal Flow of the Process and is based upon an event (a Cancel Intermediate Event) that is triggered through the failure of a Transaction or a Compensate Event. | ![]() |
||||
| Data Object | Which provide information about what activities require to be performed and/or what they produce, but do not effect the Sequence Flow directly. | ![]() |
||||
| Fork (AND-Split) | BPMN uses the term ?fork? to refer to the dividing of a path into two or more parallel paths. It is a place in the Process where activities can be performed concurrently. | ![]() ![]() |
||||
| Join (AND-Join) | BPMN uses the term ?join? to refer to the combining of two or more parallel paths into one path | ![]() |
||||
| Decision, Branching Point; (OR-Split) | Exclusive (only one of a set of alternatives may be chosen during runtime) | Data-Based | Which represents a branching point where Alternatives are based on conditional expressions contained within the outgoing Sequence Flow. | ![]() |
||
| Event-Based | Which represents a branching point where Alternatives are based on an Event that occurs at that point in the Process. There are 2 options for receiving Messages: Tasks of Type Receive, Intermediate Events of Type Message. | ![]() ![]() |
||||
| Inclusive | Which represents a branching point where Alternatives are based on conditional expressions contained within the outgoing Sequence Flow. Each path is independent, all combinations of the paths may be taken. | ![]() ![]() |
||||
| Merging (OR-Join) | BPMN uses the term ?merge? to refer to the exclusive combining of two or more paths into one path. | ![]() |
||||
| Looping | Activity Looping | The attributes of Tasks and Sub-Processes will determine if they are repeated or performed once. There are 2 types of loops: Standard and Multi-Instance. | ![]() |
|||
| Sequence Flow Looping | Loops can be created by connecting a Sequence Flow to an ?upstream? object. | ![]() |
||||
| Multiple Instances | The attributes of Tasks and Sub-Processes will determine if they are repeated or performed once. | ![]() |
||||
| Process Break | A Process Break is a location in the Process that shows where an expected delay will occur within a Process. | ![]() |
||||
| Transaction | Which is a Sub-Process that is supported by special protocol that insures that all parties involved have complete agreement that the activity should be completed or cancelled. | ![]() |
||||
| Nested / Embedded Sub-Process | Which is an activity that shares the same set of data as its parent process. | |||||
| Group | A box around a group of activities for documentation purposes | ![]() |
||||
| Off-Page Connector | Generally used for printing, this object will show where the Sequence Flow leaves one page and then restarts on the next page. | ![]() |
||||
| Association | An Association is used to associate information with Flow Objects. | ![]() |
||||
| Text Annotation | Text Annotations are a mechanism for a modeler to provide additional information for the reader of a BPMN Diagram. | ![]() |
||||
| Pool | A Pool represents a Participant in a Process. It is also acts as a container for partitioning a set of activities from other pools. | ![]() |
||||
| Lanes | A Lane is a sub-partition within a Pool which used to organize and categorize activities. | ![]() |
||||
Sequence Flow Object Connection Rules (The Y indicates that the object listed in the row can connect to the object listed in the column.)
| From\To | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Y | Y | Y | Y | Y | |
![]() |
Y | Y | Y | Y | Y | |
![]() |
Y | Y | Y | Y | Y | |
![]() |
Y | Y | Y | Y | Y | |
![]() |
Y | Y | Y | Y | Y | |
![]() |
Message Flow Object Connection Rules (The Y indicates that the object listed in the row can connect to the object listed in the column.)
| From\To | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
||||||
![]() |
Y | Y | Y | Y | Y | |
![]() |
Y | Y | Y | Y | Y | |
![]() |
Y | Y | Y | Y | Y | |
![]() |
||||||
![]() |
Y | Y | Y | Y | Y |
Business Process Diagram Attributes
| Attributes | Description |
| Id: Object | This is a unique Id that distinguishes the Diagram from other Diagrams. |
| Name: String | Name is an attribute that is text description of the Diagram. |
| Version (0-1):String | This defines the Version number of the Diagram |
| Author (0-1):String | This holds the name of the author of the Diagram. |
| Language (0-1):String | This holds the name of the language in which text is written. (default:English) |
| ExpressionLanguage (0-1):String | A Language MAY be provided so that the syntax of expressions used in the Diagram can be understood. |
| QueryLanguage (0-1): String | A Language MAY be provided so that the syntax of queries used in the Diagram can be understood. |
| CreationDate (0-1): Date | This defines the data on which the Diagram was created (for the current ver.) |
| ModificationDate (0-1):Date | This defines the data on which the Diagram was last modified (for this ver.) |
| Pools (1-n): Pool | A BPD SHALL contain one or more Pools. |
| Documentation (0-1): String | The modeler MAY add optional text documentation about the Diagram. |
A Process is an activity performed within a company or organization. In BPMN a Process is depicted as a graph of Flow Objects, which are a set of other activities and the controls that sequence them.
Process Attributes:
| Attributes | Description |
| Id: Object | This is a unique Id that identifies the object from other objects within the Diagram. |
| Name: String | Name is an attribute that is text description of the object. |
| ProcessType (None | Private | Abstrct | Collaboration) None: String | ProcessType is an attribute that provides information about which lower-level language the Pool will be mapped. A Private ProcessType -> an executable BPEL4WS process, An Abstract ProcessType -> an abstract BPEL4WS process, A Collaboration ProcessType -> ebXML or WS Choreography. |
| Status (None | Ready | Active | Cancelled | Aborting | Aborted | Completing | Completed) None : String | The Status of a Process is determined when the Process is being executed by a process engine. |
| GraphicalElements (0-n) : Object | The GraphicalElements attribute identifies all of the objects that are contained within the Business Process. |
| Assignments (0-n): Assignment | One or more assignment expressions MAY be made for the object. The Assignment SHALL be performed as defined by the AssignTime attribute. |
| Properties (0-n): Property | Modeler-defined Properties MAY be added to a Process. These Properties are ?local? to the Process. All Tasks, Sub-Process objects, and Sub-Processes that are embedded SHALL have access to these Properties. |
| AdHoc False: Boolean | This specifies whether the Process is Ad Hoc or not. The activities within an Ad Hoc Process are not controlled or sequenced in a particular order, their performance is determined by the performers of the activities. |
| [AdHoc = True only] AdHocOrdering (0-1) (Sequential | Parallel) Parallel: String | If the Process is Ad Hoc, then the AdHocOrdering attribute MUST be included. This attribute defines if the activities within the Process can be performed in Parallel or must be performed sequentially. The default setting is Parallel and the setting of Sequential is a restriction on the performance that may be required due to shared resources. |
| [AdHoc = True only] AdHocCompletionCondition(0-1):Expression | If the Process is Ad Hoc, then the AdHocCompletionCondition attribute MUST be included. This attribute defines the conditions when the Process will end. |
| SuppressJoinFailure False: Boolean | This attribute is included for mapping to BPEL4WS. This specifies whether or not a BPEL4WS joinFailure fault will be suppressed for all activities in the BPEL4WS process. |
| EnableInstanceCompensation False:Boolean | This attribute is included for mapping to BPEL4WS. It specifies whether or not a compensation can be performed after the Process has completed normally. |
| Categories (0-n): String | The modeler MAY add one or more defined Categories that can be used for purposes such as reporting and analysis. |
| Documentation (0-1):String | The modeler MAY add text documentation about the Process. |






































































