在SalesOrderDetail Entity-CRM2011上删除插件问题

时间:2012-06-28 10:00:21

标签: plugins dynamics-crm dynamics-crm-2011 crm

我在salesorderdetail实体的Delete插件上遇到了一个非常烦人的错误。如下所示,我在实体上注册了一个后创建插件,它创建了另一个salesorderdetail记录(产品的支持行)。现在我有一个删除插件,当我删除intiial salesorderdetail记录时应触发该插件。删除混淆A创建B,当A被删除(删除插件触发)时自动删除B.我的逻辑和插件适用于机会产品线和qoute产品线。当我尝试删除A(初始salesorderdetail)时,我收到错误“细节无法更新,因为父级不可编辑”。现在我的问题是如何避免错误?如果有人能帮助我,我真的很感激。提前致谢。

2 个答案:

答案 0 :(得分:1)

根据您当前的逻辑,您是否可能使用两个不同的实体?

一个可能的事情是,当你现在使用来自同一实体的两个记录时,delete插件会触发两次,并且可能在第二次执行时抛出异常。

为避免这种情况,只需在执行方法的开头添加:

if(pluginExecutionContext.Depth > 1)
    return;

您的插件将被禁止由另一个插件或其自身触发。

此致

凯文

答案 1 :(得分:0)

我认为您的salesorder记录需要处于“新”状态(statuscode == 1)才能进行编辑。

因此,您的删除插件可能需要将salesorder状态设置为“new”,删除所需的orderdetail记录,然后将其设置回原始值。