5

我需要从 .Net 执行 CRM 2011 工作流程。我查看了使用 ExecuteWorkflowRequest 消息的 CRM 2011 SDK 示例。该示例运行良好,这是一个良好的开端,但该示例还创建了随后执行的 CRM 工作流项目。

我正在尝试执行一个已经存在的工作流项目。但我不断收到错误“工作流必须处于已发布状态”。即使我已经激活了工作流程。

我已经尝试使用 CRM 4.0 SDK 执行相同的工作流项目并且它执行得很好。但是我不能将这个 SDK 与系统的工作方式一起使用,因为我需要从自定义代码工作流活动中执行工作流项。

提前致谢

4

3 回答 3

15

对于创建的每个工作流,CRM 2011 数据库中存储了两个工作流实体。工作流实体具有标题为“类型”的属性。类型 == 1 已发布。类型 == 2 是草稿。当您查询工作流时,请务必在 where 子句中指定 Type 值。

var workflow = context.CreateQuery("workflow").FirstOrDefault(w =>
w.GetAttributeValue<int>("type") == 1 &&
w.GetAttributeValue<string>("name") == workflowName &&
w.GetAttributeValue<bool>("ondemand") == true &&
w.GetAttributeValue<string>("primaryentity") == targetEntityName);

有关如何连接到组织服务的示例,请参阅CRM 2011 SDK示例代码。

于 2011-05-10T23:18:09.013 回答
0

在没有创建任何工作流程的情况下,如果您收到“工作流程必须处于已发布状态”的错误消息,那么您是否尝试过“发布所有自定义项”以查看是否有帮助?

为此,请单击“设置->解决方案->发布所有自定义设置”。

于 2011-04-21T00:02:01.987 回答
0

就我而言,我的工作流程被保存为Process Template。将其更改为Process应该可以解决问题。

在此处输入图像描述

于 2019-01-30T22:26:03.413 回答