Exception Handling at Work Item Level
In general an exception will relate to a specific work item in a case. There are a multitude of ways in which the exception can be handled although the specific details will depend on the current state of execution of the work item. Before looking at these options, it is worthwhile reviewing the execution lifecycle for a work item. Figure 1 illustrates the lifecycle of a work item from the perspective of an individual resource. It is initially offered to one or more resources for execution. Figure 1 depicts as solid arrows the states through which a work item progresses during normal execution. It is initially offered to one or more resources for execution. A resource issues an allocate request to indicate that it wishes to execute the work item at some future time, the work item then is allocated to that resource. Typically this involves adding the work item to the resource's work queue and removing any references to the work item that other resources may have received, either on their work queues or via other means. When the resource wishes to commence the work item, it issues a start request and the state of the work item changes to started. Finally, once the work item is finished, the resource issues a complete request and the state of the work item is changed to completed. Note that there are two possible variations to this course of events shown as dotted arcs in Figure 1: (1) where a work item offered to a resource is selected by another resource, it is withdrawn from the first resource's worklist and (2) where an executing work item is detected as having failed, its state is changed accordingly. These correspond to termination actions in relation to the work item that are outside the control of the resource.
Of most interest are the dashed lines that exist between states in Figure 1. These provide the basis for determining what options exist for handling a work item in a given state when an exception is detected. There are fifteen of these exception state transitions. As there are subtle differences between each of these transitions, and in order to distinguish between them, each of them is briefly described below:
Figure 1: Options for handling work items
-
continue-offer (OCO) - the work item has been offered to one or more resources and there is no change in its state as a consequence of the exception;
-
reoffer (ORO) - the work item has been offered to one or more resources and as a consequence of the exception, these offers are withdrawn and the work item is once again offered to one or more resources (these resources may not necessarily be the same as those to which it was offered previously);
-
force-fail-o (OFF) - the work item has been offered to one or more resources, these offers are withdrawn and the state of the work item is changed to failed. No subsequent work items on this path are triggered;
-
force-complete-o (OFC) - the work item has been offered to one or more resources, these offers are withdrawn and the state of the work item is changed to completed. All subsequent work items are triggered;
-
continue-allocation (ACA) - the work item has been allocated to a specific resource that will execute it at some future time and there is no change in its state as a consequence of the exception;
-
reallocate (ARA) - the work item has been allocated to a resource, this allocation is withdrawn and the work item is allocated to a different resource;
-
reoffer-a (ARO) - the work item has been allocated to a resource, this allocation is withdrawn and the work item is offered to one or more resources (this group may not necessarily include the resource to which it was previously allocated);
-
force-fail-a (AFF) - the work item has been allocated to a resource, this allocation is withdrawn and the state of the work item is changed to failed. No subsequent work items are triggered;
-
force-complete-a (AFC) - the work item has been allocated to a resource, this allocation is withdrawn and the state of the work item is changed to completed. All subsequent work items are triggered;
-
continue-execution (SCE) - the work item has been started and there is no change in its state as a consequence of the exception;
-
restart (SRS) - the work item has been started, progress on the current execution instance is halted and the work item is restarted from the beginning by the same resource that was executing it previously;
-
reallocate-s (SRA) - the work item has been started, progress on the current execution instance is halted and the work item is reallocated to a different resource for later execution;
-
reoffer-s (SRO) - the work item has been started, progress on the current execution instance is halted and it is offered to one or more resources (this group may not necessarily include the resource that was executing it);
-
force-fail (SFF) - the work item is being executed, any further progress on it is halted and its state is changed to failed. No subsequent work items are triggered; and
-
force-complete (SFC) the work item is being executed, and further progress on it is halted and its state is changed to completed. All subsequent work items are triggered.
Previous - Exception Types
Next - Exception Handling at Case Level