🐙

Salesforceオブジェクトの項目一覧csv出力方法

2021/12/28に公開

こんにちは。若手SEのオカピです。
こちらの記事では、Salesforceのオブジェクトごとに、項目をcsvファイルで一覧可する方法をご紹介します。
Salesforce AppExchangeから、アプリケーションをインストールする必要はありません。

準備

まず、Salesforceの開発者コンソールを開きます。

つぎに、Debug → Anonymous Windowを開きます。
(Ctrl+Eでも可)

こちらで準備は完了です。

csv出力実行

さあ、Anonymous Windowで、以下のコードを実行(Execute)します。
例として、MyObject__cというカスタムオブジェクトの項目一覧のcsvファイルを出力します。

cv.ContentLocation = 'S'; // ファイルをSalesforce上に保存する
cv.PathOnClient = 'MyObject.csv'; // ファイル名
cv.Title = 'MyObject'; // ファイルタイトル
String myContent = '項目名,API参照名,データ型,バイト数,文字数' + '\n'; //出力ファイルの項目を作成

//List<String> reqFields = new List<String>();
Map <String,Schema.SObjectType> gd = Schema.getGlobalDescribe();
Schema.SObjectType sobjType = gd.get('MyObject__c');
Schema.DescribeSObjectResult r = sobjType.getDescribe();
Map<String, Schema.SObjectField> mapOfField = r.fields.getMap();

for(String fieldName : mapOfField.keySet()) {
    Schema.SObjectField field = mapOfField.get(fieldName);
    Schema.DescribeFieldResult fDescribe = field.getDescribe();
    System.debug('field-->' + field);
    System.debug('field describe-->' + fDescribe);
    myContent += fDescribe.getLabel() + ',' + field + ',' +  fDescribe.getType() + ',' + fDescribe.getByteLength() + ',' + fDescribe.getLength() + '\n';
}

cv.VersionData = Blob.valueOf(myContent); // ファイルデータ
insert cv;

ファイルの保存場所

「ファイル」項目に、先ほど出力したcsvファイルが保管されています。

出力結果

ファイルの中身はこちらです。(csvをそのまま開くと文字化けするので、整形しております)
作成した項目が反映されています。

お疲れさまでした^^

Discussion