3

みんなこんにちは、

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

しかし、それはうまくいきませんでした。salesforce/apex 開発者がこれを手伝ってくれませんか?

4

2 に答える 2

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 オブジェクト データについても同様です。

于 2012-05-10T18:05:02.217 に答える
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と Account の関係です。ご不明な点がございましたら、これについてコメントしてください。

于 2012-05-23T16:08:21.433 に答える