Dynamics crm 2011 是否有一种方法可以在不引发异常的情况下回滚Dynamics CRM插件中的事务?

Dynamics crm 2011 是否有一种方法可以在不引发异常的情况下回滚Dynamics CRM插件中的事务?,dynamics-crm-2011,dynamics-crm,dynamics-crm-2013,Dynamics Crm 2011,Dynamics Crm,Dynamics Crm 2013,我需要取消从CRM插件内部创建新实体记录的操作,而不引发异常 是否有一种方法可以在不引发异常的情况下回滚Dynamics CRM插件中的事务 否,您只能通过删除同一事务中的记录来撤消此操作。触发工作流进而调用插件的设计不是很好。您可以使用自定义工作流,将插件的相同逻辑写入此工作流并处理异常。创建自定义操作,然后从工作流中调用该操作,该工作流中包含一个插件,该插件基本上决定是否应创建记录。如果它应该,它就会创建它,如果它不创建,它就会退出 这样,您就不必抛出异常,并且可以有条件地为其命名为Crea

我需要取消从CRM插件内部创建新实体记录的操作,而不引发异常


是否有一种方法可以在不引发异常的情况下回滚Dynamics CRM插件中的事务

否,您只能通过删除同一事务中的记录来撤消此操作。

触发工作流进而调用插件的设计不是很好。您可以使用自定义工作流,将插件的相同逻辑写入此工作流并处理异常。

创建自定义操作,然后从工作流中调用该操作,该工作流中包含一个插件,该插件基本上决定是否应创建记录。如果它应该,它就会创建它,如果它不创建,它就会退出


这样,您就不必抛出异常,并且可以有条件地为其命名为CreateFoo。

对于此需求,您的业务案例是什么?这基本上是在欺骗调用代码。如果有一些逻辑来规定什么时候应该创建记录,什么时候不应该创建记录。你能在创建记录之前评估逻辑吗?我试图阻止基于特定条件创建记录,而不会在插件中引发异常。该记录是由工作流创建的,插件会触发,并应防止基于某些条件的创建,因为我无法从工作流中检查它们。您不需要使用自定义操作。因为已经需要代码,所以创建一个自定义工作流代码活动,如果应该创建记录,该活动将返回布尔值true。此时,标准工作流的条件逻辑可以创建或不创建新记录。@Nicknow Tomato,Tomahto。那也行。op说它必须在插件中。所以我提供了一个插件解决方案。如果自定义工作流活动是可行的,那么它可能会减少工作量。