BPMN 2.0 Activities
Jump to navigation
Jump to search
BPMN Activity Basics
An Activity
- is work that is performed within a Business Process
- can be atomic or non-atomic (compound)
- represent points in a Process flow where work is performed
- is executable element of a BPMN
Process.
Activity can be:
- Task
- an atomic Activity within a Process flow
- is used when the work in the Process cannot be broken down to a finer level of detail
- an end-user or applications are used to perform the Task when it is executed
- Sub-Process
- Call Activity
- allows the inclusion of re-usable Tasks and Processes in the diagram
Types of Tasks
Receive Task
- Waits for a Message to arrive from an external Participant
- Once the Message has been received, the Task is completed
- Starts the process
- MUST NOT have any incoming Sequence Flow
- Instantiate attribute MUST be set to true
User Task
- A typical “workflow” Task where a human performer performs the Task with the assistance of a software application
- The task is scheduled through a task list manager of some sort
Examples:
- Phone operator updates customer record
- User changing their password
Manual Task
- Is expected to be performed without the aid of any business process execution engine or any application
Examples:
- A telephone technician installing a telephone at a customer location
Business Rule Task
- Provides a mechanism for the Process to provide input to a Business Rules Engine and to get the output of calculations that the Business Rules Engine might provide
Script Task
- Is executed by a business process engine
- The modeler or implementer defines a script in a language that the engine can interpret
- When the Task is ready to start, the engine will execute the script
- When the script is completed, the Task will also be completed.
Sub-process Markers
- A Sub-Process is an Activity whose internal details have been modeled using Activities, Gateways, Events, and Sequence Flows
- A Sub-Process is a graphical object within a Process, but it also can be “opened up” to show a lower-level Process
Types of Sub-Processes
Sub-process Markers
Event Sub-Process
- An Event Sub-Process is a specialized Sub-Process that is used within a Process (or Sub-Process)
- The triggeredByEvent attribute is set to true
- An Event Sub-Process is not part of the normal flow of its parent Process—there are no incoming or outgoing Sequence Flows.
- It MAY occur many times.
- Event Sub-Process has a Start Event with a trigger:
- Message, Error, Escalation, Compensation, Conditional, Signal, and Multiple
- An Event Sub-Process object shares the same basic shape as the Sub-Process object, which is a rounded rectangle
When an Event Sub-Process is triggered the parent Process:
- can be interrupted
- can continue its work (not interrupted)
This is determined by the type of Start Event that is used
Transaction
- Is a specialized type of Sub-Process that will have a special behavior that is controlled through a transaction protocol (such as WS-Transaction)
- The boundary of the Sub-Process will be double-lined to indicate that it is a Transaction
- The behavior at the end of a successful Transaction Sub-Process is slightly different than that of a normal Sub-Process
- When each path of the Transaction Sub-Process reaches a non-Cancel End Event(s), the flow does not
immediately move back up to the higher-level parent Process, as does a normal Sub-Process
- First, the transaction protocol needs to verify that all the Participants have successfully completed their end of the Transaction
- Most of the time this will be true and the flow will then move up to the higher-level Process
- But it is possible that one of the Participants can end up with a problem that causes a Cancel or a Hazard
- In this case, the flow will then move to the appropriate Intermediate Event, even though it had apparently finished successfully
Ad-Hoc
- A group of Activities that have no REQUIRED sequence relationships
- A set of Activities can be defined for the Process, but the sequence and number of performances for the Activities is determined by the performers of the Activities.
Call Activity
- A Call Activity identifies a point in the Process where a global Process or a Global Task is used
- The Call Activity acts as a ‘wrapper’ for the invocation of a global Process or Global Task within the execution
- The activation of a call Activity results in the transfer of control to the called global Process or Global Task
Loops
Upstream Sequence Flow
Standard Loop
- The Activity will loop as long as the boolean condition is true
- The condition is evaluated for every loop iteration, and MAY be evaluated at the beginning or at the end of the iteration
- In addition, a numeric cap can be optionally specified
- The number of iterations MAY NOT exceed this cap
Multi-Instance
- The instances MAY execute in parallel or MAY be sequential.
- Either an Expression is used to specify or calculate the desired number of instances or a data driven setup can be used
- In that case a data input can be specified, which is able to handle a collection of data
- The number of items in the collection determines the number of Activity instances
- This data input can be produced by an input Data Association
- The modeler can also configure this loop to control the tokens produced.