1

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

4

2 回答 2

1

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

一种可能的情况是,当您现在处理来自同一实体的两条记录时,删除插件会触发两次,并可能在第二次执行时引发异常。

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

if(pluginExecutionContext.Depth > 1)
    return;

您的插件将被禁止被其他插件或自身触发。

问候,

凯文

于 2012-08-02T10:13:23.627 回答
0

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

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

于 2012-06-28T10:19:32.023 回答