【问题标题】:How to retrieve list views of any salesforce object using API?如何使用 API 检索任何 Salesforce 对象的列表视图?
【发布时间】:2012-11-15 06:32:50
【问题描述】:

我想通过 API 检索任何 salesforce 对象的所有列表视图。该怎么做?

【问题讨论】:

    标签: api rest soap salesforce


    【解决方案1】:

    这是一个老问题,但是,使用 REST API 和 Salesforce 的查询语言,您可以使用端点:

    {your instance url}/services/data/v32.0/query?q=SELECT Id,Name FROM {object type}
    

    使用端点:

    {your instance url}/services/data/v32.0/sobjects/{object type}/listviews
    

    一些例子:

    获取所有列表视图:https://na16.salesforce.com/services/data/v32.0/query?q=SELECT Id,Name FROM ListView

    要获取所有对象类型为帐户的列表视图:https://na16.salesforce.com/services/data/v32.0/sobjects/Account/listviews

    在 PHP 中:

    $url = "{your instance url}/services/data/v32.0/sobjects/Account/listviews";
    $headers = array('Authorization: OAuth ' . {your access token});
    $ch = curl_init ();  
    curl_setopt ( $ch, CURLOPT_URL, $url );  
    curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, TRUE );  
    curl_setopt ( $ch, CURLOPT_FOLLOWLOCATION, TRUE );  
    curl_setopt ( $ch, CURLOPT_HTTPHEADER, $headers);  
    
    $requestBody = curl_exec ($ch);
    $result = json_decode($requestBody, true);
    

    当然,您需要先通过 OAUTH 登录才能获得访问令牌和实例 URL。

    【讨论】:

      【解决方案2】:

      如果您要查找的是 SOAP api,则称为 describeSObject - 用于特定对象,或“describeGlobal” - 用于您组织的所有数据。

      请参阅下面的参考链接以获取 SOAP 消息: http://wiki.developerforce.com/page/Sample_SOAP_Messages_(10.0_API)

      【讨论】:

        【解决方案3】:

        为给定对象创建一个StandardSetController(用于实例化它的查询可以有“LIMIT 1”或其他内容,无需选择所有记录)。然后使用getListViewOptions()

        请记住,它将返回对当前用户可见的视图(因此只有公共视图 + 标记为“仅对我可见”的视图)。

        编辑: 要从外部访问它(通过 SOAP 或 REST API)... 恐怕我不知道通过 REST 调用获取这些的方法。您可能需要编写一些 Apex 并公开将返回此数据的自定义 REST 资源。没那么难,例子见http://www.salesforce.com/us/developer/docs/apexcode/index_Left.htm#StartTopic=Content/apex_rest_code_sample_basic.htm

        【讨论】:

        • 感谢您的回复。实际上我正在使用 PHP 并尝试使用 API 显示任何 sObject 的视图列表。
        • 我在 google 中搜索并知道,SAlesforce 仅使用 SOAP 提供 matadata API。 help.salesforce.com/… 。但由于某些限制,我不能使用 SOAP。那么谁能告诉我如何使用来自 PHP 的 http 请求访问 salesforce 的列表视图?
        • 谢谢。我看到了你的链接。我不能使用任何顶点代码,因为我正在 PHP 中实现一个 Web 应用程序,用户将在其中提供他们的 Salesforce 登录凭据,并且我必须从 Salesforce 获取所有对象。然后他们将选择任何对象,我必须向他们显示该选定对象的所有列表视图。所以没有固定的 Salesforce 实例,我可以在其中编写一些 Apex 代码。
        • 没有元数据 API,没有 Apex... 抱歉,如果有我不知道的方法,也许其他人会发布更好的答案。您也可以尝试在专用堆栈站点上询问:salesforce.stackexchange.com 但我很怀疑。 getListViewOptions() 将返回您的 ID 列表,而不是它们的定义(因此您可以在 PHP 中重新创建列和过滤条件):( 我能想到的最好的是“最近的项目”(对 URL 的 REST 调用,例如 /services/data/v26.0/sobjects/Account
        猜你喜欢
        • 2020-08-15
        • 2020-11-21
        • 2021-11-06
        • 2019-10-19
        • 1970-01-01
        • 2017-04-08
        • 2021-07-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多