【问题标题】:How to get a record by anything else than it's id - SugarCRM如何通过 id 以外的任何内容获取记录 - SugarCRM
【发布时间】:2018-05-30 15:06:56
【问题描述】:

这个问题你可能不清楚,但我的问题很简单

SugarCRM documentation 建议要获取记录,我应该向/<module>/:recordId 发送 GET 请求。

我想要实现的是通过它的电子邮件获取记录。

在之前的 SugarCRM 版本中,我可以在负载请求中向他们的 API 发送 SQL 查询。 但是这里因为它是一个 GET 请求,所以没有正文。

我需要帮助

【问题讨论】:

    标签: sql json sugarcrm


    【解决方案1】:

    要通过匹配非 id 字段来获取记录,您可以使用记录过滤器 API /<module>/filter(请参阅 Sugar 的 documentation/rest/v10/help)来指定要搜索哪些值的字段。

    如果您最多只关心一个匹配记录,请在选项中指定"max_num": 1

    作为响应,您将收到一个带有 records 数组的 json 对象,其中包含匹配的记录。

    按电子邮件地址过滤

    电子邮件地址之前存储在 email1、email2 等字段中。 那些遗留字段仍然存在于 Sugar >=7(目前)中,并且可以与这样的请求负载一起使用:

    {
        max_num: 1,
        filter: [
            {"email2": "test@secondary.test"},
        ],
        fields: ["id"],
    }
    

    这将仅在辅助电子邮件地址中搜索电子邮件地址。

    但是,在现代 Sugar 中,电子邮件地址存储在名为 email_addresses 的关系支持链接字段中,该字段连接到可以像这样搜索的 EmailAddress 记录:

    {
        max_num: 1,
        filter: [
            {"email_addresses.email_address": {"$equals": "test@something.test"}},
        ],
        fields: ["id"],
    }
    

    这将返回与 any 电子邮件地址匹配的记录。不管它是主要的还是另一个。

    随机相关笔记

    • 过滤器端点显然同时支持GETPOST 方法,因此您可以选择是通过请求的查询字符串还是在请求正文中传输过滤器定义和选项。
    • GET/<module> 端点的请求将使用相同的底层过滤器 API。但是,您不能在 /<module> 上使用 POST 进行过滤,因为该组合保留用于创建新记录。
    • 如果您不确定您的搜索条件在 Sugar 过滤器语法中应该是什么样子,您可以使用 Sugar 在模块列表视图中创建一个示例过滤器,并在浏览器的调试器的网络选项卡中检查 Sugar 生成的请求负载看起来像。
    • 如果需要通配符搜索,可以使用通配符 % 来完成,例如对于%@whatever.test,似乎需要使用与$equals 不同的运算符,例如$starts$contains
    • 如果您只关心匹配数,而不关心实际记录,请将您的过滤器发送到/<module>/count (GET) 端点或/<module>/filter/countGETPOST)。
    • 在开发测试期间,我建议使用高于预期返回值的max_num,以确保在由于过滤器定义不正确而在结果中出现任何误报时立即看到它。或者密切关注响应 json 中的 next_offset:如果没有比响应中已经返回的结果更多的结果,它将具有值 -1
    • $equals 运算符有一个简短的符号,例如{"email_addresses.email_address": {"$equals": "test@something.test"}}, 也可以写成{"email_addresses.email_address": "test@something.test"},。

    【讨论】:

      猜你喜欢
      • 2015-11-20
      • 2016-08-09
      • 1970-01-01
      • 1970-01-01
      • 2012-12-14
      • 1970-01-01
      • 1970-01-01
      • 2012-05-15
      • 2021-04-19
      相关资源
      最近更新 更多