我正在扩展一些CRM标注以添加额外的功能,我被告知不要出于兼容性原因将它们重写为插件。在主导实体的postupdate中,如果主导实体上的某个属性发生了变化,我想执行一些额外的操作。我的标注是核心注册并在更新潜在客户后触发并使用以下标记运行重叠方法
public override void PostUpdate(CalloutUserContext userContext, CalloutEntityContext entityContext, string preImageEntityXml, string postImageEntityXml)
{
}
根据我的理解,我可以将preImageEntityXml和postImageEntityXml反序列化为DynamicEntity对象,以便我可以找出已更改的内容。但是preImageEntityXml和postImageEntityXml都是null,我无法解决原因。
答案 0 :(得分:2)
你无法将插件重写为插件,真是太遗憾了。插件在这里可以很好地工作,因为您可以注册您的步骤,只有在特定属性发生变化时才会触发。这样你的插件就不会在指定实体的每次更新时运行(就像标注一样)。
虽然自从我编写3.0标注以来已经有一段时间了,但我记得有一个callout.config文件,您可以在其中指定要与标注一起传递的前后值。也许没有为标注注册前置和后置值?
<callout entity="lead" event="PostUpdate">
<subscription...>
<prevalue>...
...
<postvalue>...