アプリケーション作成の準備
学習の目的
- Salesforce DX プロジェクトの構造について説明する。
- Salesforce CLI を使用してプロジェクトを作成する方法を説明する。
- Salesforce CLI を使用してサンプルデータをインポートする方法を説明する。
Salesforce DX プロジェクトの作成
最初のアプリケーションを作成する前に、プロジェクトを作成して、それをソース制御リポジトリに接続します。
Salesforce DX プロジェクトとは、関連するコードやカスタマイズを集めたパッケージメタデータのローカルコピーです。ローカルプロジェクトのソースやメタデータをスクラッチ組織と同期するために必要なコアアセットも含まれています。Salesforce CLI をインストールしたのと同じマシンにプロジェクトを作成し、そのプロジェクトを VCS リポジトリと同期します。
では始めましょう! geolocation
というプロジェクトを作成します。
- コマンドウィンドウで、プロジェクトを配置する場所に移動します。
- プロジェクトを作成します。
sfdx force:project:create -n geolocation
このコマンドは、geolocation という名前のフォルダを作成し、新しいプロジェクトのスキャフォールディングを行い、すべてのアセットを適切なフォルダ構造に配置します。次に、ローカルプロジェクトの例を示します。ソースコード、Lightning コンポーネント、クラスなどを追加し始めたときにプロジェクトがどのように進化するかがわかります。アセット 目的 sfdx-project.json このファイルは、ディレクトリが Salesforce DX プロジェクトであることを示しています。プロジェクト情報が含まれており、スクラッチ組織の認証を促進します。また、プロジェクトとスクラッチ組織の同期時にファイルを保存する場所を Salesforce CLI に示します。このファイル内で次のものを指定します。 - パッケージディレクトリにあるソースコード、クラス、メタデータへのパス。この場合は force-app です。
- 必要に応じて、名前空間。
- ソースの API バージョン。
config/project-scratch-def.json スクラッチ組織の設定を指定します。組織の形状を定義する機能や設定が含まれます。開発チーム全体が共有する設定ファイルを作成できます。 force-app プロジェクトのソースが含まれるフォルダ。
スクラッチ組織定義ファイルの設定
スクラッチ組織定義ファイルを使用すると、テスト用に異なる機能や設定を持つスクラッチ組織を簡単に作成できます。たとえば、s1EncryptedStoragePref2
組織設定を指定することで、Lightning Experience のキャッシュを有効または無効にできます。開発中は、キャッシュを無効にすることで、Lightning コンポーネントのコード変更を有効にするために何度もページを更新する必要がなくなります。
config/project-scratch-def.json
の内容を、Lightning Experience のキャッシュを無効にする次のスクラッチ組織定義に置き換えます。
{ "orgName": "Account Geolocation App", "edition": "Developer", "settings": { "mobileSettings": { "enableS1EncryptedStoragePref2": false } } }
スクラッチ組織の作成
スクラッチ組織の威力を理解したところで、この組織をパッケージ開発モデルで使用する場合の基本的なワークフローを見ていきます。
- ローカルのソースとメタデータをスクラッチ組織に転送します。
- スクラッチ組織で行った変更を元のローカルプロジェクトに取得する。
- このプロジェクトをソース制御リポジトリと同期する。
ただし、ワークフローでいろいろ試してみるには、まずスクラッチ組織を作成する必要があります。ではやってみましょう。
- コマンドウィンドウで、geolocation プロジェクトディレクトリに移動します。
cd geolocation
- スクラッチ組織を作成し、別名を GeoAppScratch とします。
sfdx force:org:create -s -f config/project-scratch-def.json -a GeoAppScratch
この処理にはしばらく時間がかかることがあります。このコマンドの実行では、次のオプションを使用しています。
-
-s
オプションは、このスクラッチ組織をこのプロジェクトで Salesforce CLI コマンドを実行するときのデフォルト組織にすることを指定します。コマンドごとに異なる組織を使用するには、-u
引数を指定して、他の別名を指定できます。 -
-f
オプションは、プロジェクトのスクラッチ組織設定ファイルへのパスです。 - 前の単元で説明した便利な
-a
オプションを覚えていますか? このオプションによって、これ以降のコマンドでこの組織を別名の GeoAppScratch を使用して参照でき、-u
パラメータも使用できます。
サンプルデータの作成
スクラッチ組織には、選択したエディションに基づく標準データが用意されています。けれども、作成するアプリケーションやアーティファクトへの関連性がより高いサンプルデータを追加することが重要です。Salesforce CLI を使用して、地理位置情報アプリケーションでテストするサンプル取引先をいくつか作成しましょう。
- 「Marriott Marquis」取引先を作成します。
sfdx force:data:record:create -s Account -v "Name='Marriott Marquis' BillingStreet='780 Mission St' BillingCity='San Francisco' BillingState='CA' BillingPostalCode='94103' Phone='(415) 896-1600' Website='www.marriott.com'"
- 「Hilton Union Square」取引先を作成します。
sfdx force:data:record:create -s Account -v "Name='Hilton Union Square' BillingStreet='333 O Farrell St' BillingCity='San Francisco' BillingState='CA' BillingPostalCode='94102' Phone='(415) 771-1400' Website='www.hilton.com'"
- 「Hyatt」取引先を作成します。
sfdx force:data:record:create -s Account -v "Name='Hyatt' BillingStreet='5 Embarcadero Center' BillingCity='San Francisco' BillingState='CA' BillingPostalCode='94111' Phone='(415) 788-1234' Website='www.hyatt.com'"
開発者の世界をさらに揺るがす機能として、簡単にスクラッチ組織からプロジェクトにデータを取得するコマンドが用意されています。その後、そのデータをソース制御リポジトリにコミットすると、自分や別の開発者が新しいスクラッチ組織を作成するときに再読み込みできます。
どのソース制御リポジトリを使用する場合でも、.sfdx
フォルダをリポジトリへの追加から除外するようにソース制御リポジトリを設定することをお勧めします。このフォルダにはスクラッチ組織の一時情報が保持されているため、後の人のために保存する必要はありません。Git では、このフォルダを.gitignore
ファイルに追加します。
- Salesforce DX の geolocation プロジェクトで、
data
というディレクトリを作成します。mkdir data
- サンプルデータをエクスポートします。
sfdx force:data:tree:export -q "SELECT Name, BillingStreet, BillingCity, BillingState, BillingPostalCode, Phone, Website FROM Account WHERE BillingStreet != NULL AND BillingCity != NULL and BillingState != NULL" -d ./data
これでサンプルデータが保存されます。このサンプルデータは今後、次のコマンドでインポートできます。ただし、後で別のスクラッチ組織でデータをインポートするので、今はしないでください。sfdx force:data:tree:import --sobjecttreefiles data/Account.json
ここまでは、通常のデータを同期してきました。次は、さらに面白い部分であるコードについて説明します。