2012-06-28 36 views
1

我在salesorderdetail實體上的刪除插件上遇到了一個非常惱人的錯誤。如下所示,我在創建另一個salesorderdetail記錄(對產品的支持行)的實體上註冊了一個創建後插件。現在我有一個刪除插件,當我刪除最初的salesorderdetail記錄時它應該會觸發。刪除混淆A創建B,刪除A(刪除插件觸發)自動刪除B.我的邏輯和插件用於機會產品系列和產品系列。當我嘗試刪除A(初始salesorderdetail)時,出現錯誤「無法更新細節,因爲父項不可編輯」。現在我的問題是如何避免錯誤?如果有人能幫助我,我真的很感激。提前致謝。刪除SalesOrderDetail實體上的插件問題 - CRM2011

回答

0

我相信您的salesorder記錄需要處於「新」狀態(statuscode == 1),供您編輯它。

因此,您的刪除插件可能需要將銷售訂單狀態設置爲「新建」,刪除所需的orderdetail記錄,然後將其設置回原始值。

+0

嗨格雷格,這是我做了什麼我已經設置了statecode爲0(有源)和的StatusCode 1(新),EntityMoniker新的EntityReference( 「salesorder」 salesOrder_id.Id)使用SetStateRequest消息。有趣的是我可以刪除創建插件創建的行(支持行 - B),但不能刪除最初的行(A),因爲它引發了該錯誤。真的不知道這是怎麼可能的,因爲如前所述,它對我的​​其他實體來說工作得非常好。 –

1

用你目前的邏輯,你有可能使用兩個不同的實體嗎?

一件可能的事情是,當您現在使用同一個實體的兩條記錄工作時,delete插件會觸發兩次,並可能在第二次執行時拋出異常。

爲了避免這種情況,只需在執行方法的開始補充一點:

if(pluginExecutionContext.Depth > 1) 
    return; 

你的插件將被禁止其它插件或本身是觸發。

問候,

凱文