【问题标题】:CRM2011 Workflow: What happens if the field which is used in the condition of the workflow is updated after the workflow has started?CRM2011 Workflow:如果在工作流启动后更新工作流条件中使用的字段会怎样?
【发布时间】:2012-08-05 18:09:48
【问题描述】:

示例:假设我有一个工作流程,在保修结束日期前 2 天发送电子邮件。 此工作流在实体的“已创建”时触发。

step 1: wait condition - process timeout < (warrantyendate - 2)
     after wait: send email.

因此,当创建记录时,工作流就会启动。但是当用户返回并更新保修结束日期时会发生什么。

工作流程是否检查更新的保修结束日期,还是仍使用触发时输入的结束日期(即初始创建值)?

【问题讨论】:

  • 当您尝试执行该场景时,您会看到什么结果?试一试不会给你答案吗?
  • @BenPatterson1 我正在使用日期时间字段进行测试,它遇到了无限循环(并且 crm 最终因此停止了执行),所以我想寻求一些帮助。我已经设法摆脱它并找到了答案。谢谢。

标签: dynamics-crm dynamics-crm-2011


【解决方案1】:

我的理解是工作流在执行时使用系统中的数据。

这里需要注意的重要一点是,一个工作流可以执行多次,这些时候系统中的数据可能不同。 Crm 缓存工作流的状态,但不缓存数据。 Process Architecture for Microsoft Dynamics CRM 2011 对此进行了描述。

因此,每次检查进程超时条件时,都会使用当前的保修结束日期值。如果值发生变化,下次检查条件时将使用新值。

在任何情况下,正如@BenPatterson1 所建议的那样,您最好只是进行测试以确定。

【讨论】:

  • 谢谢詹姆斯。我的印象是数据也被缓存了。
【解决方案2】:

在自己尝试后,如果条件中包含的字段的值发生变化,工作流引擎会从睡眠(等待)中启动并再次检查条件。

如果满足条件,则继续下一步或继续等待。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-22
    • 2014-08-06
    • 1970-01-01
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多