【Salesfoce】ApexでレコードタイプIDを取得する

Salesforce

こんにちは、ヨリユです。
本記事では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を取得する場面は、レコードに設定されているレコードタイプの判別や、テストクラスでテストデータを作成する際など、結構あるのではないでしょうか。
ぜひ実際に動かしてみて、使い方を習得していきましょう!
最後までご覧いただきありがとうございました!