【问题标题】:How to join Audit table to Entity table using FetchXML in Dynamics 365 Customer Engagement如何在 Dynamics 365 Customer Engagement 中使用 FetchXML 将审核表连接到实体表
【发布时间】:2021-06-07 03:41:43
【问题描述】:

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

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

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

感谢您的帮助。

【问题讨论】:

    标签: dynamics-crm dynamics-365 fetchxml audit-tables


    【解决方案1】:

    很遗憾,您不能像使用audit 表那样加入相关表。此外,查询可能需要 UNION 基于objecttypecode 与不同的表连接。 FetchXML 不支持 UNION。

    audit 表有点棘手,它不像任何其他实体 - 因为某些数据存储在像 changedata 这样的列中的非规范化和分隔符分隔值中。此外,audit 与除systemuser 之外的其他表之间也没有关系。 Read more

    您可以使用 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'
    

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

    【讨论】:

      【解决方案2】:

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

      例如:

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

      对象 id 是对正在审计的记录的查找。对于reference

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-11-27
        • 2019-09-03
        • 1970-01-01
        • 2022-10-17
        • 1970-01-01
        • 1970-01-01
        • 2021-01-06
        • 1970-01-01
        相关资源
        最近更新 更多