我的 CRM 系统中有一个 Trace 实体,无论插件或工作流事件是否失败,我都想为该实体插入记录。当实时插件/工作流失败时,所有发生的数据操作都会回滚,因此任何插入的 Trace 记录也会回滚。
我知道我可以使用 ITracingService,但是很多时候最终用户不愿意/无法在发生错误时将问题转告给我。
有没有人知道在事务之外插入跟踪记录的受支持方法,因此无论代码成功还是失败,它们都可用?
最佳答案
如果您使用的是 Dynamics CRM Online(现在从 Spring 更新开始支持此功能。)它运行良好,并会在 1 天后自动清除日志。
对于本地,您必须在执行事务之外编写它们。因此,您有几个不同的选择:
ITracingService
(它只有一种简单的方法)并且可以在您可能使用 CRM 跟踪实现的任何地方使用。您可以在此处查看我的快速实现(用于不同目的):https://stackoverflow.com/a/28186429/394978 .您仍然需要实现写入磁盘/webservice/sql。顺便说一句,让它写入网络服务,从技术上讲,它仍然可以在 CRM Online 中工作。 关于c# - 如何在 Dynamics CRM 中的插件事务之外执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30808267/