☁️

MacでSalesforce CLIを利用する

2024/12/06に公開

はじめに

ひさしぶりにSalesforceの開発を一から行うにあたり環境構築に戸惑ったためのメモです。5年ほど前からSalesforceはSalesforce Developer Experience (DX)というコンセプトでCLIを提供し始めました。当時試したsfdxからsfに変更となっていたり、Force.com IDEもいつの間にか廃止されてる!?という右も左もわからない状態でした。とりあえずCLIを利用してログインからプロジェクトの構築まで。

Salesforce CLIのインストールと基礎

Homebrewを利用しているなら

brew install sf

もしくは公式サイトからpkgをダウンロードしてインストール
https://developer.salesforce.com/ja/tools/salesforcecli

アップデート

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とするとVERSIONUSAGETOPICSCOMMANDSと並ぶ。
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 プロジェクト名

テンプレートとしてstandardemptyanalyticsが選べる。デフォルトはstandardでVS Codeの拡張機能であるSalesforce Extensions for VS Codeで利用する場合に便利な構成となっている。

プロジェクトを組織にデプロイする

sf project deploy start --target-org エイリアス

スクラッチ組織

スクラッチ組織を作成する

スクラッチ組織にデータをインポートする

sf data import tree --plan ファイルパス --target-org エイリアス

(お気付きかもしれませんが力尽きました…)

Discussion