理解 CRM 中的审计表

Posted

技术标签:

【中文标题】理解 CRM 中的审计表【英文标题】:Making sense of the Audit table in CRM 【发布时间】:2021-12-19 03:02:51 【问题描述】:

我正在尝试从 CRM 中提取所有合并的记录,我在联系人记录的“审核历史记录”页面中看到以下内容:

如果我点击它,我会得到以下信息:

如果我分析代码以查看 SQL 运行的内容,它会执行以下操作:

exec sp_executesql N'select 
"audit0".AuditId as "auditid"
, "audit0".AttributeMask as "attributemask"
, "audit0".ChangeData as "changedata"
, "audit0".CreatedOn as "createdon"
, "audit0".Action as "action"
, "audit0".Operation as "operation"
, "audit0".CallingUserId as "callinguserid"
, "audit0".UserId as "userid"
, "audit0".ObjectId as "objectid"
, "audit0".ObjectTypeCode as "objecttypecode"
, "audit0".CallingUserIdName as "callinguseridname"
, "audit0".UserIdName as "useridname"
, "audit0".ObjectIdName as "objectidname" 
from
 Audit as "audit0" 
where
 ("audit0".AuditId = @AuditId0)',N'@AuditId0 uniqueidentifier',
 @AuditId0='7FE1B120-87EC-E811-8BE0-005056B12EA2'

结果显示为:

有谁知道我如何获得它实际合并的 Yes 记录?我无法理解它们如何显示为旧值与新值的结果。

【问题讨论】:

或许这篇博文会给你一些提示a33ik.blogspot.com/2011/11/… 【参考方案1】:

当您在 CRM 中单击记录上的 保存 按钮时,会在 SQL 中创建 一个 审核行,其中描述了此保存所做的所有更改。只有 old values 存储在 SQL 中。 那么如何获取new values呢? 您可以按 createdon 升序对 audit 查询进行排序,对于每一行,new value 是下一行 old value。要获得最终的new value,您应该将 audit 表与 contact 表连接起来,并从 contactMerged 字段值/em> 表。

【讨论】:

以上是关于理解 CRM 中的审计表的主要内容,如果未能解决你的问题,请参考以下文章

SAP CRM BOL编程基础,代码+详细注释

SAP CRM WebClient UI的on_new_focus应该怎么理解

PHP代码审计理解---EMLOG某插件文件写入

如何通过 Dynamics 365 CRM 中的 C# 插件填充查找字段

PHP代码审计中你不知道的牛叉技术点

技术专题-PHP代码审计