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

时间:2015-03-29 12:17:35

标签: c# plugins dynamics-crm dynamics-crm-2013

我有三个实体,我们称之为 Alpha Beta Gamma 。已注册两个插件以触发消息更新,包括后期操作和同步。

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

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

让我疯狂的是, aja 的变化(显然会触发第一个插件导致 baja 更新)并不会触发第二个插件在 gaja 中设置一个值。

我希望 Alpha 的更改能够传播到 Gamma ,因为它是如何工作的。我怀疑我错过了一些东西,但经过几次尝试,记录检查,哭泣和咒骂,我迷失了。我可以丢失什么愚蠢的东西?!

1 个答案:

答案 0 :(得分:1)

您通常面临的行为与IExecutionContext.Depth支票

相关联

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

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

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