[Salesforce開発] Apexで取引先に関連付けられたすべての取引先責任者を取得するには?

SFエンジニア

Apexで、取引先に関連付けられたすべての取引先責任者を取得するにはどうすれば良いかね?

SF宣教師

SOQLクエリ―で実現できます。

目次

サンプルコード

開発者は、取引先 (Account) から3つのフィールド(Id、Name、Type)をクエリし、取引先に関連付けられたすべての取引先責任者 (Contact) の名前(first nameとlast name)を取得する必要があります。

以下のコードは、「Grand Hotels & Resorts Ltd」という取引先のすべての取引先責任者を取得して、System.debugで出力するコード例です。

String companyName = 'Grand Hotels & Resorts Ltd';
Account acc = [SELECT Id, Name, Type, (SELECT FirstName, LastName FROM Contacts) FROM Account WHERE Name = :companyName];
// Contactsのリストを取得してSystem.debugで出力
List<Contact> contactsList = acc.Contacts;
System.debug(contactsList);

SOQL文の中の (SELECT FirstName, LastName FROM Contacts)サブクエリと言って、取引先責任者をクエリ―している部分です。
そして、取引先責任者のレコードは、acc.Contacts という記述で取引責任者のリストに出力できます。
Contacts は、子リレーション名と言って、取引先(親オブジェクト)と取引先責任者(子オブジェクト)の関連を識別するための名前です。

サブクエリ
クエリの中で別のクエリを埋め込んで使用する機能です。サブクエリは、外部クエリの結果を基にして、内部クエリの条件やフィルタリングに使用されます。サブクエリを使用することで、関連するデータを取得するための柔軟なクエリを組み立てることができます。

子リレーション名
親オブジェクトと関連する子オブジェクトを指すための名前です。親子関係のあるオブジェクト同士は、リレーションシップを通じて関連付けられており、子リレーション名はそのリレーションシップを識別するために使用されます。

子リレーション名は、以下のようにして確認することができます。

1.管理者アカウントでログイン

2.設定>オブジェクトマネージャ>取引先責任者>項目とリレーション

3.親への参照フィールド(この場合、取引先名)>子リレーション名

SF宣教師

以上です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次