【发布时间】:2014-10-21 08:58:33
【问题描述】:
我有一个场景,我需要同时更新 SQL Server 表和 Microsoft CRM 记录作为一个事务,如果一个失败,另一个也必须失败。实现这一目标的最佳方法是什么?我应该使用什么技术?
【问题讨论】:
我有一个场景,我需要同时更新 SQL Server 表和 Microsoft CRM 记录作为一个事务,如果一个失败,另一个也必须失败。实现这一目标的最佳方法是什么?我应该使用什么技术?
【问题讨论】:
如果您使用的是 CRM 2011 或 CRM 2013,则事件前插件始终在数据库事务中执行,并且在出现故障时将回滚。您可以选择在数据库事务内部或外部执行事件后操作。
如果您提到的 CRM 表是触发事务的表,那么您应该将更新该表的逻辑放在更新前插件中,并将 SQL 表更新逻辑放在事务中的更新后插件中。
如果正在更新的 CRM 表不是触发事务的表,那么您应该将这两个逻辑都放在事务内的更新后插件中。
在这两种情况下,如果出现故障,一切都会回滚。
【讨论】: