1

我通过 UI 创建并添加了一些工作流到 CRM 2011 RU13

由于不是我自己的错,我的开发环境与我的生产环境完全隔离。

我将这些工作流添加到我的解决方案中,并将解决方案导出为托管并将解决方案提供给生产管理员。

当他部署它时,它会失败并显示此消息。

工作流不能由不是其所有者的人发布或取消发布

我该如何解决。没有办法不给工作流一个所有者。或者说所有者是解决方案。

4

2 回答 2

6

生产管理员收到该消息是因为他不是您的解决方案中包含的一个或多个活动工作流的所有者(在目标 CRM 环境中)。

在以下情况下会发生这种情况:

  • 第一次将解决方案导入时,由 USER_A 执行操作,所有工作流都会自动分配给他。如果稍后 USER_B 尝试导入解决方案的更新版本,他会收到错误消息,因为它不是工作流的所有者。

  • 第一次将解决方案导入时,由 USER_A 执行操作,所有工作流都会自动分配给他。同时,将一个或多个工作流分配给 USER_C。如果稍后 USER_A 尝试导入解决方案的更新版本,他会收到错误消息,因为不是工作流的所有者。

必须先停用工作流,才能更新工作流,并且只有所有者才能停用工作流。这是设计使然

在您的情况下,生产管理员必须是流程的所有者(他可以将工作流程临时分配给自己,导入解决方案并在分配回正确的用户之后)或者需要成为工作流程的所有者才能导入解决方案(如果他有权利)

于 2013-06-18T06:19:29.707 回答
2

为了使 OP 更清晰,还有几点需要说明:

您的开发环境中工作流的所有者不相关,prod 中的导入用户将成为所有者(这与 Guido 并不矛盾,我只是确保您不遵循红鲱鱼)。他们成为开发人员和生产人员之间的“气隙”是完全正确的。

如果您知道解决方案中有哪些工作流程,请将 prod 中的工作流程分配给您自己,然后导入,然后当且仅当您需要时,将它们重新分配给原始所有者。如果该所有者只是一个等效的系统管理员用户,您可能不需要,但如果它是一个特殊用户(例如“工作流守护程序”,以便用户可以看到它为什么更新他们的记录),您将需要重新分配。

请注意,重新分配它们后,该用户必须激活工作流。您不能以其他人的名义激活工作流(或者用户可以编写工作流以管理员身份运行并提升他们的权限)。

如果您的解决方案的这个版本中的工作流实际上没有更改,请将它们从解决方案中删除并忽略它们 - 我经常发现工作流已经编写完毕,并在原始“上线”中被带到生产环境中,然后开始工作非常好,但留在了不断更新和重新发布的解决方案中(即导出/导入)。

就我个人而言,我经常有一个“上线”解决方案(或多个,但这是一个不同的线程......)然后我们重新开始一个新的解决方案,该解决方案只包含此后的增量更改。这意味着您的所有工作工作流、插件、Web 资源等都不会出现在该解决方案中,因此这可以避免版本混淆、减少解决方案膨胀并避免工作流所有权问题。如果工作流确实更新了,那么您需要处理导入,但不要让无关更改每天都发生这种情况。

于 2013-06-18T08:37:03.527 回答