“工作流程必须处于已发布状态。”尝试执行CRM 2011工作流程时

时间:2011-04-20 10:06:25

标签: .net dynamics-crm crm dynamics-crm-2011

我需要从.Net执行CRM 2011工作流程。我查看了使用ExecuteWorkflowRequest消息的CRM 2011 SDK示例。该示例有效,但该示例还创建了随后执行的CRM工作流项目。

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

我尝试使用CRM 4.0 SDK执行相同的工作流程项目并且执行正常。但我无法使用此SDK与系统的工作方式,因为我需要从自定义代码工作流活动执行工作流项。

提前致谢

3 个答案:

答案 0 :(得分: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示例代码。

答案 1 :(得分:0)

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

要执行此操作,请点击“设置 - &gt;解决方案 - &gt;发布所有自定义项”。

答案 2 :(得分:0)

对于我来说,我的工作流保存为流程模板。将其更改为流程应该可以解决问题。

enter image description here