こんにちは、ヨリユです。
本記事ではApexで「レコードタイプIDを取得する方法」について解説していきます。
レコードタイプIDを取得する場面はよくありますので、取得方法を押さえておきましょう。
【この記事から学べること】
・ApexからレコードタイプIDを取得する方法
取得対象のレコードタイプ
以降のサンプルApexコードは、以下のレコードタイプを取得します。
<レコードタイプ情報>
・レコードタイプの表示ラベル:ビジネス
・レコードタイプ名:Business
Apexから上記のレコードタイプへのアクセスについて、
Nameの場合は「ビジネス」、DeveloperNameの場合は「Business」
でアクセス可能です。
レコードタイプID取得方法①:DescribeSObjectResultクラスを使用
以下の例では、DescribeSObjectResultクラスのメソッド「getRecordTypeInfosByDeveloperName」を使用してレコードタイプIDを取得します。
参考:getRecordTypeInfosByDeveloperName
String recordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Business').getRecordTypeId();
System.debug('recordTypeId: ' + recordTypeId);
レコードタイプID取得方法②:SOQLを使用
以下の例では、SOQLを使用してレコードタイプIDを取得します。
WHERE句のDeveloperNameに、取得したいレコードタイプの「DeveloperName(=レコードタイプ名)」を指定します。
List<RecordType> recordType = [SELECT Id FROM RecordType WHERE DeveloperName = 'Business' ];
System.debug('recordTypeId: '+ recordType[0].Id);
まとめ
いかがでしたでしょうか。
今回は、ApexからレコードタイプIDを取得する方法を確認してきました。
レコードタイプIDを取得する場面は、レコードに設定されているレコードタイプの判別や、テストクラスでテストデータを作成する際など、結構あるのではないでしょうか。
ぜひ実際に動かしてみて、使い方を習得していきましょう!
最後までご覧いただきありがとうございました!