我正在使用SugarCRM Pro 6.5.5。我正在尝试与另一个应用程序进行一些集成,因此我需要从其他应用程序执行一些API调用。我正在使用REST API v2。此时,我需要通过帐户ID获取与帐户相关的联系人。我已尝试get_relationships()
和get_entry_list()
,但我无法让其中任何一个工作。
以下是我对get_relationships()
的输入:
{"session":"eujfbfsfjgni98m0mivl6jm6r2","module_name":"Accounts","module_id":"c03d0649-0525-2f90-1206-50881e87d7dd","link_field_name":"contacts"}
我尝试了很多这方面的变化,以及其他一些选择,但没有做我想要的。这是上面的输出:
stdClass Object
(
[entry_list] => Array
(
[0] => stdClass Object
(
[id] =>
[module_name] => Contacts
[name_value_list] => stdClass Object
(
[deleted] => stdClass Object
(
[name] => deleted
[value] => 0
)
[do_not_call] => stdClass Object
(
[name] => do_not_call
[value] => 0
)
)
)
)
[relationship_list] => Array
(
)
)
我不知道这些信息如何有用。
接下来,我尝试使用查询get_entry_list()
来仅选择具有给定帐户ID的联系人。以下是我的意见:
{"session":"8mol33e7kdq6girugu30dnt074","module_name":"Contacts","query":"accounts.id = 'c03d0649-0525-2f90-1206-50881e87d7dd'"}
我正在使用accounts.id
因为我读过类似的问题,这是正确的。我尝试了很多其他的东西,比如:contacts.account_id
,account_id
等。在每种情况下,我都会在日志中收到MySQL错误,说明该列无效。
SugarCRM: how to get all contacts for an account via REST API
这个问题是相关的,似乎是完全相同的问题。我尝试在输入中添加link_name_to_fields_array
选项,但无论我提供什么值,都会导致日志中出现以下MySQL错误:
AND jt11.deleted=0 where (Array) AND contacts.deleted=0: MySQL error 1054: Unknown column 'Array' in 'where clause'
Dafuq?
感谢。
答案 0 :(得分:3)
感谢 ychaouche ,我明白了。
毕竟我能够使用get_relationships()
方法。在将related_fields
添加到我的输入之前我曾尝试过,但所有这一切都导致结果集为空。答案?将related_module_query
设置为空字符串...现在结果集不为空。是的,昨晚我3个多小时的疯狂谷歌是因为 。
所以,这里有一些工作代码,以防其他人遇到这个问题:
{
"session": "iov9pg9kvvl60librung1h5fh6",
"module_name": "Accounts",
"module_id": "c03d0649-0525-2f90-1206-50881e87d7dd",
"link_field_name": "contacts",
"related_module_query": "",
"related_fields": [
"first_name",
"last_name"
],
"deleted": false
}
这给了我以下结果集:
stdClass Object
(
[entry_list] => Array
(
[0] => stdClass Object
(
[id] =>
[module_name] => Contacts
[name_value_list] => stdClass Object
(
[first_name] => stdClass Object
(
[name] => first_name
[value] => John
)
[last_name] => stdClass Object
(
[name] => last_name
[value] => Smith
)
)
)
)
[relationship_list] => Array
(
)
)
您当然可以在related_fields
中指定不同的字段并获取不同的数据。
答案 1 :(得分:1)
看看sugarcrm/tests/service/RESTAPI4Test.php。它有很多关于如何使用REST API的示例。对于如何使用库/框架/ API的代码示例,查看测试代码是一种常见做法。从这个意义上说,测试是一个非常好的文档。
希望有所帮助。