loading table of contents...

4.4.2. Predefined TimerHandler Classes

Timer handler classes are invoked when a timer expires.

<UserTask name="c0_edit" final="true">
    <Variable name="skipExpiredTimer" type="Timer">
        <Timer value="30"/>
    </Variable>
    <TimerHandler class="RunActionTimerHandler" name="TimerHandler" 
                            timerName="skipExpiredTimer">
        <Action class="Log" debug="true" message="timer expired"/>
        <Action class="CancelUserTask" task="c0_edit"/>
    </TimerHandler>
    <EntryAction class="EnableTimer" 
                        timerVariable="skipExpiredTimer"/>
    <EntryAction class="Log" 
                       debug="true" message="c0_edit accepted"/>
    <Rights>
        <Grant user="cpesch" 
         rights="read,accept,complete,cancel,retry"/>
    </Rights>
    <Client>
        <Reads variable="skipExpiredTimer"/>
    </Client>
</UserTask>

Example 4.21. Example of TimerHandler usage


AbortTaskTimerHandler

This timer handler aborts the task instance in which it is defined on expiration (see Figure 4.10, “Expired timer with AbortTaskTimerHandler”).

Expired timer with AbortTaskTimerHandler

Figure 4.10. Expired timer with AbortTaskTimerHandler


AddWarningTimerHandler

This timer handler adds a timer expiration warning to a process or task instance (see Figure 4.11, “Expired timer with AddWarningTimerHandler).

Expired timer with AddWarningTimerHandler

Figure 4.11. Expired timer with AddWarningTimerHandler


RetryTaskTimerHandler

This timer handler retries an escalated task. The handler and its timer need to be defined below the Process element. The name of the task to retry is specified in the additional attribute "task".

RunActionTimerHandler

This timer handler runs one or more actions on expiration. The actions can be defined using the sub element Action.

SkipUserTaskTimerHandler

This timer handler aborts the activated user task on expiration. It does not work with a task if it is not activated.