tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Salesforce CLI コマンドを試してみました - Part 1

Salesforce CLI コマンドを試してみました。

Salesforce CLI Command Reference

sf コマンドと sfdx コマンドの違い

最新バージョンとして用意されたのが sf コマンドの方です。sfdx コマンドは旧バージョンとしてサポート終了したとのことです。


今回検証で使ったバージョン

今回はSalesforce CLIのバージョン2を使用しています。最新バージョンにしておかないとリファレンスどおりに実行できないので注意。

@salesforce/cli/2.1.7 darwin-arm64 node-v20.5.0

バージョン確認

次のコマンドで現在のCLIのバージョンを確認できます。

% sf version
@salesforce/cli/2.1.7 darwin-arm64 node-v20.5.0


ヘルプ

次のコマンドでSalesforce CLIで使えるコマンド一覧を表示できます。

% sf help


また次のように「-h」と宣言する形で特定のコマンドを対象としたヘルプ表示もできます。

% sf org -h

バージョンのアップデート

次のコマンドでSalesforce CLIのアップデートができます。

% sf update


旧『sfdx』のバージョンから最新のバージョンに移行する際には必要な手順で作業する必要があります。

Move from sfdx (v7) to sf (v2)

認証済組織の確認 ~ 認証 ~ 認証解除

Salesforce CLIではログインコマンドで対象組織を認証して各コマンドを実行します。現在認証済の組織を確認するのは次のコマンドです。

% sf org list


CLIの利用を開始した直後は認証済組織は0件なので次のようになります。


それでは実際にSalesforce組織を認証します。次のコマンドです。

% sf org login


認証方法はいくつかあります。矢印キーで対象の認証方法を選択します。基本は『org login web』で問題無いはずです。


ヘルプコマンドで確認できるとおり最初から次のように指定して実行することもできます。

% sf org login web


実行するとログインページが表示されるのでユーザIDとパスワードでログインします。


ログイン成功すると認証完了のメッセージが表示されます。


ターミナル上も成功のメッセージが表示されます。


上記のやり方では、認証作業は『デフォルトブラウザ』で『login.salesforce.com』のログインページで実行することになります。ヘルプコマンドによるとブラウザの指定やURLの指定も可能となっているようです。


実行イメージ

// ブラウザ指定
% sf org login web -b=chrome
// URL指定
% sf org login web -r=https://test.salesforce.com
// 複数条件指定
% sf org login web -b=chrome -r=https://test.salesforce.com 


認証ができたので先程の『sf org list』コマンドを改めて試してみます。このように1件認証組織が存在していることを確認できます。


この認証作業はVisual Studio CodeでSalesforce組織を認証する操作を行ったときと同じです。VSCode側で認証したものもこのコマンドで認証済組織として表示されます。一点ターミナルからコマンド実行して認証したときにはエイリアスが未設定となります。これを設定するには次のコマンドを実行します。

% sf alias set <エイリアス名>=<認証した組織のユーザ名>


『sf org list』でALIASが設定されたことを確認できます。



設定したエイリアスを削除したいってときには次のコマンドを使用します。複数名で登録してしまったときに整理したりするのに使います。

% sf alias unset <エイリアス名>

※実行結果確認した後は再度『setコマンドで』エイリアス登録し直して続けてます。


Salesforce CLIで認証した組織に対して「target-org」と「target-dev-hub」の指定が可能です。次のように『sf config』コマンドを実行します。

% sf config set target-org=<エイリアス名>
% sf config set target-dev-hub=<エイリアス名>


ただし、『sf config コマンド』の実行には注意点があります。どこで実行しても良いわけではなく、Salesforce DX Projectのディレクトリで実行する必要があります。適当な場所で『set』コマンドを実行するとエラーとなりました。

Error (1): This directory does not contain a valid Salesforce DX project.


Projectのディレクトリで実行するというイメージは次のような感じ。


次のコマンドでconfigの状況を確認できます。

% sf config list


最後にログアウトの方法についてです。次のコマンドでSalesforce CLIに認証された情報を削除できます。役目を終えたSandbox環境の認証削除という感じで必要になります。

% sf org logout


認証組織が1つしかない場合、target-orgで指定している場合 (これもたぶん条件としてある)は、ピンポイントでこの組織をログアウトしますかと聞かれて処理が進みます。複数ある場合はログアウト対象を選択する形となっています。複数あるときはまとめて選択したものをまとめてログアウトできるようになっていますが、選択の操作は「スペース」キーとなっているので注意すること。(ターミナル上に表示されますが、意識しないと読み流しちゃう。)



ログアウトすると org list のコマンドで認証済組織ではなくなったことを確認できます。間違えてログアウトしても再度ログインすればいいだけですので気軽に試せる操作となります。

Salesforce CLI からSalesforce組織にアクセス

認証情報を使ったSalesforce CLIコマンドを一つ紹介。まずは上の作業でログアウト状態にしたので、再度認証コマンドを実行。


認証できたらエイリアス名を設定。これで準備完了です。


次の『sf org open』コマンドを使えば認証済みのSalesforce組織にブラウザを起動してアクセスできます。

% sf org open -o <エイリアス名>


ログインページでログイン操作を実行したときと同じ挙動となりSalesforceを開くことができます。


ヘルプコマンドで確認できるとおり、実行時のフラグがいくつか用意されています。


役立ちそうなのは『-b』のフラグ。ブラウザを指定してSalesforceを表示できます。

% sf org open -o sfdc-my-playground -b chrome


デフォルトブラウザはSafariを使いたくて設定しているけど、SalesforceはGoogle Chromeでアクセスしたいなって場面で役に経ちました。

Part 1のまとめ

ひとまず上記のコマンドが最初に試してみるのに丁度良いコマンドでした。試すときはDeveloper Edtion組織がおすすめです。コマンドの内容によってはスクラッチ組織の作成やapexコードの作成など組織に対して処理を行うものもあるので、自分用の環境で動作イメージを理解するところから始めると良さそうです。