Salesforce

sfコマンド・プラグイン カスタム項目やプロファイルのメタデータ生成

  1. HOME >
  2. Salesforce >

sfコマンド・プラグイン カスタム項目やプロファイルのメタデータ生成

スポンサーリンク

ブログのメインコンテンツとは全然関係ないですが、SalesforceのCLIであるsfコマンドのプラグインを自作してみました。

Salesforceの開発を行っていて、項目の作成やプロファイルの権限の整理が非常に面倒だったので、自動で作成や更新をしてくれるようなプラグインを作りました。

以下、プラグインの概要です。

sf-metadata-generator

紹介するプラグインを使うと画像のようなメタデータの値を入力したcsvファイルからxmlのメタデータを自動生成してくれます。

Salesforceのオブジェクトマネージャーから画面をポチポチして一生懸命作る必要がなくなるのですごいらくちんだと思います。

csv

xml

プラグインのnpmは以下のリンクです。

https://www.npmjs.com/package/@shuntaro/sf-metadata-generator

sfdxからsfへの移行に伴いプラグインの内容をsfにお引越ししました。

プラグインの中身のソースコードも大幅に改善したり新しい機能も追加しているので、sfコマンドの方を使ってください。

次のnpm installを実行することでインストールすることができます。

npm i @shuntaro/sf-metadata-generator

また、プラグインのリポジトリは以下です。

https://github.com/shuntaro-sf/sf-metadata-generator

実行例

プラグインの実行例について紹介します。

項目

カスタム項目を作成するにはsfdx metadata field generateを実行します。

フラグ--inputに項目作成用のcsvファイルのパス、--outputdirに作成する項目の出力先のディレクトリを指定してください。

csvファイルのテンプレートは次を実行することで作成可能です。

sf metadata field template --outputdir ./output/

csvファイルの値の入力の仕方については、リポジトリのREADMEを確認してください。基本的にcustom field metadata apiの値を入力する感じです。

-uをつけると既存のカスタム項目のメタデータの更新が可能です。-uをつけない場合、xmlファイルの更新は無視されます。

sf metadata field generate --input ./input.csv --outputdir ./output/

また、convertを実行することで、既存のカスタム項目のメタデータをcsvファイルに変換することができます。このコマンドを用いることで既存の項目の更新を行うことができます。--sourcedirにxmlファイルを保存しているディレクトリ、--outputdirにcsvファイルを出力するディレクトリを指定してください。

sf metadata field convert --sourcedir ./metadatadir/ --outputdir ./output/

上記を実行すると、csvファイルが作成されます。

また次のretrieveコマンドを実行すると、マニフェストからメタデータを取得するときと同じ感じで、csvデータ形式のメタデータを取得することができます。

sf metadata field retrieve --target-org <your org alius> --manifest ./force-app/main/default/manifest/package.xml --outputdir ./output/

retrieveのマニフェストファイルの例です。メタデータAPIで取得可能なAccountの項目がすべて抽出できます。

カスタム項目を更新したい場合は、更新後の値をcsvファイルに記述し、csvファイルのパスをgenerateの--inputにし、-uをつけることでカスタム項目を更新できます。

sf metadata field generate --input ./input.csv --outputdir ./output/ -u

オブジェクト

カスタムオブジェクトを作成するにはsfdx metadata object generateを実行します。

フラグ--inputdirにオブジェクト作成用のcsvファイルのパス、--outputdirに作成するオブジェクトの出力先のディレクトリを指定してください。

csvファイルのテンプレートは次を実行することで作成可能です。

sf metadata object template --outputdir ./output/

csvファイルの値の入力の仕方については、リポジトリのREADMEを確認してください。基本的にcustom object metadata apiの値を入力する感じです。

-uをつけると既存のカスタムオブジェクトのメタデータの更新が可能です。-uをつけない場合、xmlファイルの更新は無視されます。

sf metadata object generate --inputdir ./input.csv --outputdir ./output/

また、convertを実行することで、既存のカスタムオブジェクトのメタデータをcsvファイルに変換することができます。このコマンドを用いることで既存のオブジェクトの更新を行うことができます。--sourcedirにxmlファイルを保存しているディレクトリ、--outputdirにcsvファイルを出力するディレクトリを指定してください。

sf metadata object convert --sourcedir ./metadatadir/ --outputdir ./output/

上記を実行すると、csvファイルが作成されます。

また次のretrieveコマンドを実行すると、マニフェストからメタデータを取得するときと同じ感じで、csvデータ形式のメタデータを取得することができます。

sf metadata object retrieve --target--org <your org alius> --manifest ./force-app/main/default/manifest/package.xml --outputdir ./output/

retrieveのマニフェストファイルの例です。Accountのメタデータが抽出できます。

カスタムオブジェクトを更新したい場合は、更新後の値をcsvファイルに記述し、csvファイルのパスをgenerateの--inputdirにし、-uをつけることでカスタムオブジェクトまたは標準オブジェクトを更新できます。

sf metadata object generate --inputdir ./input.csv --outputdir ./output/ -u

プロファイル

次にプロファイルのメタデータを更新するコマンドについて紹介します。

プロファイルについては、他のメタデータと依存する部分が多いため更新のみとなっています。

次を実行することでプロファイルのxmlファイルの内容を更新用のcsvファイルに変換することができます。

sf metadata profile convert --source ./xxxx.profile-meta.xml --outputdir ./output/

csvファイルを取得できるので、csvファイルの内容を更新後の値に変更し、次のgenerateを実行するとcsvファイルの値に上書きされたプロファイルのメタデータを取得することができます。

sf metadata profile generate --input ./input.csv --outputdir ./output/

プロファイルのメタデータの更新方法については以上です。

スポンサーリンク

  • この記事を書いた人
  • 最新記事

usagi-san

統計学とゲームとかをメインに解説していくよ。 数式とかプログラミングコードにミスがあったり質問があったりする場合はコメントで受け付けます。すぐに対応します。

-Salesforce
-,