Я пытаюсь выполнить выборку XML с помощью WEB API /api/data/v8.x. Все в порядке, если у меня есть запрос, включающий «где атрибут содержит числовое значение». Например, следующий fetchXML найти запись с номером телефона содержит '03':Как запросить API-интерфейс Dynamics CRM с помощью настраиваемого FetchXml, включающего фильтр значений числа?
<fetch mapping="logical">
<entity name="account">
<attribute name="name" />
<attribute name="telephone1" />
<order attribute="name" descending="false" />
<filter type="and">
<condition attribute="telephone1" operator="like" value="%03%" />
</filter>
</entity>
</fetch>
Когда мы запускаем его через GET на WEB API:
https://CRM_URL/api/data/v8.0/accounts?fetchXml=<fetch%20mapping%3D"logical"><entity%20name%3D"account"><attribute%20name%3D"name"%20%2F><attribute%20name%3D"telephone1"%20%2F><order%20attribute%3D"name"%20descending%3D"false"%20%2F><filter%20type%3D"and"><condition%20attribute%3D"telephone1"%20operator%3D"like"%20value%3D"%2503%25"%20%2F><%2Ffilter><%2Fentity><%2Ffetch>
CRM Web API возвращает недопустимую ошибку XML следующим образом:
{"error": { "code": "", "message": "Invalid XML.", "Internalerror": { "message": "Invalid XML.", "Type": "System.ServiceModel.FaultException`1 [[Microsoft. Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version = 8.0.0.0, культура = нейтральной, PublicKeyToken = 31bf3856ad364e35]]»}}}
прогон запрос в порядке, если значение фильтра не запускается с номером или я удаляю «%» по значению фильтра. Мое заключение заключается в том, что это связано с кодированием и декодированием «% + number» в моем значении фильтра.
Есть ли что-то не так с моим запросом или это ошибка в API Dynamics CRM? любая работа вокруг?
Удивительно, что передается однозначное число в качестве параметра. 'value = '% 3'' например. Ни 'value = '% 03%', ни' value = '% 30%' 'не работает. – dynamicallyCRM