この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Newer Version Available

This content describes an older version of this product. View Latest

リレーションを使用した sObject 項目へのアクセス

sObject レコードは、ID と、関連付けられた sObject の表示を示すアドレスの 2 つの項目によって他のレコードとの関係を表します。たとえば、Contact sObject には種別が ID の AccountId 項目と、関連付けられた sObject 自体を示す、種別が取引先の Account 項目があります。

ID 項目を使用して取引先責任者と関連する取引先を変更したり、sObject 参照項目を使用して取引先のデータにアクセスしたりできます。参照項目は、SOQL クエリまたは SOSL クエリの結果としてのみ入力されます (注意を参照)。

たとえば、次の Apex コードは、取引先と取引先責任者を相互に関連付ける方法と、取引先責任者を使用して取引先の項目を変更する方法を示します。

次に示すのは最も複雑な例です。このコードで使用する一部の要素については、このガイドの後のセクションで説明します。

メモ

c.Account.Name という式表現や、リレーションを辿るその他の式では、変更する場合と値として参照する場合に若干異なる特徴があります。

  • 値として参照する場合、c.Account が null の場合 c.Account.Namenull と評価されますが、NullPointerException は生成されません。これにより、開発者は null 値をチェックする必要なく多段の関係を参照できます。
  • 変更するとき、c.Account が null の場合、c.Account.Name によって NullPointerException が生成されます

メモ

SOSL では、挿入された取引先責任者のデータへのアクセス方法は、前の SOQL の例で使用した SELECT ステートメントに似ています。

また、sObject 項目キーは insertupdate、または upsert 時に、外部 ID による外部キー解決に使用されます。次に例を示します。

新しい取引先責任者に、external_id が「12345」である取引先と同じ AccountId を挿入します。そのような取引先がない場合、挿入は失敗します。

たとえば、次のコードは上記のコードと同一です。ただし、SOQL クエリを使用するため、上記のコードほど効率的ではありません。このコードが複数回コールされた場合、SOQL クエリ実行制限の最大数に達する場合があります。実行制限の詳細は、「実行ガバナと制限」を参照してください。

ヒント