Problem – Describing a Set of Actions that must be performed in their Entirety or Not at All
Processes can be composed of many activities. Often some or all of these activities must be considered an atomic unit of work. In other words, if the set of activities cannot be completed, then the net effect should be as if they did not occur at all. The scope of these activities may be sufficiently fine grained that they can be considered in the same scope as a database transaction. In such instances, a simple rollback within the application instance may suffice. In other cases, the scope is sufficiently large that a compensating transaction or action must be executed to restore the prior state.
Define a collection of actions as an atomic transaction. A stable state is declared for the initiation of the atomic transaction that will be restored if the transaction is rolled back. The start activity and end activity are also identified to delimit the scope of changes.
Example – Posting Employee Data A service bureau posts a client's employee data in periodic batch jobs after receipt of a data file. Each file contains payroll, classification, and personal data records. If an employee that has records in more that one record format may end up with only partial posting if a record contains data that does not pass validation. The service bureau is required to either process all of the records for a given employee or none at all until data corrections have been made. This example demonstrates how a portion of a workflow process is rolled back while preserving the remainder.
|Stable state||employee data posted|
|Start activity||process personal data|
|End activity||process payroll data|
A company policy stipulates that a pension benefit election packet is prepared for each employee at time of termination if they are eligible to immediately commence receiving benefit payments. The employee has 90 days to make an election. If the election is not received within that period, the transaction is cancelled, leaving only the calculation results. This example rolls back the entire processing from the granularity of a single entity rather than the entire set of entities, or employees. Conditions may also be established that required the rollback of the entire batch.
|Stable state||calculation completed|
|Start activity||produce packet|
|End activity||process election|
With the integration of adaptive use case extension to the UML, a single UseCaseSegment may be identified as a parameter to establish the scope of activities defined in the Unit Of Work business rule pattern.