Salesforce: コマンドラインのメタデータのエクスポートツールを作りました
メタデータを使うシーンは多いです。
1.開発時のバックアップ
2.デプロイ用のモジュール
3.モジュールリリース後の確認
上記のような場面で何かと必要となるメタデータですが、「Force.com IDE」や「Force.com Migration Tool」のメタデータダウンロード機能だと、少し使いづらさを感じてツールを作成しました。
下記からダウンロードできます。ソースコードも同梱していますので、どういうコードを書いているかを確認いただけます。※もちろんユーザ、パスワードを悪用はしていませんので確認いただければと思います。
ツールの概要は次です。
・Java8を利用します。ツールには含めていないので別途インストールが必要です。
・動作確認はWindows7, 8 ,10で実施しています。
ツールの使い方はWindowsのバッチファイル「metadatabakup.bat」を編集し、環境変数に接続情報や、通信設定を指定します。
その後、「metadatabakup.bat」を起動してください。
環境変数 | 値 |
---|---|
backup.dir |
メタデータファイルを保存するパスのルート。 このパスの下に、「metadata_yyyyMMddHHmmss」のフォルダをツール側で作成してメタデータを出力します。 |
metadata.include |
取得するメタデータを限定する場合に指定します。(任意) 「ApexClass, ApexComponent, ApexPage, ApexTrigger, CustomObject, ・・・」などメタデータAPIのlistMetadataで取得できるタイプで指定してください。「CustomField」など、listMetadataで取得できないタイプは指定できません。 下記のmetadata.excludeと一緒には指定できません。 |
metadata.exclude |
除外するメタデータを限定する場合に指定します。(任意) 指定方法は、上記のmetadata.includeと同様です。 上記のmetadata.includeと一緒には指定できません。 |
sfdc.url |
APIのログインURLを指定します。 https://test.salesforce.com/services/Soap/u/43.0 |
sfdc.username | ログインユーザ名 |
sfdc.password | ログインパスワード。セキュリティトークンを使用する場合は、パスワード+セキュリティトークンの文字列となります。 |
http.proxyHost | プロキシホスト。通信時にプロキシを使用する場合指定します。 |
http.proxyPort | プロキシポート番号。通信時にプロキシを使用する場合指定します。 |
http.proxyUser | プロキシユーザ。プロキシでユーザ認証する場合指定します。 |
http.proxyPassword | プロキシパスワード。プロキシでユーザ認証する場合指定します。 |
http.auth.ntlm.domain | NTLMドメイン。ntlmドメインを使用する場合指定します。 |
JAVACMD |
後書き
「Force.com IDE」だと、メタデータの量が多いと、メタデータの選択時点で時間がかかってしまうのと、そもそもGUIのため自動化できません。
「Force.com Migration Tool」は、package.xmlを書くのがハードルが高く使いづらさを感じて、このツールを作りました。
ソースコードもつけてますので、自由に改造して使ってもらえるとうれしいです。
修正履歴
2017/7/24 CustomFeedFilterのダウンロード時にエラーとなる事象の対応を行いました。具体的には、CustomFeedFilterはワイルドカード指定でリクエストするように変更しています。
メタデータエクスポートの過去バージョンは次です。