今回は、会社で依頼された「特定オブジェクトにあるカスタム項目の作成日を一覧化してほしい」という要望について手順を追って記載いたします。
全体の手順
- 開発者コンソールを起動し、CustomFieldオブジェクトからSOQLにて項目作成日を取得
- 開発者コンソールのSOQL結果をコピーし、Excelに表形式で貼り付け
- 必要に応じて、貼り付けた結果をExcel上で加工
手順詳細
CustomFieldオブジェクトから項目作成日を取得
CustomField オブジェクトに対し、以下SOQLを発行します。
標準オブジェクトの場合
- Lightning Experience の場合はオブジェクトマネージャから対象オブジェクトのAPI参照名を取得する。
- Salesforce Classic の場合は設定|カスタマイズ|(オブジェクト)から対象オブジェクトを選択し、URLから対象オブジェクトのAPI参照名を取得する。
-- 例: Salesforce Classic で商談オブジェクトを選択した場合、URL
https://XXX.salesforce.com/ui/setup/Setup?setupid=Opportunity
のOpportunity
の部分 - 取得したAPI参照名を使用し、開発者コンソールで以下SOQLを実行する。この時、[Use Tooling API]にチェックを入れてから[Execute]をクリックする。
例:商談(Opportunity)の場合
SELECT TableEnumOrId, DeveloperName, CreatedDate, LastModifiedDate FROM CustomField WHERE TableEnumOrId = 'Opportunity'
カスタムオブジェクトの場合
- Lightning Experience の場合はオブジェクトマネージャ、Salesforce Classic の場合は設定|作成|オブジェクトから対象オブジェクトを選択し、URLからカスタムオブジェクトIDを取得する。
- 例1: Lightning Experience の場合、URL
https://XXX.lightning.force.com/lightning/setup/ObjectManager/01IxxXXXXXxxxxx/Details/view
の01IxxXXXXXxxxxx
の部分 - 例2: Salesforce Classic の場合、URL
https://XXX.salesforce.com/01IxxXXXXXxxxxx?setupid=CustomObjects
の01IxxXXXXXxxxxx
の部分
- 例1: Lightning Experience の場合、URL
- 取得したカスタムオブジェクトIDを使用し、開発者コンソールで以下SOQLを実行する。この時、[Use Tooling API]にチェックを入れてから[Execute]をクリックする。
SELECT TableEnumOrId, DeveloperName, CreatedDate, LastModifiedDate FROM CustomField WHERE TableEnumOrId = '01IxxXXXXXxxxxx'
開発者コンソールの結果をExcelにコピー
残念ながら、開発者コンソールにはSOQLの結果をCSV等にエクスポートする機能がありません。
そこで、Chromeデベロッパーツールを使ってSOQLの結果をExcelに貼り付けます。
- F12キーを押してChromeデベロッパーツールを開く
- この時、別タブの結果を取得しないよう開発者コンソールのタブは1つにすることが望ましい。
- Ctrl+F キーを押して検索窓を開き、
grid-table
と入力する
grid-table
検索結果のうち一番上の行を右クリックし、Copy -> Copy Element
をクリック
- Excelを起動し、適当なセルに貼り付ける
- この時の注意事項は以下の通りです。
- ヘッダがないため、必要であれば手作業で追加してください。
- カスタム項目名はAPI参照名から
__c
がないものになっています。必要に応じて追加してください。 - 日付/時間はUTC基準です。日本時間に直したい場合は9時間追加する必要があります。
Excel数式だと=DATEVALUE(MIDB(<元データのセル>,1,10))+TIMEVALUE(MIDB(<元データのセル>,12,8))+TIME(9,0,0)
とすれば修正できます。
- この時の注意事項は以下の通りです。
おわりに
開発者コンソールでSOQL取得するまでは想定通りでしたが、そこからの加工が思っていたより大変でした。
開発者コンソールのクエリエディタにエクスポート機能を付けるIdeaExchangeもありますが、ぜひ実装いただきたいと思った一件でした。
Appendix
今回参考にしたリソース一覧です。