我正在尝试使用Dynamics CRM SDK找到取消工作流程的方法。目前我可以重试一个工作流程,但我遇到的问题是能够以编程方式取消一个。这可能吗?
答案 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。
读取异步操作的状态
使用RetrieveMultiple方法按名称检索AsyncOperation,或使用Retrieve方法按ID检索。
- 醇>
读取AsyncOperation.StateCode属性。
更改州代码
根据允许的操作状态将检索到的状态代码属性修改为新值。你也可以改变 AsyncOperation.PostponeUntil属性。
- 醇>
调用Update以更改数据库中这些属性的值。