【问题标题】:Async Plugin Execution Order异步插件执行顺序
【发布时间】:2013-03-15 12:50:42
【问题描述】:

如果我对同一条记录进行了 3 次修改,并且我有一个异步插件正在监听更新消息,那么更新是否会被排序?

我希望更新是有序的,即使是异步执行的(正确排队以供以后执行)。如果是这种情况,我希望创建和删除消息也是如此。

提前致谢。

【问题讨论】:

    标签: asynchronous dynamics-crm-2011 crm


    【解决方案1】:

    对于异步插件,执行顺序不能保证,如果你想让插件按照队列执行,你需要使用 DependencyToken 属性。

    你可以在这里找到一篇文章:

    Dependency and Execution Order in Asynchronous Operations

    【讨论】:

    • 这排除了异步插件。谢谢您的回复。我会直接联系MS。与此同时,我会接受这个作为答案。
    【解决方案2】:

    除了@GuidosPreite,我可以说,在我之前运行的测试中,插件将按照您期望的顺序执行。

    但是,正如他所说,不要把你的房子押在上面。如果你不走运,一个早期的线程可以比早期的延迟更多地执行。并且提供墨菲定律,它会。

    此外,不同的汇总、服务器、星期几等的行为可能会有所不同。简而言之:是但不是。

    【讨论】:

    • 除了粗体字的俗气,我同意你的评价。这具有破坏任何旨在从 CRM 复制数据的集成的令人讨厌的副作用。这真的没有意义。
    • 为什么俗气?这被认为是不愉快的吗?!如果是这样,我会立即编辑它。 :)
    【解决方案3】:

    下图显示了插件和工作流的执行顺序如何工作。 Importance of execution order

    结论: 通常工作流的默​​认执行顺序值为“0”,用户无法定义该值。如果用户在插件步骤中将执行顺序设置为“1”,则将在插件之前触发实时工作流。

    如果用户需要在实时工作流之前执行插件,那么用户必须在插件步骤中将执行顺序更改为“0”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多