是在交易中处理的CRM 2011 iorganizationservice.savechanges()方法



我已经使用CRM 2011 SDK工具为早期实体生成类。我的要求包括一个借方信用场景。因此,如果一个创建对象失败,则必须向后回滚。

我找不到有关上述方法是否在交易中执行操作的信息。

任何人都可以确认吗?

谢谢

取决于您如何执行创建呼叫。

外部,例如从控制台应用程序。那不是。CRM 2015/2016中引入了从外部申请进行交易调用的能力。

示例:在交易中执行多个请求

Microsoft Dynamics 365(在线&本地(支持批处理 请求到单个Web服务方法调用。在 批次作为单个数据库事务的一部分执行。失败 任何成功完成的请求都会导致任何滚动 已完成的请求,并且未对请求进行进一步处理 尚未执行。

如果您要在插件内执行,则可能包括在交易中包含您的创建呼叫,取决于插件的注册。

包含在数据库交易中

插件可能会在数据库事务中执行,也可能不会执行 Microsoft Dynamics CRM平台。插件是否是 事务取决于消息请求的处理方式 管道。您可以检查插件是否正在执行交易中 通过阅读由继承的IsIntransaction属性 iPlugineXecutionContext传递给插件。如果插件是 在数据库事务中执行并允许例外 返回平台,整个交易将滚动 后退。阶段20和40保证是数据库的一部分 交易虽然第10阶段和50阶段可能是交易的一部分。

在数据库事务期间执行的任何注册插件 然后将例外返回到平台取消核心 手术。这导致核心操作的回滚。在 此外,任何具有事件的事件或后事件已注册的插件 尚未执行以及同一事件触发的任何工作流程 注册插件将不会执行。

最新更新