Salesforce(セールスフォース)のカスタム項目を一括で作成することで作業効率が上げることができます。今回はメタデータを利用して、取引先オブジェクトに「テキスト型」のカスタム項目を一括で作成する方法、項目レベルセキュリティの設定など具体的に紹介します!
※使用ツール:Visual Studio Code 、Excel
カスタム項目一括作成方法の流れ
1.組織のソースファイルを持ったvscodeのターミナルに下記コードを入力して実行する。ソースファイルがメタデータに変換され、メタデータのフォルダ、ファイルが新たに作成される。
sfdx force:source:convert
2.作成したメタデータのコードを参考に作成したいカスタム項目のコードを追加する。
3.ターミナルに下記コードを入力したら実行してメタデータをソースファイルに再変換する。
sfdx force:mdapi:convert -r メタデータフォルダへのパス
4.対象のファイルをデプロイすると、環境にカスタム項目が一括で作成される。(別途項目レベルセキュリティの設定が必要)
実装イメージ

カスタム項目一括作成方法の手順
追加したいカスタム項目をまとめる
カスタム項目をメタデータに追加できるようにするためにExcel等に下記画像のように項目名とAPI名を並べます。他にも追加したい設定(説明、ヘルプテキストetc)がある場合はそれも追加します。
*データ型によって必要な設定値は変わります。確認したい場合は手順2で変換したメタデータから同じデータ型のコードを見つけたりして参考にしてください。

Vscodeでソースファイルを取得しておく
カスタム項目を追加したい組織から取引先のソースコードを取得しておきます。この時点では下記画像のように項目ごとにソースファイルが別々に分けられた状態です。

ソースファイルをメタデータに変換する
この手順では事前準備で取得したソースファイルを1つのメタデータファイルに変換します。
まずは、ターミナルを開きます。

次に、ターミナルの入力フォームに下記コマンドを入力して実行します。
sfdx force:source:convert

実行したらメタデータのファイルが作成されます。中身を見てみると、ソースファイルのコードがひとまとめの形式に変換されていることが確認できます。

カスタム項目のコードを追加する
メタデータの中身を確認すると<field></Field>で囲まれたコードがいくつかあることが確認できます。こちらはオブジェクトの項目を表しています。

以下はメタデータから引っ張ったデータ型がテキストのカスタム項目のコードのフォーマットです。
<Fields> <fullName>TextDataType__c</fullName> <caseSensitive>false</caseSensitive> <description>テキスト型の項目です。</description> <externalId>true</externalId> <inlineHelpText>テキストを入力してください。</inlineHelpText> <label>テキスト型の項目</label> <length>255</length> <required>true</required> <trackFeedHistory>false</trackFeedHistory> <type>Text</type> <unique>true</unique> </Fields>
中身を見てみましょう。<type>Text</type>と書かれています。これはカスタム項目のデータ型がテキスト型であることを示しています。今回の目的はテキスト型のカスタム項目の一括作成です。ですので、このコードをフォーマットにして値を当てはめてメタデータに追加すれば、カスタム項目がまとめて作成されることになります。
実際に、下記のように作成します。Excel等の数式を使って自動でラベル名等を入れるようにすれば効率的にできます。

作成したコードをメタデータのコードに挿入して保存を押します。この後ソースファイルに再変換されたら、カスタム項目のソースファイルが自動で作成されるようになります。

メタデータをソースファイルに再変換する
Salesforce環境にデプロイするためには再度ソースファイルに戻す必要があります。
手順としてはソースファイルをメタデータに変換した時と同じで、まずはターミナルを開きます。

次に、ターミナルの入力フォームに下記コードを入力し、実行します。
sfdx force:mdapi:convert -r "メタデータフォルダへのパス"

“メタデータフォルダへのパス”の部分にはメタデータファイルを右クリックすると表示される、”相対パスをコピー”で取得した値を入力します。

ソースファイルを確認してみましょう。作成したカスタム項目がソースファイルとして存在しているのが確認できます。

対象のファイルをデプロイする
ソースファイルに再変換されたら、そのファイルをデプロイ(Salesforce環境に反映させる)します。これでカスタム項目の一括作成は完了になります。実際に作成されたか確認してみましょう。

Salesforce環境にログインして、設定から取引先オブジェクトの項目一覧を開きます。
一括で作成したカスタム項目がSalesforce環境に存在しているのが確認できます。

しかし、この時点では項目別セキュリティが未設定の状態となっております。ですので、別途設定する必要があります。

設定方法は下記の2パターンがあります。カスタム項目が大量にある場合は2がおすすめです。
1.項目の設定の項目レベルセキュリティで権限を付与したいプロファイルにチェックを入れる。
2.プロファイルの項目別セキュリティ設定で権限を付与したいカスタム項目にチェックを入れる。
おわりに
カスタム項目を大量に作るのは非常に手間がかかると思います。今回はテキスト型の作成方法でしたが、他のデータ型でもフォーマットを変えれば可能なので、是非参考にしていただければと思います。