MacでSalesforce CLIを利用する
はじめに
ひさしぶりにSalesforceの開発を一から行うにあたり環境構築に戸惑ったためのメモです。5年ほど前からSalesforceはSalesforce Developer Experience (DX)というコンセプトでCLIを提供し始めました。当時試したsfdx
からsf
に変更となっていたり、Force.com IDEもいつの間にか廃止されてる!?という右も左もわからない状態でした。とりあえずCLIを利用してログインからプロジェクトの構築まで。
Salesforce CLIのインストールと基礎
Homebrewを利用しているなら
brew install sf
もしくは公式サイトからpkgをダウンロードしてインストール
アップデート
sf update
CLIの自動補完を有効にする
sf autocomplete
手順が出力されるのでそれに従う。CLIをアップデートした場合はキャッシュを削除するフラグを追加する。
sf autocomplete --refresh-cache
バージョン確認
通常版
sf version
@salesforce/cli/2.45.6 darwin-x64 node-v20.13.1
詳細が知りたい場合は--verbose
をつける。
sf version --verbose
出力結果は長いので省略
ヘルプ表示
sf help COMMAND
または
sf COMMAND --help
例
sf org login web --help
後ろにつけるほうが好み
TOPICSとCOMMANDSについて
sf --help
とするとVERSION
、USAGE
、TOPICS
、COMMANDS
と並ぶ。
TopicはCommandではないのでそのまま実行はされないが、Topicを実行するとコマンドが一覧表示される。
例えばsf org login
はコマンドではなくトピックなので
sf org login
とすると矢印キーでコマンドが選択できる。
ログイン&ログアウト
Webブラウザを利用したり、JWTベアラートークンを利用したり、他にもアクセストークンなどあるが、基本はWebブラウザかJWTベアラートークンかな。エイリアス--alias
をつけておくと他のコマンドでの--target-org
で指定することができる(--alias
は必須項目にするべきだと思う)。
Webブラウザ
sf org login web --alias エイリアス
JWTベアラートークン
sf org login jwt --alias エイリアス
サンドボックスにログインする
--instance-url
で指定する。
sf org login web --alias エイリアス --instance-url https://MyDomainName--SandboxName.sandbox.my.salesforce.com
接続アプリケーション外でのログインとなるので組織側からコントールできないので接続アプリケーションのOAuthのクライアントID(Salesforceでいうコンシューマー鍵)を指定することもできる。
sf org login web --alias エイリアス --instance-url https://MyDomainName--SandboxName.sandbox.my.salesforce.com --client-id ClientId
DevHubにログインする
--set-default-dev-hub
をつける。
sf org login web --alias エイリアス --set-default-dev-hub
ログインした組織を一覧表示する
sf org list
ログインした組織を詳細表示する(--target-org
にエイリアスを渡すことで指定できる)
sf org display --target-org エイリアス
組織をブラウザで開く
sf org open --target-org エイリアス
ログアウト
ログインしている組織の一覧から選択する
sf org logout
特定の組織からログアウトする
sf org logout --target-org エイリアス
すべての組織からログアウトする
sf org logout --all
プロジェクト
プロジェクトを作成する
sf project generate --name プロジェクト名
テンプレートとしてstandard
、empty
、analytics
が選べる。デフォルトはstandard
でVS Codeの拡張機能であるSalesforce Extensions for VS Codeで利用する場合に便利な構成となっている。
プロジェクトを組織にデプロイする
sf project deploy start --target-org エイリアス
スクラッチ組織
スクラッチ組織を作成する
スクラッチ組織にデータをインポートする
sf data import tree --plan ファイルパス --target-org エイリアス
(お気付きかもしれませんが力尽きました…)
Discussion