我需要从.Net执行CRM 2011工作流程。我查看了使用ExecuteWorkflowRequest消息的CRM 2011 SDK示例。该示例有效,但该示例还创建了随后执行的CRM工作流项目。
我正在尝试执行已存在的工作流程项。但我继续收到错误“工作流程必须处于已发布状态”。即使我已经激活了工作流程。
我尝试使用CRM 4.0 SDK执行相同的工作流程项目并且执行正常。但我无法使用此SDK与系统的工作方式,因为我需要从自定义代码工作流活动执行工作流项。
提前致谢
答案 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)