CRM 2011 -更新插件出错

本文关键字:插件 出错 更新 2011 CRM | 更新日期: 2023-09-27 18:01:21

我有一个Microsoft Dynamics CRM 2011插件,当我更新学生实体时触发。

每个学生记录都绑定到一个联系人记录。根据名字,姓氏和电子邮件地址。因此,当这些字段中的一个在更新时更改时,必须创建一个新的联系人记录来匹配该学生。

然后,在学生表单中,必须在联系人查找字段中自动填充此新联系人。

我已经写了代码来做这个,但是当我尝试service.Update(entity)时,它失败了。

谢谢你的帮助!

CRM 2011 -更新插件出错

你已经注册了这个插件来执行Student实体的Update事件,对吗?然后,你可能会遇到一个例外,那就是抱怨无限循环……因为将从更新中触发另一个更新。您的服务。Update调用重新启动给定记录上的更新管道。

如果您在CRM弹出的错误对话框中单击"下载日志文件"链接,请检查Message和InnerFault字段,以查看是否包含其他进一步的信息。

CRM在插件调用期间跟踪调用堆栈深度,如果超过深度限制,将抛出"无限循环"错误。(见文章在这里和这里)

如果你必须在更新期间更新当前记录,有几个解决方法:在插件开始时检查调用堆栈深度,如果超过预期值就不做任何事情(不是理想的解决方案,但它确实有效),或者相应地检查预期属性和代码的存在(或不存在)。例如,在您的场景中,您可以将preMessageImage对象中的ave_contactid属性与postMessageImage对象进行比较。如果该字段正在更改,请不要在插件中再次更改。