[Salesforce] 組織のプロセス、Apex Triggerをコマンド一発で無効化/有効化(復帰する) sfdxプラグインを作りました

2021.07.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

[Salesforce] JSforceを使ってコマンド一発で組織のプロセスを無効化/有効化する で紹介した sf-switch の機能を sfdx コマンドで実行できる sfdx プラグインを作りました。

sfdx-switch1

次のコマンドでインストールできます( sfdx は既にインストール済であるとします)。

$ sfdx plugins:install sfdx-switch

インストールしたら、次のコマンドで組織のプロセス、Apex Triggerを無効化、有効化(無効化前の状態に復帰する)ができます。

  • 無効化
# 組織のプロセス、 Apex Triggerの無効化
$ sfdx switch:off --targetusername username@example.com
  • 有効化(復帰)
# 組織のプロセス、Apex Triggerの有効化(復帰)
$ sfdx switch:return --targetusername username@example.com

sf-switch と異なり、 sfdx が保持している認証情報を使って組織への接続ができるため、パスワードの指定は不要になっています。2

sfdx-switch ではフローの無効化/有効化(復帰)にも近いうちに対応したいと考えています。

sfdx-migration-automaticプラグインと組み合わせることで、以下のような流れで簡単にSandboxにデータを持たせることができます。

# 本番環境のユーザ名を username@example.com 、 Sandboxのユーザ名を username@example.com.sandbox とした場合
$ sfdx switch:off --targetusername username@example.com.sandbox
$ sfdx automig:dump --targetusername username@example.com --objects Opportunity,Case,Account:related,Task:related --outputdir ./dump
$ sfdx automig:load --targetusername username@example.com.sandbox --inputdir ./dump
$ sfdx switch:return --targetusername username@example.com.sandbox

お役に立てれば幸いです。


  1. 本プラグインの利用に関し、トラブルが発生した場合、利用者又は第三者に損害が生じた場合であっても、本プラグインが利用者の自己責任のもと利用されるものであることに鑑み、弊社は、損害賠償その他一切の責任を負担致しません。 
  2. 事前に処理を行いたい組織に対して、 sfdx force:auth:web:login などでログインしておく必要があります。