Crm 2011插件不会触发消息“RemoveMember”

时间:2013-04-05 07:44:27

标签: dynamics-crm-2011 dynamics-crm

我为CRM 2011构建了一个自定义插件。基本上,相同的插件已经部署在两个不同的环境中:Test和Pro。 这些环境显然是双胞胎。相同的实体,相同的配置等。

插件在更新特定布尔字段时触发。在真值上,触发并向列表添加联系人。因此,使用相同的逻辑,在false上设置的相同字段上,触发并从列表中删除联系人。 现在,在“测试环境”中,它会在两种情况下触发。但是在“Pro环境”中,当布尔字段设置为false时,它不会触发!

我放弃了任何逻辑错误实现的假设。因为它在第一个环境中运行良好。 在上面,它不会写这种情况下的任何日志。它让我更加确信它根本不会触发。

有谁知道,可能是什么问题?

1 个答案:

答案 0 :(得分:0)

首先,要确保你的理论是正确的。在插件的顶部放置一个Exception,看看你是否在真实/错误的CRM中获得了Exception弹出窗口。如果你这样做,那么插件同时触发True / False更新,你的代码有问题 - 我无法想象它是什么,因为它在开发中工作,但至少你已经证明,这不是CRM插件基础设施的错误。

如果你没有获得False场景的弹出异常,唯一可能的答案是CRM的插件基础设施不认为该字段应该更新。在更新为False后屏幕刷新时,该字段是否仍显示False或是否返回True?可以通过将字段更新从传递到操作前插件的实体的字段列表中删除来“取消”字段更新 - 是否可能有其他插件在此之前执行并可能取消该字段更新?< / p>

我能想到的最后一件事:你说的是更新,但你的意思是创造吗?如果在Prod中将该布尔字段的默认值设置为False但在Dev中未设置,则在创建实体时,如果将该字段设置为False,则该字段将不会包含在字段更新列表中(因此不会触发您的插件)系统已经知道要在Create上使用的默认值为False。