3

我正在使用 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:如何通过 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'

大富?

谢谢。

4

2 回答 2

4

感谢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并获取不同的数据。

于 2012-10-25T16:46:12.007 回答
1

看看sugarcrm/tests/service/RESTAPI4Test.php。它有很多关于如何使用 REST API 的示例。查看测试代码以获取有关如何使用库/框架/API 的代码示例是一种常见的做法。从这个意义上说,测试是一个非常好的文档。

希望有帮助。

于 2012-10-25T10:28:20.173 回答