<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=BPMN_2.0_Activities</id>
	<title>BPMN 2.0 Activities - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://training-course-material.com/index.php?action=history&amp;feed=atom&amp;title=BPMN_2.0_Activities"/>
	<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=BPMN_2.0_Activities&amp;action=history"/>
	<updated>2026-05-13T20:41:52Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://training-course-material.com/index.php?title=BPMN_2.0_Activities&amp;diff=24106&amp;oldid=prev</id>
		<title>Cesar Chew at 18:57, 25 November 2014</title>
		<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=BPMN_2.0_Activities&amp;diff=24106&amp;oldid=prev"/>
		<updated>2014-11-25T18:57:30Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Cat|BPMN|40}}&lt;br /&gt;
&lt;br /&gt;
== BPMN Activity Basics ==&lt;br /&gt;
An Activity&lt;br /&gt;
* is work that is performed within a Business Process&lt;br /&gt;
* can be atomic or non-atomic (compound)&lt;br /&gt;
* represent points in a Process flow where work is performed&lt;br /&gt;
* is executable element of a BPMN&lt;br /&gt;
Process.&lt;br /&gt;
&lt;br /&gt;
Activity can be:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Task&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** an atomic Activity within a Process flow&lt;br /&gt;
** is used when the work in the Process cannot be broken down to a finer level of detail&lt;br /&gt;
** an end-user or applications are used to perform the Task when it is executed&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Sub-Process&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Call Activity&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** allows the inclusion of re-usable Tasks and Processes in the diagram&lt;br /&gt;
&lt;br /&gt;
== Types of Tasks ==&lt;br /&gt;
=== Receive Task ===&lt;br /&gt;
[[File:Figure10-15-receive-task-object.png|100px]]&lt;br /&gt;
* Waits for a Message to arrive from an external Participant&lt;br /&gt;
* Once the Message has been received, the Task is completed&lt;br /&gt;
&lt;br /&gt;
[[File:Figure10-16-receive-task-object-that-instantiates-process.png|100px]]&lt;br /&gt;
* Starts the process&lt;br /&gt;
* MUST NOT have any incoming Sequence Flow&lt;br /&gt;
* Instantiate attribute MUST be set to true&lt;br /&gt;
&lt;br /&gt;
=== User Task ===&lt;br /&gt;
[[File:Figure10-17-user-task-object.png|100px]]&lt;br /&gt;
* A typical “workflow” Task where a human performer performs the Task with the assistance of a software application &lt;br /&gt;
* The task is scheduled through a task list manager of some sort&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
* Phone operator updates customer record&lt;br /&gt;
* User changing their password&lt;br /&gt;
&lt;br /&gt;
=== Manual Task ===&lt;br /&gt;
* Is expected to be performed without the aid of any business process execution engine or any application&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
* A telephone technician installing a telephone at a customer location&lt;br /&gt;
[[File:Figure10-18-manual-task-object.png|100px]]&lt;br /&gt;
&lt;br /&gt;
=== Business Rule Task ===&lt;br /&gt;
&lt;br /&gt;
[[File:Figure10-19-business-rule-task-object.png|100px]]&lt;br /&gt;
&lt;br /&gt;
* 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&lt;br /&gt;
&lt;br /&gt;
=== Script Task ===&lt;br /&gt;
&lt;br /&gt;
[[File:Figure10-20-script-task-object.png|100px]]&lt;br /&gt;
&lt;br /&gt;
* Is executed by a business process engine&lt;br /&gt;
* The modeler or implementer defines a script in a language that the engine can interpret&lt;br /&gt;
* When the Task is ready to start, the engine will execute the script&lt;br /&gt;
* When the script is completed, the Task will also be completed.&lt;br /&gt;
&lt;br /&gt;
== Sub-process Markers ==&lt;br /&gt;
* A Sub-Process is an Activity whose internal details have been modeled using Activities, Gateways, Events, and Sequence Flows&lt;br /&gt;
* A Sub-Process is a graphical object within a Process, but it also can be “opened up” to show a lower-level Process&lt;br /&gt;
&lt;br /&gt;
== Types of Sub-Processes ==&lt;br /&gt;
[[File:Figure10-25-sub-process-object-collapsed.png|100px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Figure10-26-sub-process-object-expanded.png|200px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Figure10-27-expanded-sub-process-used-as-parallel-box.png|200px]]&lt;br /&gt;
&lt;br /&gt;
== Sub-process Markers ==&lt;br /&gt;
[[File:Figure10-28-collapsed-sub-process-markers.png|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Event Sub-Process ===&lt;br /&gt;
[[File:Figure10-30-event-sub-process-object-collapsed.png|100px]]&lt;br /&gt;
[[File:Figure10-31-event-sub-process-object-expanded.png|200px]]&lt;br /&gt;
* An Event Sub-Process is a specialized Sub-Process that is used within a Process (or Sub-Process)&lt;br /&gt;
* The triggeredByEvent attribute is set to true&lt;br /&gt;
* An Event Sub-Process is not part of the normal flow of its parent Process—there are no incoming or outgoing Sequence Flows.&lt;br /&gt;
* It MAY occur many times.&lt;br /&gt;
* Event Sub-Process has a Start Event with a trigger:&lt;br /&gt;
** Message, Error, Escalation, Compensation, Conditional, Signal, and Multiple&lt;br /&gt;
* An Event Sub-Process object shares the same basic shape as the Sub-Process object, which is a rounded rectangle&lt;br /&gt;
&lt;br /&gt;
When an Event Sub-Process is triggered the parent Process:&lt;br /&gt;
# can be interrupted&lt;br /&gt;
# can continue its work (not interrupted)&lt;br /&gt;
This is determined by the type of Start Event that is used&lt;br /&gt;
&lt;br /&gt;
[[File:Figure10-32-example-that-includes-event-sub-processes.png|500px]]&lt;br /&gt;
&lt;br /&gt;
== Transaction ==&lt;br /&gt;
[[File:Element transaction.png|100px]]&lt;br /&gt;
* Is a specialized type of Sub-Process that will have a special behavior that is controlled through a transaction protocol (such as WS-Transaction)&lt;br /&gt;
* The boundary of the Sub-Process will be double-lined to indicate that it is a Transaction&lt;br /&gt;
* The behavior at the end of a successful Transaction Sub-Process is slightly different than that of a normal Sub-Process&lt;br /&gt;
* When each path of the Transaction Sub-Process reaches a non-Cancel End Event(s), the flow does not&lt;br /&gt;
immediately move back up to the higher-level parent Process, as does a normal Sub-Process&lt;br /&gt;
* First, the transaction protocol needs to verify that all the Participants have successfully completed their end of the Transaction&lt;br /&gt;
* Most of the time this will be true and the flow will then move up to the higher-level Process&lt;br /&gt;
* But it is possible that one of the Participants can end up with a problem that causes a Cancel or a Hazard&lt;br /&gt;
* In this case, the flow will then move to the appropriate Intermediate Event, even though it had apparently finished successfully&lt;br /&gt;
&lt;br /&gt;
[[File:Figure10-33-transaction-sub-process.png|300px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Figure10-34-collapsed-transaction-sub-process.png|300px]]&lt;br /&gt;
&lt;br /&gt;
== Ad-Hoc ==&lt;br /&gt;
* A group of Activities that have no REQUIRED sequence relationships&lt;br /&gt;
* 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.&lt;br /&gt;
&lt;br /&gt;
[[File:Figure10-35-collapsed-ad-hoc-sub-process.png|100px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Figure10-36-expanded-ad-hoc-sub-process.png|100px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Figure10-37-ad-hoc-sub-process-for-writing-book-chapter.png|300px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Figure10-38-ad-hoc-sub-process-with-data-and-sequence-dependencies.png|400px]]&lt;br /&gt;
&lt;br /&gt;
== Call Activity ==&lt;br /&gt;
* A Call Activity identifies a point in the Process where a global Process or a Global Task is used&lt;br /&gt;
* The Call Activity acts as a ‘wrapper’ for the invocation of a global Process or Global Task within the execution&lt;br /&gt;
* The activation of a call Activity results in the transfer of control to the called global Process or Global Task&lt;br /&gt;
&lt;br /&gt;
[[File:Figure10-39-call-activity-object-calling-global-task.png|100px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Figure10-40-call-activity-object-calling-process-collapsed.png|100px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Figure10-41-call-activity-obejct-calling-process-expanded.png|200px]]&lt;br /&gt;
&lt;br /&gt;
== Loops ==&lt;br /&gt;
=== Upstream Sequence Flow ===&lt;br /&gt;
[[File:Element sequence flow looping.png|300px]]&lt;br /&gt;
&lt;br /&gt;
=== Standard Loop ===&lt;br /&gt;
[[File:Element_activity_looping.png|100px]]&lt;br /&gt;
[[File:Figure10-47-sub-process-object-with-standard-loop-marker.png|100px]]&lt;br /&gt;
* The Activity will loop as long as the boolean condition is true&lt;br /&gt;
* The condition is evaluated for every loop iteration, and MAY be evaluated at the beginning or at the end of the iteration&lt;br /&gt;
* In addition, a numeric cap can be optionally specified&lt;br /&gt;
* The number of iterations MAY NOT exceed this cap&lt;br /&gt;
&lt;br /&gt;
=== Multi-Instance ===&lt;br /&gt;
[[File:Element_multiple_instances_parallel.png|100px]] [[File:Figure10-48-activity-multi-instance-marker-for-parallel-instances.png|100px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Element_multiple_instances_sequential.png|100px]] [[File:Figure10-49-activity-multi-instance-marker-for-sequential-instances.png|100px]]&lt;br /&gt;
&lt;br /&gt;
* The instances MAY execute in parallel or MAY be sequential.&lt;br /&gt;
* Either an Expression is used to specify or calculate the desired number of instances or a data driven setup can be used&lt;br /&gt;
* In that case a data input can be specified, which is able to handle a collection of data&lt;br /&gt;
* The number of items in the collection determines the number of Activity instances&lt;br /&gt;
* This data input can be produced by an input Data Association&lt;br /&gt;
* The modeler can also configure this loop to control the tokens produced.&lt;/div&gt;</summary>
		<author><name>Cesar Chew</name></author>
	</entry>
</feed>