【Apex】オブジェクトの全項目を取得する方法

スポンサーリンク
オブジェクトの全項目を取得する方法 Apex

こんにちは、にいるです。

今回は、Apexを使用した「オブジェクトの全項目を取得する方法」について説明したいと思います。

【ヘルプ】Schema 名前空間
【ヘルプ】DescribeFieldResult クラス
【ヘルプ】PicklistEntry クラス

1.全項目データを取得する方法

項目を取得するといえば、SOQLが浮かぶかと思いますが、SOQLではSQLのように*で全取得することができません。
SOQLで項目指定に*が使えないのはガバナ制限のためだと思います。

SELECT * FROM Account
この書き方はできない!

なので、違う方法で取得します。
ここでは、下記のコードで取引先項目を全て取得したいと思います。

①get()メソッドに指定したオブジェクトの情報を取得しています。getのあとを任意のオブジェクトに変更すれば好きなオブジェクトの情報を取得できます。
②Schema.DescribeFieldResultクラスを使用します。
③Map型にAccountの全項目を代入しています。
④最後は③で取得したMapの中身がどうなっているかを確認しています。

 
■デバッグ結果
オブジェクトの項目を全取得する
 

メソッドと変数しか使用していなく、あとでカスタム項目を足したとしても動的に動いているので問題なく取れると思います。
ただ多すぎるとガバナ制限にどこかで引っかかるかもしれません。

ちなみに全オブジェクトのデータを取得するには①を下記のようにMap型にしておけば、全部取れます。

2.まとめ

いかがでしたでしょうか。

Schema.DescribeSObjectResultを使用すれば、オブジェクトの項目を一覧で欲しい時、もしくは特定の項目を全オブジェクトで横断的に使用していてそのチェックをするという場合に使用できると思います。

皆さんもぜひ色々と試してみてください。
他にも色々と標準機能やSalesforce機能について紹介していますので、ご覧ください。

ではでは!

Salesforce 機能別 まとめページ

コメント

タイトルとURLをコピーしました