2012-05-10 161 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與客戶的關係。如果您有任何問題,請對此評論。