tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Salesforce DXの環境構築を試してみました - Part1

Salesforce DXの環境構築を試してみました。TrailheadのApp Development with Salesforce DXで学ぶことができます。


30日間利用できるトライアル環境が必要になります。
f:id:tyoshikawa1106:20170723194401p:plain

dx-signup | Salesforce Developers

ログイン後の画面です。
f:id:tyoshikawa1106:20170723200129p:plain


CLIは下記URLからインストールできます。
f:id:tyoshikawa1106:20170723194511p:plain


Mac用

https://sfdc.co/sfdx_cli_osx

f:id:tyoshikawa1106:20170723194654p:plain:w300


インストールできているかは下記コマンドで確認できます。

$ sfdx

f:id:tyoshikawa1106:20170723195218p:plain

便利なコマンド

利用可能なすべてのトピック

$ sfdx force --help

f:id:tyoshikawa1106:20170723195327p:plain


使用可能なすべてのコマンド

$ sfdx force:doc:commands:display

f:id:tyoshikawa1106:20170723195539p:plain

Dev Hubにログインする

$ sfdx force:auth:web:login -d -a DevHub

f:id:tyoshikawa1106:20170723200258p:plain


実行するとログインページに移動します。DevHubのトライアル環境にログインします。
f:id:tyoshikawa1106:20170723200419p:plain


ログインすると認証ページに移動します。
f:id:tyoshikawa1106:20170723200432p:plain


これでDev Hub環境にログインできました。
f:id:tyoshikawa1106:20170723200536p:plain

f:id:tyoshikawa1106:20170723200632p:plain


一度ログインすると次のコマンドでDevHub組織にアクセスできます。

sfdx force:org:open -u DevHub

f:id:tyoshikawa1106:20170723200936p:plain


サンドボックスにログインする場合は次のとおりです。

$ sfdx force:auth:web:login -a FullSandbox
$ sfdx force:auth:web:login -a DevSandbox


The Power of Aliasing - 別名の扱い

$ sfdx force:org:open -u FullSandbox
$ sfdx force:org:open -u MyScratchOrg
$ sfdx force:limits:api:display -u DevSandbox


すべての組織を表示 (画面キャプチャは組織なしの場合)

$ sfdx force:org:list

f:id:tyoshikawa1106:20170723201359p:plain

『--verbose』オプションでより詳細を確認できるそうです。

プロジェクトの作成

下記のコマンドでプロジェクトを作成できます。

$ sfdx force:project:create -n geolocation

f:id:tyoshikawa1106:20170723202923p:plain

f:id:tyoshikawa1106:20170723203003p:plain


ファイルのイメージ (Google翻訳版)
f:id:tyoshikawa1106:20170723203037p:plain

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

$ sfdx force:org:create -s -f config/project-scratch-def.json -a GeoAppScratch

f:id:tyoshikawa1106:20170723203201p:plain

上のエラーがでたときはディレクトリが正しい確認します。
f:id:tyoshikawa1106:20170723203340p:plain


これで正常に実行できました。
f:id:tyoshikawa1106:20170723203435p:plain


コマンドのオプションの意味はこちら
f:id:tyoshikawa1106:20170723203524p:plain


作成できたかはDevHub組織で確認できます。
f:id:tyoshikawa1106:20170723203637p:plain

f:id:tyoshikawa1106:20170723204146p:plain

カスタムオブジェクトを作成

下記コマンドで作成したスクラッチ組織にアクセスできます。

$ sfdx force:org:open

f:id:tyoshikawa1106:20170723203959p:plain

f:id:tyoshikawa1106:20170723204200p:plain


スクラッチ組織にアクセスしたら取引先にカスタム項目を作成します。
f:id:tyoshikawa1106:20170723204617p:plain


権限セットを作成します。
f:id:tyoshikawa1106:20170723205050p:plain


次のコマンドで権限セットをユーザに割り当てることができます。

$ sfdx force:user:permset:assign -n Geolocation

f:id:tyoshikawa1106:20170723205154p:plain

f:id:tyoshikawa1106:20170723205233p:plain


変更をローカルプロジェクトに取込

Salesforce環境を反映するスクラッチ組織を作成し、そのスクラッチ組織内で直接いくつかの変更を加えました。今、魔法が起こります。1つのコマンドで、アプリケーションをビルドしたときに作成されたすべてのメタデータをプロジェクトに取り込むことができます。

$ sfdx force:source:pull

f:id:tyoshikawa1106:20170723205654p:plain


ベストプラクティスとして、プロジェクトに持ってきたソースをすぐにVCSにコミットします。スクラッチオルガンは一時的で一時的なものなので、ローカルに保存した作業のバックアップが常に必要です。

Salesforce DXはバージョンコントロールに依存しないため、好きなシステムを使用できます。GitHubで使用できるGitコマンドの例を次に示します。レポを初期化してGitHubに接続するには、次の1回限りのコマンドを使用します。

$ git init
$ git remote add origin [github ssh url]

これらのコマンドは、ファイルをリポジトリmasterにコミットします。

$ git add -A
$ git commit -m “Added custom object and permset”
$ git push origin master

どのVCSを使用する場合でも、.sfdxフォルダをリポジトリに追加しないように設定することをお勧めし ます。このフォルダには、スクラッチオーガニックの一時的な情報が格納されているため、VCSに後世向けに保存する必要はありません。gitでは、.gitignoreファイルに追加します。

VCSでは、更新されたオブジェクト定義が安全で健全です。しかし、関連するデータがなければそれほど興味深いものではありません。スクラッチオルガンには、選択したエディションに基づいた標準データが付属しています。ただし、作成するアプリや成果物に関連するサンプルデータを追加することは重要です。この例では、新しいカスタムLocationフィールドでサンプルデータを使用できます。Salesforce CLIを使用して、新しい複合フィールドにいくつか追加しましょう。

サンプルデータの作成

テストデータを作成します。
f:id:tyoshikawa1106:20170723210656p:plain


次のコマンドでクエリを実行して対象データをエクスポートできます。

$ sfdx force:data:tree:export -q "SELECT Name, Location__Latitude__s, Location__Longitude__s FROM Account WHERE Location__Latitude__s != NULL AND Location__Longitude__s != NULL" -d ./data

f:id:tyoshikawa1106:20170723210813p:plain


エクスポートしたファイルはJSON形式でdataフォルダ内に保存されます。
f:id:tyoshikawa1106:20170723210854p:plain


エクスポートした情報は次のコマンドでインポートできます。

$ force:data:tree:import --sobjecttreefiles data/Account.json


これでCLIのインストール、DevHub環境への接続、スクラッチ組織の作成、権限セットの割り当て、サンプルデータのエクスポートとインポートの方法まで確認できました。

補足

sfdx-project.jsonファイルにはどのような情報が含まれていますか?

ソースとメタデータをスクラッチ・オーガナと同期するために必要な情報

MyNewAppというプロジェクトワークスペースを作成するためのCLIコマンドは何ですか?

sfdx force:project:create -n MyNewApp

既存のアカウントをインポートするためのCLIコマンドの例は、異なるプロジェクトワークスペースのデータのサンプルですか?

sfdx force:data:tree:import --sobjecttreefiles data/Account.json