<?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_v1.1_-_Compensation</id>
	<title>BPMN v1.1 - Compensation - 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_v1.1_-_Compensation"/>
	<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=BPMN_v1.1_-_Compensation&amp;action=history"/>
	<updated>2026-04-09T12:43:28Z</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_v1.1_-_Compensation&amp;diff=7829&amp;oldid=prev</id>
		<title>Bernard Szlachta at 02:41, 17 November 2012</title>
		<link rel="alternate" type="text/html" href="https://training-course-material.com/index.php?title=BPMN_v1.1_-_Compensation&amp;diff=7829&amp;oldid=prev"/>
		<updated>2012-11-17T02:41:42Z</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|OCEB B200.3 - BPMN}}&lt;br /&gt;
{{Cat|OCEB T200.2 - BPMN}}&lt;br /&gt;
&lt;br /&gt;
{{OCEB Links}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;slideshow style=&amp;quot;nobleprog&amp;quot; headingmark=&amp;quot;⌘&amp;quot; incmark=&amp;quot;…&amp;quot; scaled=&amp;quot;false&amp;quot; font=&amp;quot;Trebuchet MS&amp;quot; &amp;gt;&lt;br /&gt;
;title: BPMN v1.1 - Compensation&lt;br /&gt;
;author: Bernard Szlachta (NobleProg Ltd)&lt;br /&gt;
&amp;lt;/slideshow&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Element compensation association.png|200px]]&lt;br /&gt;
&lt;br /&gt;
== What is compensation ⌘ ==&lt;br /&gt;
* Some activities produce complex effects or specific outputs. &lt;br /&gt;
* If the outcome is determined to be undesirable by some specified criteria (such as an order being cancelled), then it will be necessary to “undo” the activities. &lt;br /&gt;
* There are three ways this can be done:&lt;br /&gt;
** Restoring of a copy of the initial values for data, thereby overwriting any changes.&lt;br /&gt;
** Doing nothing (if nothing has changed because the changes have been set aside until a confirmation).&lt;br /&gt;
** Invoking activities that undo the effects--also known as compensation.&lt;br /&gt;
&lt;br /&gt;
== Compensation implementation ⌘ ==&lt;br /&gt;
* e.g. Customer charged for the flight should be refunded if error prevent the flight to happen&lt;br /&gt;
* These types of activities usually need a separate activity to counter the effects of the initial activity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Figure10-33-transaction-sub-process.png|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compensation Activity ⌘ ==&lt;br /&gt;
https://editor.signavio.com/p/model/669ec6ea9a834111b1d56f59b1b42e90/png?inline&amp;amp;authkey=f2f79b6777fc66eb33519fcdf19e55b217755ef378abadb0209e42abe9244ad9&amp;amp;.png&lt;br /&gt;
* Target of this Association is the activity that will compensate for the work done in the source activity, and will be referred to as the Compensation Activity&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Compensation Activity&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
** is special in that it does not follow the normal Sequence Flow rules&lt;br /&gt;
** is outside the Normal Flow of the Process. &lt;br /&gt;
** cannot have any incoming or outgoing Sequence Flow&lt;br /&gt;
** &amp;#039;&amp;#039;&amp;#039;Compensation marker&amp;#039;&amp;#039;&amp;#039; will be displayed in the bottom center of the Activity to show this status of the activity&lt;br /&gt;
** there can be &amp;#039;&amp;#039;&amp;#039;only one target activity for compensation&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** There cannot be a sequence of activities shown&lt;br /&gt;
*** if more activities is required -&amp;gt; single Sub-Process &lt;br /&gt;
** The Sub-Process can be collapsed or expanded&lt;br /&gt;
&lt;br /&gt;
== Compensation Activity Trigger ⌘ ==&lt;br /&gt;
Only activities that have been completed can be compensated&lt;br /&gt;
The compensation of an activity can be triggered in two ways:&lt;br /&gt;
&lt;br /&gt;
# The activity is inside a &amp;#039;&amp;#039;&amp;#039;Transaction&amp;#039;&amp;#039;&amp;#039; Sub-Process that is cancelled&lt;br /&gt;
#* In this situation, the whole Sub-Srocess will be “rewound” or rolled back--the Process flow will go backwards&lt;br /&gt;
#* any activity that requires  compensation will be compensated&lt;br /&gt;
#* After the compensation has been completed, the Process will continue its rollback.&lt;br /&gt;
# A downstream Intermediate or End Event of type Compensation “throws” a compensation identifier that is “caught” by the Intermediate Event attached to the boundary of the activity. The compensation is thrown in two ways:&lt;br /&gt;
#* The Event can specifically identify an activity that requires compensation and only that activity will be compensated.&lt;br /&gt;
#* The Event can broadcast the need for the compensation and then all completed activities that have a Compensation Intermediate Event attached to their boundaries will be compensated&lt;br /&gt;
#** The compensation applies to all activities that have fully completed within the Process Instance (which includes all levels of the Process)&lt;br /&gt;
#** The rewind occur in the reverse order&lt;br /&gt;
&lt;br /&gt;
[[File:Figure10-33-transaction-sub-process.png|300px]]&lt;br /&gt;
&lt;br /&gt;
https://editor.signavio.com/p/model/97d5f51bfcfa45a4bccac1dfe4be820c/png?inline&amp;amp;authkey=17f1363381753e41abece50639befa422d3a932383a8a01bd786332bbc020&amp;amp;.png&lt;/div&gt;</summary>
		<author><name>Bernard Szlachta</name></author>
	</entry>
</feed>