0

因为我需要创建一个查询,我需要在其中添加一个过滤条件,其中有效的实体类型可以是 e1、e2、e3 中的任何一个。

为此,我目前在 FetchXML 下面写了:

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true" top="5000">
  <entity name="changelog" >
    <filter type="and" >
      <condition attribute="statecode" operator="eq" value="0" />
      <condition attribute="event" operator="eq" value="Delete" />
      <filter type="or" >
        <condition attribute="entitytype" operator="eq" value="email" />
        <condition attribute="entitytype" operator="eq" value="fax" />
        <condition attribute="entitytype" operator="eq" value="letter" />
        <condition attribute="entitytype" operator="eq" value="phonecall" />
      </filter>
    </filter>
    <order attribute="statuscode" />
    <order attribute="event" />
    <order attribute="createdon" />
  </entity>
</fetch>

上面的查询正在传递预期的记录。

但是,我相信也可能有另一种方法 - 通过使用 IN 运算符作为实体类型条件。

为了测试该查询,我使用了 XRMTool 的FetchXML Tester,它会引发错误。查询如下:

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true" top="5000">
  <entity name="changelog" >
    <filter type="and" >
      <condition attribute="statecode" operator="eq" value="0" />
      <condition attribute="event" operator="eq" value="Delete" />
            <condition attribute="entitytype" operator="in" >
                <value>
                    phonecall
                </value>
                <value>
                    email
                </value>
                <value>
                    fax
                </value>
                <value>
                    letter
                </value>
            </condition>
        </filter>
        <order attribute="statuscode" />
        <order attribute="event" />
        <order attribute="createdon" />
    </entity>
</fetch>

上面的查询没有返回任何记录作为结果。

注意:我使用 FetchXML 测试人员的格式按钮对此进行了格式化。

有什么帮助吗?

4

1 回答 1

0

原因是FetchXML Tester提供的默认格式选项。

它格式化 FetchXML 的方式是它没有返回任何值的原因。

它应该被格式化如下:

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true" top="5000">
  <entity name="changelog" >
    <filter type="and" >
      <condition attribute="statecode" operator="eq" value="0" />
      <condition attribute="event" operator="eq" value="Delete" />
            <condition attribute="entitytype" operator="in" >
                 <value>phonecall</value>
                 <value>email</value>
                 <value>fax</value>
                 <value>letter</value>
            </condition>
        </filter>
        <order attribute="statuscode" />
        <order attribute="event" />
        <order attribute="createdon" />
    </entity>
</fetch>
于 2020-01-07T04:52:14.703 回答