Compensate
BPMN Implementation: Compensate throw event
The compensate activity triggers the start of compensation on all inner scopes that have already completed successfully. See Compensation for a discussion of compensation handlers.
The compensate activity specifies no scope name, thus providing explicit default-order compensation that executes the compensation handler on all eligible scopes in the reverse order of their completion.
The compensate activity is defined within a compensation handler, fault handler, or termination handler. It can also be the target of a compensation boundary event.
The compensate activity is one of two compensation activities. The Compensate Scope activity names an enclosed scope for compensation.
Required Properties | Optional Properties |
---|
none | Name. See Selecting Activity Labels |
| Join Condition. See Creating a Join Condition for an Incoming Link |
| Suppress Join Failure. See Process Properties |
| Comment. See Adding Comments to a Process |
| Documentation. See Adding Documentation to a Process |
| Setting Visual Properties and Using Your Own Library of Images |
| Execution State. See Viewing the Execution State of an Activity or Link |
| Extension Attributes and Extension Elements. See Declaring Extension Elements and Attributes. |
To build a compensate activity:
- 1. On the Process Editor canvas, select a scope that has a compensation, fault, or termination handler container.
For a fault handler, ensure that the fault handler contains a catch container.
- 2. Drag a Compensate throw event to the container, as shown in the following example.
Alternately, use a BPMN compensation boundary event and make the compensate activity a target of it. For details, see Adding Boundary Events and Catch and Catch All Boundary Events and Compensate, Compensate Scope and Rethrow.
XML Syntax
<compensate standard-attributes>
standard-elements
</compensate>
Example
<compensate/>