示例:假设我有一个工作流程,在保修结束日期前 2 天发送电子邮件。此工作流在实体的“创建”时触发。
step 1: wait condition - process timeout < (warrantyendate - 2)
after wait: send email.
因此,当创建记录时,工作流就会启动。但是当用户返回并更新保修结束日期时会发生什么。
工作流程是否检查更新的保修结束日期,还是仍使用触发时输入的结束日期(即初始创建值)?
示例:假设我有一个工作流程,在保修结束日期前 2 天发送电子邮件。此工作流在实体的“创建”时触发。
step 1: wait condition - process timeout < (warrantyendate - 2)
after wait: send email.
因此,当创建记录时,工作流就会启动。但是当用户返回并更新保修结束日期时会发生什么。
工作流程是否检查更新的保修结束日期,还是仍使用触发时输入的结束日期(即初始创建值)?
我的理解是工作流在执行时使用系统中的数据。
这里需要注意的重要一点是,一个工作流可以执行多次,此时系统中的数据可能不同。Crm 缓存工作流的状态,但不缓存数据。Microsoft Dynamics CRM 2011 的流程架构对此进行了描述。
因此,每次检查进程超时条件时,都会使用当前值warrantyEndDate。如果值更改,则下次检查条件时将使用新值。
在任何情况下,正如@BenPatterson1 所建议的那样,您最好只是进行测试以确定。
自己尝试后,如果条件中包含的字段的值发生变化,工作流引擎将从睡眠(等待)中启动并再次检查条件。
如果满足条件,则继续下一步或继续等待。