1

我想在此查询中添加指向实体表的链接:

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

我尝试使用 ObjectTypeCode 属性但链接到 Product 表,但似乎没有相应的值(Product 的 ObjectTypeCode 为 1024)。

谢谢您的帮助。

4

2 回答 2

1

不幸的是,您不能像使用表一样加入相关audit表。此外,查询可能需要 UNION 来连接objecttypecode不同的表。FetchXML 不支持 UNION。

audit表有点棘手,它不像任何其他实体 - 因为一些数据存储在列中的非规范化和分隔符分隔值中,例如changedata. audit除了systemuser. _ 阅读更多

在此处输入图像描述

您可以使用 XrmToolBox FetchXML 构建器围绕审计表进行操作并观察它们。

在此处输入图像描述

审计实体的 Web api 端点如下:

https://crmdev.crm.dynamics.com/api/data/v9.2/audits?$top=50&$select=_objectid_value,attributemask,operation,transactionid,useradditionalinfo,createdon,_userid_value,_regardingobjectid_value,objecttypecode,action,auditid,_callinguserid_value&$filter=objecttypecode eq 'account'

非常有趣的部分$filter=objecttypecode eq 'account'在上面的 web api 查询中。我不知道这甚至是如何工作的。这在 web api 和 fetchxml 之间是矛盾的。

于 2021-03-09T22:49:00.953 回答
0

objecttypecode 是该审计记录的实体标识符,应在您的<filter>部分中使用。如果您想要绑定并显示有关相关实体的信息,您需要知道该实体是从哪里绑定的。它不会显示值之前和之后的值,它只是指向现有记录的链接。

例如:

<link-entity name="product" from="productid" to="objectid" >
        <attribute name="attributenametoshow" />
        <filter>
            <condition attribute="attributenametofilter" operator="" value="" />
         </filter>
</link-entity>

对象 id 是对正在审计的记录的查找。供参考

如果您想要查看审核记录的前后值,则可能需要使用WebApi中的RetrieveRecordChangeHistory函数

于 2021-03-21T17:59:30.520 回答