Skip to content

Automation Module

The Automation Module executes scripts within a process, enabling operations such as database or data model updates. Scripts typically conclude by assigning a value to the $WorkItem.SelectedAction property to indicate the task's status.

Example Automation Script

The following JavaScript example demonstrates an automation script:

1
2
3
4
5
6
$Xml.SetValue('CustomerCount', $Xml.EvaluateNumber('CustomerCount') + 1);
if ($Xml.EvaluateNumber('CustomerCount') < 10) {
    $WorkItem.SelectedAction = 'Continue';
} else {
    $WorkItem.SelectedAction = 'Completed';
}

Initiating Workflow Instances

Automation Module tasks can serve as starting points for automated workflow initiation using the following methods:

Scheduled Evaluation: Configure a scheduled evaluation to initiate workflow instances periodically. If the module script does not explicitly set $WorkItem.SelectedAction, the workflow instance will revert. Ensure the script takes action to manage the workflow's progression.

Scripting Initiation: Utilize the WorkItem.Initiate method to initiate other processes programmatically.

Join State and Continuation

If an Automation Module task is not designated as a starting point and the script does not set $WorkItem.SelectedAction, the workflow transitions to a "join state," pausing the workflow instance indefinitely at the automation task. Continuation can be achieved via:

Deadline: Assigning a deadline to the task will automatically trigger a deadline action, continuing the workflow at the specified time.

Scheduled Evaluation: A configured evaluation schedule can periodically assess conditions and determine whether to continue the workflow.

Programmatic Continuation: The WorkItem.ProcessWorkItem method can be called from other workflow instances to forcibly resume the paused instance.