2012-11-14 128 views
0

我有一條記錄,表示停用時我希望插件自動刪除記錄。因此,我將我的代碼設置爲SetStateDynamically事件,並且它一直運行到我實際獲得服務來刪除該記錄的位置,在那裏出現「發生意外錯誤」。嘗試在關閉時刪除記錄時出錯

我的代碼在下面,任何人都可以看到問題可能是什麼,或者能夠指向正確的方向嗎?

感謝

private void MarkForDeleteDeactivatedRole(EntityReference entity) 
    { 
     Entity role = Service.Retrieve("sb_contactsecurityrole", entity.Id, new ColumnSet(true)); 

     OptionSetValue statusValue = (OptionSetValue)role["statecode"]; 

     if (statusValue.Value == 1) 
     {     
      Service.Delete(entity.LogicalName, entity.Id); 
     } 
    } 
+1

什麼是實際錯誤?如果您檢查日誌或附加調試器,您將成爲更具體的消息。另外你的插件如何註冊(前/後等)? –

+0

您應該提供完整的Execute()方法以開始。另外,嘗試將第二個方法行更改爲'... =(OptionSetValue)role.Attributes [「statecode」];' – Alex

+0

您是否試圖通過Workflow進行操作? – Grigory

回答

1

我已經看到了同樣。我不認爲CRM事件管道支持正在處理該對象的記錄被刪除。你可能會做的最好的事情是異步註冊你的插件,所以錯誤(你無法捕捉,因爲它在CRM事件管道內部)不會冒泡到UI(和你不在交易中)。

+0

這看起來像是問題所在,我找到了一種使用混合解決方案的方法。我會記住異步的想法,如果我再次遇到這樣的事情。謝謝 – jimminybob