【问题标题】:How can i retrieve the Product Name from a Opportunity in Salesforce SOQL?如何从 Salesforce SOQL 中的机会中检索产品名称?
【发布时间】:2021-10-08 00:58:59
【问题描述】:

我在 Salesforce 中使用机会行项目创建了一个机会。 我运行以下查询和

SELECT Amount, Account.Name, Account.AccountNumber, Name, 
(
  SELECT Quantity, UnitPrice, ProductCode,  Product2.Name FROM 
  OpportunityLineItems
)
FROM Opportunity

结果中返回的 OpportunityLineItems 列如下。

  [{"Quantity":"1","UnitPrice":"10","ProductCode":"code1","Product2":"[object Object]"}]

如果我深入了解 Salesforce UI 中的机会,我会在产品(测试价格手册)下看到该行。 如果我深入到该行名称是 name1。 那么为什么它返回 [object Object] 而不是查询请求的名称?

【问题讨论】:

    标签: salesforce soql


    【解决方案1】:

    它可能会很好地返回结果,只是你的连接库搞砸了并显示 JavaScript 对象占位符而不是实际的嵌套对象。我已经看到它也出现在 Salesforce 自己的开发者控制台中。

    你用什么?一个原始的 REST API 调用(使用 workbench -> 实用程序 -> rest explorer、Postman 或其他东西)应该会产生这个

    (我添加了一个 WHERE 子句)

    /services/data/v52.0/query?q=SELECT+Amount,+Account.Name,+Account.AccountNumber,+Name,++(+++SELECT+Quantity,+UnitPrice,+ProductCode,++Product2.Name+FROM++++OpportunityLineItems+)+FROM+Opportunity+WHERE+Id+IN+(SELECT+OpportunityId+FROM+OpportunityLineItem)+LIMIT+5
    

    如果你真的从 javascript 连接 - 在记录之前看看你是否可以 JSON.stringify(results) 或类似的东西,应该给你更好的结构吗?或者使用调试器单步调试代码...

    但是不,数据应该在那里没有问题,只是在你端渲染不好。

    【讨论】:

    • 我实际上做了如下查询,它按预期工作 SELECT Opportunity.Amount, Opportunity.Account.Name, Opportunity.Account.AccountNumber, Opportunity.Name , Quantity, UnitPrice, ProductCode, PriceBookEntry.Name FROM OpportunityLineItem where OpportunityId in (select Id from Opportunity)
    • 是的,它也可以,但是会有细微的差别。这从订单项“上升”到 oppty。如果您必须查询没有任何行项目的机会怎么办。或者,也许您必须获得 oppty + 行项目 + 更多相关数据(阶段历史?相关订单?交货/付款时间表?)。您将无法使用第二个查询来做到这一点。第一种形式更适合“标题 + 订单项”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-11
    • 2014-06-22
    • 1970-01-01
    相关资源
    最近更新 更多