3.1.4.5 TransactedCancel

Following is the WSDL definition of the TransactedCancel operation:

 <wsdl:operation name="TransactedCancel">
   <wsdl:input wsaw:Action="http://schemas.datacontract.org/2008/10/
         WorkflowServices/IWorkflowInstanceManagement/TransactedCancel"       
         message="tns:IWorkflowInstanceManagement_TransactedCancel_InputMessage" />
   <wsdl:output wsaw:Action="http://schemas.datacontract.org/2008/10/
         WorkflowServices/IWorkflowInstanceManagement/TransactedCancelResponse" 
         message="tns:IWorkflowInstanceManagement_TransactedCancel_OutputMessage" />
 </wsdl:operation>

TransactedCancel is an atomic operation that transitions the durable program instance from the active or suspended state to the completed state. The operation SHOULD gracefully cancel any remaining work and clean up resources being used by the durable program instance. This operation SHOULD be performed under the scope of a transaction flowed in from the client, if one is flowed in, using a protocol that is recognized by the client and server roles, such as [MS-WSRVCAT].

If the system maintains the durable state of the durable program instance, then the durable state MUST be updated during execution of this operation. If the durable store is a transactional resource manager, then the same transaction SHOULD be used for the durable state change. Failure to make the durable state change MUST result in failure of the operation.

A GUID MUST be passed to the operation as the value of the <instanceId> element to identify the durable program instance on which the operation is to be performed.

The operation SHOULD return a SOAP fault message if one or more of the following conditions exist:

  • The value of the <instanceId> element is not in the correct format, as specified in [MS-DTYP] section 2.3.4.

  • The <instanceId> element is absent.

  • The value of the <instanceId> element does not exist in the Durable Program Instance Table on the server.

  • The durable program instance associated with the value of the <instanceId> element is in the completed state.

  • The server encounters an internal error while executing the TransactedCancel operation.