插件不会在字段更改时传播

Plugin not propagating on field change

我有三个实体,我们称它们为 AlphaBetaGamma。注册了两个插件以在消息 Update 上触发,都 post 操作和同步。

其中一个在 Alpha 中的字段 aja 更改时调用,它设置字段 的值Beta 的任何相关实例中的 baja。当 Beta 中的字段 baja 更改时调用第二个,它设置字段 gaja 的值在任何相关的 Gamma.

当我对 aja 进行更改时,我可以确认更新已传播到相关实例中的所有 bajabaja 上的相应操作更新所有相关实例的 gaja.

让我发疯的是 aja 中的更改(这显然会触发第一个插件导致 baja 中的更新)没有t 触发第二个插件在 gaja.

中设置一个值

我希望 Alpha 的变化向下传播到 Gamma,因为它应该是这样工作的。我怀疑我错过了什么,但经过几次尝试、日志检查、哭泣和咒骂,我迷路了。我能漏掉什么蠢东西?!

您通常面临的行为与 IExecutionContext.Depth 检查有关

https://msdn.microsoft.com/en us/library/microsoft.xrm.sdk.iexecutioncontext.depth.aspx

因为插件在当前事务中 运行 是同步的,所以它们会导致 Depth 属性.

的增量

可能在您的第二个插件中检查 if (context.Depth > 2) { return; } 会解决问题。