2012-05-10 49 views
3

你好伙计们,
顶点 - Salesforce的 - 通过路口对象访问父对象场

我在Force.com平台上定制一些功能工作。我有一个问题问你;我不太确定这是否可能!

我有什么?:2个自定义对象 - abc和pqr。 Abc是标准对象Account和pqr之间的联结对象,即Account是abc的父级,然后Pqr是abc的父级。我通过这些对象将所有内容检索到类型帐户列表(即来自帐户对象)。

我需要什么?:我可以访问Apex中的abc对象,即帐户的第一个孩子。是否有可能通过帐户访问pqr的字段?

我曾尝试:通过关系名访问对象 - Account.abc_ R [0] .pqr _r [0] .FIELDNAME

但它未工作。 某些salesforce/apex开发人员可以帮助我吗?

回答

4

您应该能够使用子查询获取所需的信息。这里真正的问题是如何设置您的查询。您的查询需要访问数据模型的所有级别以使其可用。如果您依赖于触发器或标准控制器中返回的数据,那么我会建议要求该帐户对象访问附加信息。

所以我希望看到沿着线的东西:

List<Account> accounts = [SELECT Id, Name, (SELECT Id, pqr__r.Id, pqr__r.Name FROM abc__r) FROM Account]; 

for (Account acct : accounts) { 
    string someValue = acct.abc__r[0].pqr__r.Name; 
} 

但请记住,因为如果没有,作为一个最佳实践,你不应该访问子记录我上面做的方式ABC记录该对象将为空,因此您需要提前测试该最佳做法。 PQR对象数据也一样。

+0

JohnDeSantiago这不适合我! – subodhbahl

+0

那么哪个部分不起作用?您是否收到错误或者解决方案没有提供您正在寻找的结果?如果你能帮助我一些更多的细节,我会很乐意调整我的答案。 –

+0

我无法使用'。'来访问该字段。运营商。如果我System.Debug你开始创建的列表,它只显示ID和名称没有其他任何东西从PQR。 我不太清楚这是为什么,但查询在工作台上运行良好 - SOQL执行,但是当我将相同的查询分配给类型帐户列表时,它不会返回除帐户字段以外的任何内容。 有没有办法创建一个'Multilple对象'类型的列表,以便列表可以从SOQL获取所有值? – subodhbahl

2

的这个问题的答案是:

List<Account> accounts = [SELECT Id, Name, (SELECT Id, pqr__r.Id, pqr__r.Name FROM abc__r) FROM Account]; 

for (Account acct : accounts) { 
    for(Abc__c abc : acct.abc__r) 
     { 
      String someValue = abc.pqr__r.Name; 
     } 
} 

注意:在这里,abc_ r为对象美国广播公司 _c与客户的关系。如果您有任何问题,请对此评论。