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