Starting a workflow through ProcessWorkflow

Create a workflow definition using the ION Desk workflow modeling. The actual process as modeled inside the workflow can be changed later, but your application depends on the interface of the workflow definition. The interface consists of the workflow name, the input parameters and the output parameters. To start a workflow, publish a ProcessWorkflow BOD, including the name of the workflow definition to be started and the values for the input parameters. This starts the workflow.

See this diagram:

tr_diagram_start_workflow

You receive an AcknowledgeWorkflow BOD when the workflow is created. You receive also an AcknowledgeWorkflow BOD when the status of the workflow changes. For example, the workflow is completed or cancelled. If the workflow is completed, the BOD contains the values for the output parameters of the workflow. You can use the result in your application.

Note the difference between Workflow and Pulse BOD if you use Process verb. For Pulse BODs you receive only one Acknowledge BOD. For Workflow BOD you receive multiple Acknowledge BODs to be updated with different statues of the workflow task(s). If you started a workflow but the workflow is not relevant anymore, you can cancel it. To cancel a workflow, publish a ProcessWorkflow BOD.

See this diagram:

tr_diagram_cancel_workflow

In this case you receive an AcknowledgeWorkflow BOD when the workflow is canceled. Specifications of how to create and cancel Workflow BOD to ION are discussed later.

To start a workflow, add this action code: ProcessWorkflow/DataArea/Process/ActionCriteria/ActionExpression/@actionCode.

This table shows the elements you can use in the noun instance, ProcessWorkflow/DataArea/Workflow:

Element Note
WorkflowDefinitionCode Required. This is the name of the workflow definition as modeled in ION.
Property/NameValue Properties are required if the workflow model has input parameters. You must specify values for the input parameters that are required.

Do not use other elements, such as DocumentID and Status, when initiating a new workflow instance. These elements are determined by the Activities engine.

The resulting AcknowledgeWorkflow BODs contain the actionCode with these possible values:

  • "Accepted", when processing the request was successful.
  • "Modified", to inform about an update in the workflow definition execution.
  • "Rejected", if the request could not be processed.

This table shows the elements that are included in the AcknowledgeWorkflow/Workflow section if the actionCode is "Accepted":

Element Note
DocumentID/ID Unique identification of the workflow instance in this ION installation.
Status/Code Value is "Initial" to indicate the workflow was started.
WorkflowDefinitionCode The name of the workflow started.

This table shows the elements that are included in the AcknowledgeWorkflow/Workflow section if the actionCode is "Modified":

Element Note
DocumentID/ID Unique identification of the workflow instance in this ION installation.
Status/Code Can be "Cancelled", "Failed", or "Completed".
Status/Reason Available for Status/Code "Cancelled" or "Failed".
WorkflowDefinitionCode The name of the workflow that was canceled, failed, or completed.
Property/NameValue Only available if the Status/Code is "Completed" and the workflow has output parameters. The Properties contain the resulting values of the workflow output parameters.

This table shows the elements that are included in the AcknowledgeWorkflow/Workflow section if the actionCode is "Rejected":

Element Note
Status/Code Value is "Failed".
Status/Reason The reason for failure.