CRM 2011插件注册工具的过滤属性有何作用?

时间:2012-12-07 22:09:30

标签: dynamics-crm-2011

我认为对于Update插件,它指定了一个属性列表,如果更改了,则会导致插件触发。

因此,如果我针对Foo注册一个插件,只有一个针对Bar指定的过滤属性,则每次更新Foo实体时,CRM都会执行检查以查看是否{{ 1}}已更新,如果有,它运行我的插件。所以使用下面的代码,我希望我的插件能够执行一次。

Bar

我在这个假设中是对的吗?

2 个答案:

答案 0 :(得分:14)

虽然您的初始分析是松散正确的(即过滤属性导致插件仅在一个或多个过滤属性发生变化时才会触发),但这并不完全准确。

当实体被更改时,例如联系人的电子邮件地址,平台(以及您的插件)只接收增量。在我的示例中,Target InputParameter中将有一个实体,它只包含一个属性(email)。即使联系人记录包含更多数据,情况也是如此 - 只有更改的数据才会发送到平台。 (顺便说一下,这是Pre和Post实体图像的来源,因为它们允许您访问未更改的实体上的值,而不必发出检索)。

因此,考虑到这一点,正确地说,过滤属性意味着只有在请求中存在一个或多个过滤属性时才会触发插件。 CRM ui通常不会发送值,除非它已更改(forceubmit会覆盖此行为)。在您的示例Daryl中,插件将触发两次,因为两个请求中都存在过滤属性。

答案 1 :(得分:-1)

这是为了缩小插件的执行范围。 仅当一个或多个注册属性发生更改时,才会触发插件。