Workflow Engine

The Cúram WMS includes a Workflow Engine which provides the runtime execution environment for a process instance. There are various mechanisms available to enact a workflow process and these are discussed in the next section. When a process is enacted, the Workflow Engine examines specified process to enact and uses the latest released version of that process definition to create the process instance to run.

Data required to enact the specified workflow is specified by the enactment mappings in a process definition. These are mappings from struct attributes in the application to workflow data object attributes that have been marked as required for enactment. When the process is enacted, the data in the specified struct attributes is mapped to the workflow data object attributes and persisted so that it is available for use elsewhere in the workflow.

The Workflow Engine manages the process instance lifecycle, executing activity instances and evaluating transition rules. During the process instance lifecycle, the Workflow Engine will continue to respond to events, such as the completion of a task, which tell it to resume the execution of a process instance. The Workflow Engine creates tasks instructing users on the work that needs to be completed manually, and evaluates the allocation strategies to determine which users should be assigned these tasks. The Workflow Engine also creates notifications for users to inform them of the progress or status of a workflow process instance.

The Workflow Engine manages each process instance until the end process activity for that instance is reached. The execution of this activity indicates the completion of the process instance. If the workflow process instance fails, the workflow engine will record information about the failure. A workflow administrator can then use this information to retry the workflow process instance from the failure point.