经过多次迭代后,循环工作流程停止

时间:2012-12-15 13:57:43

标签: dynamics-crm-2011 dynamics-crm-online

在实例化实体 Hazaa 时启动工作流程。它等待一段时间,然后创建 Hazaa 的新实例。在那之后,它会在成功时进入休眠状态。

我希望它能永久地创造出一堆 Hazaas 。但是,在生育停止之前,我只获得了15个新的。与我手动创建以创建工作流程的原始版本一起,总共有16个实例。我已经测试了更长的延迟(最多几个小时),但行为是一致的。

这适用于CRM On-line。在前提下,行为类似但总共限制为8个实例。

根据我发现的链接收获,CRM中有一个设置来控制迭代次数。问题是我的解决方案主要是为在线客户部署的,所以除非我拥有云,否则这就是显示器。

我理解它是CRM防止再次发生。我该怎么办呢?

目前我能想到的最佳解决方案是设置一个超级工作流程,启动子工作流程16次。然后我需要一个超级超级工作流程等。在我看来不是一个可以吹嘘的。

2 个答案:

答案 0 :(得分:2)

CorrelationToken包含一个计数器和一小时的“自毁”计时器。

第一个工作流程运行时,会创建一个新的CorrelationToken。计数器设置为1,计时器设置为1小时。

当第一个工作流从第一个工作流启动时(即使是间接的,例如在您的情况下),如果其自毁定时器尚未过期,则使用 。如果有,则创建新的CorrelationToken。如果没有,则递增计数器并重置计时器。泡沫,冲洗,重复。

第二个(及后续)工作流程仅在计数器为8或更少(内部部署)或16或更低(CRM Online)时执行

这实际上意味着,在实践中,如果您的子工作流程相隔不到一小时执行,CorrelationToken永远不会有机会到期,这意味着计数器最终会超过限制。它意味着您每小时最多可以执行8个(或16个)这些工作流程。

听起来你已经想到了大部分内容,但我想给其他读者留下背景。因此,回答您的问题:如果您的设计包括相隔不到一小时执行的循环工作流程,您将需要考虑替代设计。它肯定会涉及外部流程或服务。

答案 1 :(得分:1)

如果我正确理解你,听起来你正在创造一个无限循环,这就是为什么CRM会杀死像这样的工作流程,因为否则它们永远不会结束。在什么条件下你会停止制作更多的Hazaa唱片?您可以添加一个数字字段并在每个新Hazaa上增加该字段,当它达到某个数字时停止工作流程。