【问题标题】:Microsoft Dynamics Rest Api Record Search by not Formatted Phone Number通过未格式化的电话号码搜索 Microsoft Dynamics Rest Api 记录
【发布时间】:2018-06-22 19:19:17
【问题描述】:

我正在尝试使用他们的 REST Api 通过电话号码在 Dynamics CRM 中查找帐户记录。样品要求:

https://<your_msd_domain>/api/data/v8.2/accounts?$select=accountid,name,telephone1&$filter=contains(telephone1, '4086671234')&$top=10

在 CRM 中的记录是这样的:

您可以看到电话字段以这种方式格式化(408)-667-1234,据我所知,它的格式化方式没有限制。它可以是这样的(408) 667 1234408-667-1234我无法控制此字段的格式。

我已将电话字段添加到“快速查找”中,并且在 CRM 本身中我可以像这样*4*0*8*6*6*7*1*2*3*4* 找到它,例如:

但它不适用于 REST API,因此例如下面的这个请求(我尝试了许多不同的过滤器)没有找到任何东西:

https://<your_msd_domain>/api/data/v8.2/accounts?$select=accountid,name,telephone1&$filter=contains(telephone1, '*4*0*8*6*6*7*1*2*3*4*')&$top=10

所以,问题来了:有没有办法使用 Dynamics CRM REST API 找到“随机”格式的电话号码?通配符?过滤器?过滤函数?...

附:这就是文档中关于搜索可能性的内容:https://msdn.microsoft.com/en-us/library/gg334767.aspx#bkmk_applyqueryOptions

【问题讨论】:

    标签: rest dynamics-crm wildcard dynamics-365 dynamics-crm-webapi


    【解决方案1】:

    您应该使用通配符% 进行搜索。编码值为%25

    %4%0%8%6%6%7%1%2%3%4%编码后变成%254%250%258%256%256%257%251%252%253%254%25

    我使用 REST builder 构建了这些 url,您可以在浏览器地址栏中进行测试。它有效。

    https://testorg.crm.dynamics.com/api/data/v8.2/accounts?$select=name,telephone1&$filter=contains(telephone1, '4%0%8%6%6%7%1%2%3%4')
    
    https://testorg.crm.dynamics.com/api/data/v8.2/accounts?$select=name,telephone1&$filter=contains(telephone1, '%254%250%258%256%256%257%251%252%253%254%25')
    

    【讨论】:

    • 非常感谢!有用!你在哪里找到这个的?我的意思是,我阅读了一堆 Microsoft 文档,但找不到它。
    • @SergeiSirik 基本上这是用于搜索多个字符的 SQL 通配符,幸运 :)
    猜你喜欢
    • 1970-01-01
    • 2015-11-11
    • 2010-12-30
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    • 1970-01-01
    相关资源
    最近更新 更多