2012-11-14 55 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