【问题标题】:How to query Dynamics CRM Web API using custom FetchXml involving Number value filter?如何使用涉及数值过滤器的自定义 FetchXml 查询 Dynamics CRM Web API?
【发布时间】:2017-04-14 03:21:36
【问题描述】:

我正在尝试使用 WEB API /api/data/v8.x 执行 fetch 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 错误如下:

{ “错误”:{ "code":"","message":"无效的 XML。","innererror":{ “消息”:“无效的 XML。”,“类型”:“System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk,版本=8.0.0.0,文化=中性, PublicKeyToken=31bf3856ad364e35]]" } } }

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

我的查询有什么问题吗?还是这个 Dynamics CRM Web API 错误?有什么解决方法吗?

【问题讨论】:

  • 令人惊讶的是,将单个数字作为参数传递是可行的。 value='%3' 例如。 value='%03%'value='%30%' 都不起作用。

标签: dynamics-crm dynamics-crm-online fetchxml dynamics-crm-webapi


【解决方案1】:

在这里,Dynamics 365 在内部对 FetchXML 查询字符串进行两次解码。工程团队被告知此问题。他们将在即将发布的版本中提供修复,并可能在最新的公开版本中提供。在此之前,您可以尝试对查询字符串进行两次编码,或者在编码后将所有出现的% 字符替换为%25。例如,字符串value%3D"%2503%25" 可以替换为value%3D"%252503%2525"。请注意,一旦修复可用,建议的解决方法将不再有效。

【讨论】:

  • 看起来像是用 8.2.1.207 修复了
【解决方案2】:

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

cc_WebAPI_ServiceURI/accounts?$filter=contains(telephone1,'3')

【讨论】:

    猜你喜欢
    • 2023-03-12
    • 1970-01-01
    • 2015-10-25
    • 1970-01-01
    • 2017-10-23
    • 1970-01-01
    • 2012-06-16
    • 2021-02-19
    • 1970-01-01
    相关资源
    最近更新 更多