Skip to content

Postwork Script

Postwork scripts execute after a task's completion, enabling operations such as database updates or document generation based on user-provided data. Since the task is already completed, certain actions (e.g., modifying the current work item's action) are invalid and will raise errors.

Access the postwork script editor by clicking the "Postwork script" button on the task's configuration page.

Scripting Objects

This script is executed in the backend context of the Emakin and does not have an accessible a browser DOM context and therefore navigator based JavaScript libraries such as jQuery are not available.

The following objects are available:

  • $WorkItem Current WorkItem that is being processed.
  • $Instance Instance of the Instance current workflow instance.
  • $TestMode Indicates whether the workflow is running in test mode. In test mode, evaluates to true value.
  • $Priority Priority of the current workflow instance 0 (lowest) to 5 (highest
  • $Initiator Identifies the workflow initiator. Note that this may be null for module-type tasks.
  • $Culture Current culture of the workflow instance. Originated from the initiator's culture but can be overridden. Culture is specified in the format languagecode2-country/regioncode2. Example: (en-US or tr-TR)
  • $Templates Provides access to templates defined in the pool definition. Used for rendering the text content depending on the culture of the workflow instance.
  • $Xml Provides access to the process data model or workflow data.
  • $Case Instance of Case instance if workflow started on a case.
  • $poolVariable Custom defined pool variable by name. Variables are defined in Variables
  • $Services Allows calling SOAP services with JSON or XML content types.
  • $Decisions Allowing you to execute decision tables and models on process.
  • $scriptModule Custom defined script module. Script modules are defined in Script Modules
  • $Domain Provides access to the domain information and related methods like initiating a workflow or creating a new case.
  • $ActivityStream Allows pushing system-generated activities to the domain activity stream.
  • $Membership Provides access to users and organizational database objects.
  • $Database Allows you to perform relational database operations.
  • $Crypto Provides access to cryptographic functions such as hashing and encryption.
  • $Rest Allows interaction with REST services using JSON or XML content types.
  • $Calendar Provides access to calendar functions like adding or subtracting date in calendar rules.
  • $Files Allows access to the standard file repository for basic files.
  • $Documents Provides access to the document archive.
  • $Delegation Pprovides methods to manage delegations between users.
  • $Messages Provides functionality for sending new e-mails and parsing existing e-mail messages.
  • $XmlRepository Provides access to the non-relational XML repository database.

Common Operations

Updating the Data Model Based on Task Action

This example updates the data model with an approval date if the user selects the "Approve" action:

Assign Action Script:

1
2
3
if ($WorkItem.SelectedAction == 'Approve') {
    $Xml.SetValue("ApprovedAt", $WorkItem.End);
}