【问题标题】:How to get audit record details using FetchXML如何使用 FetchXML 获取审计记录详细信息
【发布时间】:2015-11-11 00:40:15
【问题描述】:

使用此查询我能够检索 Microsoft Dynamics CRM 在线中的审计记录

<fetch version="1.0" >
  <entity name="audit" >
    <all-attributes/>
  </entity>
</fetch>

但这缺少有关操作中发生的事情的信息,更具体地说,列的 old valuenew value 已更改。当我在常规界面的设置中使用审计工具时会显示此数据,因此数据存在。有谁知道如何获取它?是否缺少另一个实体?

【问题讨论】:

    标签: dynamics-crm fetchxml


    【解决方案1】:

    审核记录仅跟踪旧值。因此,当一个属性被修改时,只有它的旧值被存储在审计表中。

    必须通过从活动实体记录中获取新值或(当该值被多次修改时)通过获取该实体的后续审计记录的旧值来派生新值。旧值可以在Audit 实体的ChangeData 字段中找到。

    直接使用 Audit 实体重建实体历史将需要大量工作,并且在大多数情况下是不必要的。相反,您可以使用RetrieveRecordChangeHistoryRequest。对应的RetrieveRecordChangeHistoryResponse 有一个AuditDetail 集合。集合中 AttributeAuditDetail 类型的项目包含 OldValueNewValue 属性,可为您提供所需的信息。

    【讨论】:

    • 好的,这是有道理的,关于如何获得旧值的任何想法?似乎没有专栏。与实际内容相比,数据与操作更相关
    • 旧值在ChangeData 字段中,但您可能更喜欢使用RetrieveRecordChangeHistoryRequest。我扩展了我的答案。
    • 这听起来像 c# 函数,但一些谷歌搜索显示我也可以通过 JavaScript 进行这些调用,谢谢你指出我这个方向
    • Request en Response 对象是 CRM Web 服务数据契约的一部分,但是是的,它们最常用于 .NET 世界。很高兴我能帮上忙。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-08
    • 1970-01-01
    • 1970-01-01
    • 2014-01-26
    • 1970-01-01
    相关资源
    最近更新 更多