salesorderdetail エンティティの削除プラグインで、非常に厄介なエラーに直面しています。次のように、別の salesorderdetail レコード (製品へのサポート ライン) を作成するエンティティに作成後のプラグインを登録しています。これで、最初の salesorderdetail レコードを削除したときに起動する削除プラグインができました。混乱を避けるために、A は B を作成し、A が削除されると (削除プラグインが起動すると)、自動的に B を削除します。私のロジックとプラグインは、商談製品ラインと qoute 製品ラインに対して機能します。A (最初の salesorderdetail) を削除しようとすると、「親が編集できないため、詳細を更新できません」というエラーが表示されます。今私の質問は、どうすればエラーを回避できますか? 誰かがここで私を助けてくれれば、本当に感謝しています。前もって感謝します。
1679 次
2 に答える
1
現在のロジックでは、2 つの異なるエンティティを使用している可能性はありますか?
考えられることの 1 つは、同じエンティティから 2 つのレコードを処理しているため、削除プラグインが 2 回トリガーされ、2 回目の実行で例外がスローされる可能性があることです。
これを回避するには、execute メソッドの先頭にこれを追加するだけです。
if(pluginExecutionContext.Depth > 1)
return;
プラグインは、別のプラグインまたはそれ自体によってトリガーされることを禁止されます。
よろしく、
ケビン
于 2012-08-02T10:13:23.627 に答える
0
レコードを編集するにsalesorder
は、ステータスが「新規」 ( ) である必要があると思います。statuscode == 1
したがって、削除プラグインは、salesorder ステータスを「new」に設定し、必要な orderdetail レコードを削除してから、元の値に戻す必要がある場合があります。
于 2012-06-28T10:19:32.023 に答える