Dynamics CRM SDK - 取消工作流程

时间:2014-01-20 15:35:19

标签: dynamics-crm-2011

我正在尝试使用Dynamics CRM SDK找到取消工作流程的方法。目前我可以重试一个工作流程,但我遇到的问题是能够以编程方式取消一个。这可能吗?

2 个答案:

答案 0 :(得分:3)

启动工作流程:

ExecuteWorkflowRequest request = new ExecuteWorkflowRequest()
                {
                    WorkflowId = Workflow.Id,
                    EntityId = entity.Id
                };


                // Execute the workflow.
                ExecuteWorkflowResponse response =
                    (ExecuteWorkflowResponse)service.Execute(request);

结束:

Entity operation = new Entity("asyncoperation")
{
    Id = WorkflowRef.Id
};

operation["statecode"] = new OptionSetValue(3);
operation["statuscode"] = new OptionSetValue(32);

organizationservice.Update(operation);

答案 1 :(得分:1)

你见过Asynchronous Operation States吗?

显然,您只需要对statecode进行更新调用。

  

检索和更新AsyncOperation状态

     

监视和更新异步操作的状态是   通常通过系统作业网格以交互方式完成   Microsoft Dynamics CRM Web应用程序。但是,你也可以使用   用于编写执行相同任务的代码的SDK。

     

读取异步操作的状态

     
      
  1. 使用RetrieveMultiple方法按名称检索AsyncOperation,或使用Retrieve方法按ID检索。

  2.   
  3. 读取AsyncOperation.StateCode属性。

  4.         

    更改州代码

         
        
    1. 根据允许的操作状态将检索到的状态代码属性修改为新值。你也可以改变   AsyncOperation.PostponeUntil属性。

    2.   
    3. 调用Update以更改数据库中这些属性的值。

    4.