【发布时间】:2013-03-15 12:50:42
【问题描述】:
如果我对同一条记录进行了 3 次修改,并且我有一个异步插件正在监听更新消息,那么更新是否会被排序?
我希望更新是有序的,即使是异步执行的(正确排队以供以后执行)。如果是这种情况,我希望创建和删除消息也是如此。
提前致谢。
【问题讨论】:
标签: asynchronous dynamics-crm-2011 crm
如果我对同一条记录进行了 3 次修改,并且我有一个异步插件正在监听更新消息,那么更新是否会被排序?
我希望更新是有序的,即使是异步执行的(正确排队以供以后执行)。如果是这种情况,我希望创建和删除消息也是如此。
提前致谢。
【问题讨论】:
标签: asynchronous dynamics-crm-2011 crm
对于异步插件,执行顺序不能保证,如果你想让插件按照队列执行,你需要使用 DependencyToken 属性。
你可以在这里找到一篇文章:
【讨论】:
除了@GuidosPreite,我可以说,在我之前运行的测试中,插件将按照您期望的顺序执行。
但是,正如他所说,不要把你的房子押在上面。如果你不走运,一个早期的线程可以比早期的延迟更多地执行。并且提供墨菲定律,它会。
此外,不同的汇总、服务器、星期几等的行为可能会有所不同。简而言之:是但不是。
【讨论】:
下图显示了插件和工作流的执行顺序如何工作。 Importance of execution order
结论: 通常工作流的默认执行顺序值为“0”,用户无法定义该值。如果用户在插件步骤中将执行顺序设置为“1”,则将在插件之前触发实时工作流。
如果用户需要在实时工作流之前执行插件,那么用户必须在插件步骤中将执行顺序更改为“0”。
【讨论】: