gpt4 book ai didi

java - SugarCRM 自定义字段

转载 作者:行者123 更新时间:2023-11-30 01:59:16 25 4
gpt4 key购买 nike

我正在编写一个用于自定义软件和 SugarCRM 数据同步的软件。因此我需要一个 updateOrCreate() 函数。我的问题是,自定义软件使用 SugarCRM 以外的其他 uuid,因此我无法查找 uuid 来检查更新或创建。因此,我想将自定义 uuid 保存在 SugarCRM 的自定义字段中。但我不知道如何通过 SugarCRM 的 REST-API 来做到这一点。顺便说一句,我写了一个java应用程序。

感谢您的帮助!

最佳答案

据我所知,没有更新或创建 API(请参阅 https://your-sugarsite/rest/v10/help ),但是,如果您只想使用该 API(而不是自定义它),您可以像这样同步数据:

1) 使用 POST /rest/v10/<module>/filter 获取具有自定义 uuid 的所有记录 id端点和有效负载类似于:

{
offset: 0,
max_num: 1000,
fields: ["id", "custom_uuid_c"],
filter: [{"custom_uuid_c": {"$not_empty": ""}}],
]
}

或者如果您一次只需要一个特定的自定义 uuid:

{
offset: 0,
max_num: 1000,
fields: ["id"],
filter: [{"custom_uuid_c": {"$equals": "example-custom-uuid"}}],
]
}

响应将如下所示:

{
next_offset: -1,
records: [
{"id": "example-sugar-uuid", "custom_uuid_c": "example-custom-uuid"},
...
],
}

注释:

  • 确保评估 next_offset即使具有高max_num由于服务器限制,您可能无法一次获取所有记录。只要next_offset不是-1您应该将其值用作 offset在新请求中获取剩余记录。
  • 您可以在 fields 中提供需要同步的所有字段名称。数组,以便您尽早获取该信息并可以检查是否需要更新(也许数据仍然是最新的?)
  • Sugar 还始终在响应中包含某些字段,无论是否请求。 (例如 iddate_modified )。为了简单起见,我没有将它们全部包含在响应片段中。

2)

根据上一步中收到的信息,您知道哪个糖 ID 属于哪个自定义 UUID,并且您可以检测/准备更新数据。

如果您需要先同步所有并检索完整列表,我建议您创建一个查找表 custom-uuid => Sugar-id,这样您在查找特定数字时就不必循环遍历数据数组并比较字段.

不要忘记考虑自定义 uuid 一次出现在一个或多个 Sugar 记录中的可能性,除非您强制它们在服务器/数据库端是唯一的。

3)

现在您已拥有所需的所有信息,您可以根据需要更新和创建记录:

  • 更新现有记录:PUT /rest/v10/<module>/<record_id>

  • 创建缺失记录:POST /rest/v10/<module>

如果想在单个请求中发送大量创建和/或更新,请查看 POST /rest/v10/bulk API - 如果您的 Sugar 版本有它。

最终说明:

  • /rest/v10/help 上的过滤器运算符定义似乎不完整,有关更多信息,您可以查看 the filter docs

关于java - SugarCRM 自定义字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53437664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com