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”).
AddWarningTimerHandler
This timer handler adds a timer expiration warning to a process or task instance (see
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.