Export (0) Print
Expand All

Workflow Control Endpoint

The workflow control endpoint allows developers to call control operations to remotely control workflow instances hosted using WorkflowServiceHost. This feature can be used to programmatically perform control operations like suspend, resume, and terminate.

Caution note Caution

If using the workflow control endpoint within a transaction and the workflow being controlled contains a Persist activity, the workflow instance will hang until the transaction times out.

.NET Framework 4.5 defines a new contract called IWorkflowInstanceManagement. This contract defines a series of control operations that allow you remotely control workflow instances hosted by WorkflowServiceHost. WorkflowControlEndpoint is a standard endpoint that provides an implementation of the IWorkflowInstanceManagement contract. WorkflowControlClient is a class that is used to send the control operations to the WorkflowControlEndpoint.

Workflow instances can be in one of the following states:

Active

The state of a workflow instance before it reaches the completed state and when it is not in the suspended state. While in this state, the workflow instance runs and processes application messages.

Suspended

While in this state, the workflow instance does not run even if there are activities that have not started running or have partially run.

Completed

The final state of a workflow instance. The workflow instance cannot run after reaching the completed state.

The IWorkflowInstanceManagement interface defines a set of control operations with synchronous and asynchronous versions. The transacted versions require use of a transaction-aware binding. The following table lists the control operations supported.

Control Operation

Description

Abort

Forcefully stops the execution of the workflow instance.

Cancel

Transitions a workflow instance from the active or suspended state to the completed state.

Run

Provides a workflow instance the opportunity to execute.

Suspend

Transitions a workflow instance from the active state to the suspended state.

Terminate

Transitions a workflow instance from the active or suspended state to the completed state.

Unsuspend

Transitions a workflow instance from the suspended state to the active state.

TransactedCancel

Performs the Cancel operation under a transaction (flowed in from the client or created locally). If the system maintains the durable state of the workflow instance, the workflow instance must be persisted during execution of this operation.

TransactedRun

Performs the Run operation under a transaction (flowed in from the client or created locally). If the system maintains the durable state of the workflow instance, the workflow instance must be persisted during execution of this operation.

TransactedSuspend

Performs the Suspend operation under a transaction (flowed in from the client or created locally). If the system maintains the durable state of the workflow instance, the workflow instance must be persisted during execution of this operation.

TransactedTerminate

Performs the Terminate operation under a transaction (flowed in from the client or created locally). If the system maintains the durable state of the workflow instance, the workflow instance must be persisted during execution of this operation.

TransactedUnsuspend

Performs the Unsuspend operation under a transaction (flowed in from the client or created locally). If the system maintains the durable state of the workflow instance, the workflow instance must be persisted during execution of this operation.

The IWorkflowInstanceManagement contract does not provide a means to create a new workflow instance, only to manage existing workflow instances. For more information about remotely creating a new workflow instance, see Workflow Service Host Extensibility.

WorkflowControlEndpoint is a standard endpoint with a fixed contract, IWorkflowInstanceManagement. When added to a WorkflowServiceHost instance, this endpoint can then be used to send command operations to any workflow instance hosted by the host instance. For more information about standard endpoints, see Standard Endpoints.

WorkflowControlClient is a class that allows you to send control messages to a WorkflowControlEndpoint on a WorkflowServiceHost. It contains a method for each of the operations supported by the IWorkflowInstanceManagement contract except for the transacted operations. WorkflowControlClient uses the ambient transaction to determine whether a transacted operation should be used.

Show:
© 2014 Microsoft