Record Timers

Introduced in version 23.1

Introduction

We wish to generalize actions on records which have to be performed at a certain date in the future.

Examples include

Design

Uses a specific timed job created for the Timer Daemon to periodically create Batches to check if items have reached the date at which the record timer should fire for the record.

Properties

Name

Type

Description

Name

Type

Description

Id

UUID

Primary key

Name

String

Human readable name of the timer

Field

String

The dotted key of the timer field for this record timer

Batch

 

Which specific batch to create

User

UUID

User will be used in the created batch

Active

boolean

Whether this record timer is active

Metadata

To the Complex Fields a new type has been added: TimerField extends MapField which has the following mandatory sub-fields:

Sub field

Type

Purpose

Sub field

Type

Purpose

ExpectedDate

DateField

  • Record timer searches for this date

  • Can be filled out by different actors, e.g. during ingest already set Timer.Expiry.ExpectedDate

EffectiveDate

DateField

Automatically filled out when the record timer has been effectively been fired for the record

Example

Archive Phase

  • Query: +Timers.ArchivePhase.ExpectedDate:[* TO now()] -Timers.ArchivePhase.EffectiveDate:*

  • Batch task: standard engine batch task which changes the RecordStatus -> Archived and fills out ArchivalDate