Dynamics 365 FetchXML - использовать оператор IN для строки
Поскольку мне нужно создать запрос, в котором мне нужно добавить условие фильтра, где допустимый тип объекта может быть любым из 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 для условия entitytype.
Чтобы проверить этот запрос, я использую тестер XRMTool 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>
В результате вышеуказанный запрос не возвращает никаких записей.
Примечание. Я отформатировал это с помощью кнопки "Форматировать" тестировщиков FetchXML.
Любая помощь?
1 ответ
Причиной был вариант формата по умолчанию, предоставленный 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>