2012-05-10 1 views
3

こんにちはフォークス、
アペックス - SalesForceの - 私は、Force.comプラットフォーム上でいくつかの機能をカスタマイズするに取り組んでいますジャンクションオブジェクトを通して親オブジェクトのフィールドへのアクセス

。あなたに質問があります。これが可能かどうか私はあまり確信していません!

私には何がありますか?:2つのカスタムオブジェクト - abcとpqr。 Abcは標準オブジェクトAccountとpqrとの間の接続オブジェクトであり、すなわちAccountはabcの親であり、Pqrはabcの親である。私は、これらのオブジェクトを通じてすべてのものをAccount型のList(つまりAccountオブジェクト)から取得しています。

私は何が必要ですか?:Apexのabcオブジェクト、つまりアカウントの最初の子にアクセスできます。アカウントを通じてpqrのフィールドにアクセスする可能性はありますか?

は私がを試してみました:関係名によるオブジェクトへのアクセス - Account.abc_ R [0] .pqr _r [0] .FIELDNAME

しかし、それは働いたhasnt。 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はそのオブジェクトがnullであることを記録します。これは、ベストプラクティスとして事前にテストすることをお勧めします。 PQRオブジェクトデータも同様です。

+0

JohnDeSantiagoこれは私のためには機能しません! – subodhbahl

+0

どの部分がうまくいかないのですか?エラーが発生しているか、解決策が探している結果を提供していないかどうかです。あなたがいくつかの詳細を私に助けることができるなら、私は自分の答えを調整することができます。 –

+0

'。'フィールドを使用してフィールドにアクセスできません。オペレーター。私が最初に作成したリストをSystem.Debugにすると、IDと名前だけがpqrから表示されます。 私はそれほど確かではありませんが、クエリはワークベンチで正常に実行されます - SOQLは実行されますが、同じクエリをタイプ・アカウントのリストに割り当てると、アカウント・フィールド以外は何も戻されません。 「マルチプルオブジェクト」タイプのリストを作成する方法はありますか?そのため、リストは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はアカウントを持つオブジェクトAbcの _Cの関係です。ご不明な点がございましたら、ご意見ください。

関連する問題