【问题标题】:PlugIn is not triggered when Workflow Update the record CRM 2011工作流更新记录 CRM 2011 时不会触发插件
【发布时间】:2014-03-20 15:01:37
【问题描述】:

我在实体上有一个插件并注册了一个更新步骤。但是当我通过工作流更新实体记录时,插件不会被触发。我已经在下面描述了整个执行过程。

  1. 我有一个 PlugInA,它在创建 EntityA 记录时开始执行。
  2. PlugInA 在另一个实体中创建一条记录,例如 EntityB,这会导致 PlugInB 被触发。
  3. 在触发时,PlugInB 以编程方式触发 Workflow,例如 WorkflowA。 WorkflowA 等待某个超时日期。
  4. 超时时,WorkflowA 更新 EntityB 记录。因此,在这种情况下,应该触发 PlugInB,但没有发生(PlugInB 不会开始执行)。

请让我知道上述整个过程中可能出现的问题。

请注意,我使用的是 CRM 2011。此外,如果我手动更新 EntityB 中的记录,则 PlugInB 触发器

【问题讨论】:

  • 你有没有想过这个问题?

标签: c# dynamics-crm-2011 crm dynamics-crm-4 dynamics-crm-online


【解决方案1】:

通常 - 导致插件不触发的原因是上下文深度和其他与工作流的异步性质相关的项目。如果您打算从工作流中触发插件,那么上下文深度将会增加......您还需要确保您的插件不会一遍又一遍地调用自己,所以我建议使用不进行深度检查,不能重新触发自身。

但是 - 再次 - 如果你这样做或与之相关的事情,这可能是插件中的上下文深度检查。

【讨论】:

    【解决方案2】:

    发生这种情况的可能性有很多。很可能您在工作流 A 中为 EntityB 所做的任何更新都不会更新 PluginB 注册中的属性以使其触发。

    其他可能性包括 WorkflowA 没有实际触发,或 PluginB 触发并且可能没有执行任何操作。

    【讨论】:

    • 我已经为更新事件注册了EntityB的所有属性。还有其他原因吗?
    • @user1234085 您如何验证 Worfklow 是否在正确的时间触发?另外,您如何验证 PluginB 没有触发?
    • Workflow 和 PlugInB 必须更新实体中的某些特定字段。因此,工作流正在更新他自己的字段,而 pluginB 没有。此外,我已经附加了远程调试器,所以当工作流运行时,控制权就会出现在我身上,而在 PlugInB 的情况下它不会。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-17
    • 1970-01-01
    • 2014-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多