Dynamics crm 2011 重复工作流在多次迭代后停止

Dynamics crm 2011 重复工作流在多次迭代后停止,dynamics-crm-2011,dynamics-crm-online,Dynamics Crm 2011,Dynamics Crm Online,工作流在实体Hazaa实例化时启动。它等待一段时间,然后创建一个新的Hazaa实例。在那之后,它被视为成功的睡眠 我希望它能永远开火,制造出一堆哈扎人。然而,在生殖停止之前,我只得到了15个新的。连同我手动创建的用于启动工作流的原始实例,总共有16个实例。我已经测试了更长的延迟时间(最多几个小时),但行为是一致的 这是CRM在线版。前提是,行为类似,但总计仅限于8个实例 根据我发现的链接的收获,CRM中有一个控制迭代次数的设置。问题是,我的解决方案将主要部署给在线客户,所以除非我拥有云,否则这将

工作流在实体Hazaa实例化时启动。它等待一段时间,然后创建一个新的Hazaa实例。在那之后,它被视为成功的睡眠

我希望它能永远开火,制造出一堆哈扎人。然而,在生殖停止之前,我只得到了15个新的。连同我手动创建的用于启动工作流的原始实例,总共有16个实例。我已经测试了更长的延迟时间(最多几个小时),但行为是一致的

这是CRM在线版。前提是,行为类似,但总计仅限于8个实例

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

我知道这是为了防止再次发生。我能怎么办


目前我能想到的最好的解决方案是建立一个超级工作流,启动子工作流16次。然后,我需要一个超级工作流等。在我看来,这不是一个吹牛的工作流。

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

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

一个
相关令牌包含一个计数器和一个一小时的“自毁”计时器

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

当从第一个工作流启动第二个工作流时(即使是间接启动,例如在您的案例中),如果自毁计时器尚未过期,则使用相同的
CorrelationToken
。如果有,将创建一个新的
CorrelationToken
。如果没有,则增加计数器并重置计时器。起泡,冲洗,重复

第二个(及后续)工作流仅在计数器小于等于8(内部部署)或小于等于16(CRM Online)时执行

这实际上意味着,如果您的子工作流执行时间间隔早于一小时,则
CorrelationToken
永远不会过期,这意味着计数器最终会超过限制。它并不意味着每小时最多可以执行8(或16)个工作流


听起来你已经了解了其中的大部分,但我想给其他读者介绍一下背景。因此,回答您的问题:如果您的设计包括在一个小时内执行的循环工作流,则需要考虑另一个设计。它肯定会涉及一个外部进程或服务。

一个
关联令牌包含一个计数器和一个一小时的“自毁”计时器

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

当从第一个工作流启动第二个工作流时(即使是间接启动,例如在您的案例中),如果自毁计时器尚未过期,则使用相同的
CorrelationToken
。如果有,将创建一个新的
CorrelationToken
。如果没有,则增加计数器并重置计时器。起泡,冲洗,重复

第二个(及后续)工作流仅在计数器小于等于8(内部部署)或小于等于16(CRM Online)时执行

这实际上意味着,如果您的子工作流执行时间间隔早于一小时,则
CorrelationToken
永远不会过期,这意味着计数器最终会超过限制。它并不意味着每小时最多可以执行8(或16)个工作流


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

对于同样的问题,假设我想运行工作流17次。也就是说,在CRM切断我的连接之前,我手动触发了一个,并额外增加了16个(而不是15个)。另外,请记住,我的工作流不会直接触发自身——它会创建一个Hazaa实例(与触发新的工作流调用相连接),并且在执行结束时,它会自行终止。除非运行得太频繁,否则系统不会再次过热。对于同样的问题,假设我想运行工作流17次。也就是说,在CRM切断我的连接之前,我手动触发了一个,并额外增加了16个(而不是15个)。另外,请记住,我的工作流不会直接触发自身——它会创建一个Hazaa实例(与触发新的工作流调用相连接),并且在执行结束时,它会自行终止。除非运行太频繁,否则系统不会再次过热。首先,感谢您提供了一个非常详细且信息丰富的答案。我一定要马上测试一下。然而,我不确定它是否会有帮助,因为我也尝试了90分钟的时间跨度,但仍然只有有限的HAZAA数量。我再打它一下,看看会发生什么。还有,你介意吗