有没有办法在不抛出异常的情况下回滚 Dynamics CRM 插件中的事务?

Is there a way of rollback the transaction inside Dynamics CRM plugin without throwing exception?

我需要在不引发异常的情况下取消从 CRM 插件内部创建新实体记录的操作。

有没有办法在不抛出异常的情况下回滚 Dynamics CRM 插件中的事务?

不可以,您只能通过删除同一交易中的记录来撤消此操作。

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

创建一个自定义操作,然后您可以从其中包含插件的工作流中调用该自定义操作,该插件主要确定是否应创建记录。如果应该,它会创建它,如果不应该,它就会退出。

这样就不用抛异常了,还可以起个好听的名字"ConditionallyCreateFoo".