我正在尝试使用 WEB API /api/data/v8.x 执行获取 XML。一切都很好,除非我有涉及“属性包含数值”的查询。例如,以下用于查找电话号码帐户的 fetchXML 包含“03”:
<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 on 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 返回 Invalid XML 错误,如下所示:
{ "error":{ "code":"","message":"Invalid XML.","innererror":{ "message":"Invalid XML.","type":"System.ServiceModel.FaultException`1 [[Microsoft.Xrm.Sdk.OrganizationServiceFault,Microsoft.Xrm.Sdk,版本=8.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35]]" } } }
如果过滤器值不以数字开头,或者我删除了过滤器值上的“%”,则查询运行正常。我的结论是这与我的过滤器值中的编码和解码“%+数字”有关。
我的查询有什么问题还是这个 Dynamics CRM Web API 错误?有什么解决方法吗?