如何使用涉及Number值过滤器的自定义FetchXml查询Dynamics CRM Web API?

Fel*_*lix 5 dynamics-crm fetchxml dynamics-crm-online dynamics-crm-webapi

我正在尝试使用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>
Run Code Online (Sandbox Code Playgroud)

当我们在WEB API上通过GET运行它时:

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>
Run Code Online (Sandbox Code Playgroud)

CRM Web API返回无效的XML错误,如下所示:

{"error":{"code":"","message":"无效的XML.","innererror":{"message":"无效的XML.","type":"System.ServiceModel.FaultException`1 [[Microsoft.Xrm.Sdk.OrganizationServiceFault,Microsoft.Xrm.Sdk,Version = 8.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35]]"}}}

如果过滤器值不以数字开头,或者我删除过滤器值上的'%',则查询运行正常.我的结论是,这与我的过滤器值中的"%+ number"的编码和解码有关.

我的查询有什么问题,还是这个Dynamics CRM Web API错误?任何工作?

Ska*_*kaj 0

不知道为什么它不起作用,但您可以使用过滤器来获取包含数字 3 的电话号码。

cc_WebAPI_ServiceURI/accounts?$filter=contains(telephone1,'3')
Run Code Online (Sandbox Code Playgroud)