- Ant 移行ツールが Spring '24 で廃止になったためSalesforce CLIを使用したデプロイツールをBATファイルで作成しました。
- CLIが苦手・コマンドを打つのが面倒 そんな方に是非!
実行環境
- Windows
下記を必ずインストールしておいてください。
- Salesforce CLI ※sf (v2)
- インストールやsfdx (v7) から sf (v2) への移行方法はSalesforceのHelpを確認ください。
..\toolkit\config\setting.iniを開きます。- 接続情報を入力します。
| パラメータ | このステップでの入力対象箇所 | 値 |
|---|---|---|
| SfMyDomain | ✅ | 組織の私のドメインを設定します。 ※「私のドメイン」確認方法 Salesforce組織へログイン > 設定>クイック検索で「私のドメイン」入力・「私のドメイン」をクリック > [私のドメイン] の詳細セクション内の「現在の [私のドメイン] の URL」右横に記載のURL。 (コピー時には「https://」が付いていないので忘れずに!) |
| SfUserName | ✅ | デプロイに使用するユーザーのSalesforce ユーザー名 |
| SfdxAuthUrl | ☐ | Salesforce組織への認証情報を含む URLを記載のテキストファイルに設定します。 ※後ほどの手順で取得方法を案内します。 |
| SoapApiVersion | ✅ | HTTPS の要求や応答の処理に使用されるメタデータ API のコアバージョンを指します。 ※初期設定として 55.0に設定しています。必要に応じて変更してください。 |
| TestLevel | ✅ | 指定したテストレベルによってテストの範囲が変化します。 RunSpecifiedTests と RunAllTestsInOrgの指定が可能です。 ・RunSpecifiedTests: 指定したテストのみを実行します。 ・RunAllTestsInOrg:管理パッケージのテストを含む、組織内のすべてのテストが実行されます。 |
Note
初期状態では、Org01のセクションを使用可能状態にしています。
Org02、Org03も用意していますので必要に応じてコメントアウト「;」を切り替えて使用ください。
..\toolkit\Init_loginWeb_sfdxAuthUrl_cfm.batを実行します。
Caution
Sfdx Auth Urlは認証情報を含む URLのため取り扱いには注意を!!
※ここからは、1. 接続情報の入力でOrg01を使用している前提で記載しています。
..\toolkit\config\sfdxAuthUrl_org01.txtを開きます。- 2. 組織を認証 (Authorize an Org) およびSfdxAuthUrlの取得で取得した
Sfdx Auth Urlを張り付けて保存します。
- 2. 組織を認証 (Authorize an Org) およびSfdxAuthUrlの取得で取得した
Important
事故防止のためBat実行毎に組織への接続(ログイン)・切断(ログアウト)を行っています。
- 取得したいメタデータを
..\toolkit\retrievemanifest\package.xmlに記載します。- 必要に応じて内容を編集してください。
01.retrieve_before.batを実行します。- 処理内容
- 組織への接続(ログイン)
- 組織のメタデータの取得
- 組織から切断(ログアウト)
- 処理結果
- Batファイルを実行した日時のフォルダ名(YYYY-MM-DD_HH-MM-SS_"number"形式)で
..\toolkit\01.retrieved_beforeに格納します。
- Batファイルを実行した日時のフォルダ名(YYYY-MM-DD_HH-MM-SS_"number"形式)で
- 処理内容
02.retrieve_after.batを実行します。- 処理内容
- 組織への接続(ログイン)
- 組織のメタデータの取得
- 組織から切断(ログアウト)
- 処理結果
- Batファイルを実行した日時のフォルダ名(YYYY-MM-DD_HH-MM-SS_"number"形式)で
..\toolkit\02.retrieved_afterに格納します。
- Batファイルを実行した日時のフォルダ名(YYYY-MM-DD_HH-MM-SS_"number"形式)で
- 処理内容
Note
フォルダ名の"number"部分は固定のテキストですので、各プロジェクトのルールに沿って課題番号などに書き換えるなどして使用してください。
..\toolkit\deploycodepkgにデプロイ対象の資材を格納してください。
Note
初期状態では、サンプル資材を格納しています。
使用する際にはdeploycodepkg内の資材は削除してください。
サンプル:Apexクラス2個 トリガ1個の場合
─deploycodepkg
│ package.xml
│
├─classes
│ SampleDeployClass.cls
│ SampleDeployClass.cls-meta.xml
│ SampleFailingTestClass.cls
│ SampleFailingTestClass.cls-meta.xml
│
└─triggers
SampleAccountTrigger.trigger
SampleAccountTrigger.trigger-meta.xml
..\toolkit\testclasslist.txtにデプロイ時に実行するApexクラス名を半角スペース区切りで記載してください。
サンプル:Apexテストクラス3個実行する場合SampleFailingTestClass01 SampleFailingTestClass02 SampleFailingTestClass03deploy_start.batを実行します。- 処理内容
- 組織への接続(ログイン)
- デプロイ前のメタデータ取得
- デプロイ と Apexテストの実行
- デプロイ後のメタデータ取得
- 組織から切断(ログアウト)
- 処理結果
- デプロイ前のメタデータ取得処理が実行された日時のフォルダ名(YYYY-MM-DD_HH-MM-SS_"number"形式)で
..\toolkit\01.retrieved_beforeに格納します。 - デプロイ後のメタデータ取得処理が実行された実行した日時のフォルダ名(YYYY-MM-DD_HH-MM-SS_"number"形式)で
..\toolkit\02.retrieved_afterに格納します。 - 処理の記録をBatファイルを実行した日時のフォルダ名("deploy"_MMDDHHMMSS.log形式)でlogファイルを
..\toolkit\log\deployに格納します。
- デプロイ前のメタデータ取得処理が実行された日時のフォルダ名(YYYY-MM-DD_HH-MM-SS_"number"形式)で
- 処理内容
login_org_sfdx_url.batを実行します。
※Sfdx Auth Urlが設定(セットアップが完了)されている前提です。- 処理内容
- 組織への接続(ログイン)
- 処理内容
logout_org.batを実行します。- 処理内容
- 組織から切断(ログアウト)
- 処理内容
Important
WinMergeがインストールされている場合に実行可能です。
openWinMerge.batを実行します。
─toolkit
│ 01.retrieve_before.bat
│ 02.retrieve_after.bat
│ authorization_info_list.bat
│ deploy_start.bat
│ Init_loginWeb_sfdxAuthUrl_cfm.bat
│ login_org_sfdx_url.bat
│ logout_org.bat
│ openWinMerge.bat
│ testclasslist.txt
│
├─01.retrieved_before
│ forpush.txt ←空ファイル(Githubフォルダ作成のため)
│
├─02.retrieved_after
│ forpush.txt ←空ファイル(Githubフォルダ作成のため)
│
├─config
│ setting.ini
│ sfdxAuthUrl_org01.txt
│ sfdxAuthUrl_org02.txt
│ sfdxAuthUrl_org03.txt
│
├─deploycodepkg
│ │ package.xml ←サンプルコード
│ │
│ ├─classes ←サンプルコード
│ │ SampleDeployClass.cls
│ │ SampleDeployClass.cls-meta.xml
│ │ SampleFailingTestClass.cls
│ │ SampleFailingTestClass.cls-meta.xml
│ │
│ └─triggers ←サンプルコード
│ SampleAccountTrigger.trigger
│ SampleAccountTrigger.trigger-meta.xml
│
├─log
│ └─deploy
│ forpush.txt ←空ファイル(Githubフォルダ作成のため)
│
└─retrievemanifest
package.xml



