尝试在Dynamics CRM 2011中解决工作流问题。 我有一个日期相关的重复工作流程,目前正在进行中。
我意识到我需要改变它,所以我继续进行改变。 (在Dynamics CRM 2011中,要执行此操作,我必须删除条件块并重做它)。
无论如何,我这样做并保存。
现在我的问题是,在我进行更改之前使用工作流的记录仍在使用旧工作流而不是更新版本。
是否有人遇到此错误,如果有,是否有办法强制记录使用最新更新的工作流程?
答案 0 :(得分:7)
激活工作流程后,系统会创建 工作流程定义 的副本。此副本是 WorkflowActivation 实例。
触发激活的工作流程后,会为此WorkflowActivation记录创建一个引用,并且 工作流程实例 ( AsyncOperation 记录)将成为根据其定义执行。 (请记住,工作流实例可以在很长一段时间内生效。)
可以在需要时编辑原始工作流定义,但这些编辑不会影响(或损害)正在运行的工作流实例,因为后者仅依赖于其特定的WorkflowActivation实例。激活修订的工作流定义后,系统将创建一个与先前版本并排生效的新WorkflowActivation实例。
一旦完成了取决于工作流程激活的最后一个工作流程实例,系统就会自动删除过时的激活版本。
因此,您可以自由修改错误的工作流程定义,但您的修改对运行工作流程实例没有任何影响。
答案 1 :(得分:0)
另一个答案是正确的,但没有解决您的问题。您需要将工作流分解为两个工作流:一个等待等待条件(#34;等待"工作流)和一个实际做某事的工作流("动作"工作流)。 "等待"工作流程将调用" action"当满足等待条件时,工作流作为子工作流。
这样,"等待"工作流程将始终调用" action"的最新版本。流程。
您也可以停用并修改"操作"工作流程没有停用"等待"流程。如果您正在编辑已停用的"操作"工作流程,"等待"工作流程会在尝试调用已停用的"操作时简单地抛出错误。流程。这些"等待"工作流程很容易被恢复"完成编辑"动作"工作流程并重新激活它。