SugarCRM REST API,如何获取与帐户相关的联系人

时间:2012-10-24 22:08:05

标签: php sugarcrm

我正在使用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_idaccount_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?

感谢。

2 个答案:

答案 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的代码示例,查看测试代码是一种常见做法。从这个意义上说,测试是一个非常好的文档。

希望有所帮助。