進行状況の追跡を始めよう
Trailhead のホーム
Trailhead のホーム

アプリケーション作成の準備

学習の目的

この単元を完了すると、次のことができるようになります。
  • Salesforce DX プロジェクトの構造について説明する。
  • Salesforce CLI を使用してプロジェクトを作成する方法を説明する。
  • Salesforce CLI を使用してサンプルデータをインポートする方法を説明する。

Salesforce DX プロジェクトの作成

最初のアプリケーションを作成する前に、プロジェクトを作成して、それをソース制御リポジトリに接続します。

メモ

メモ

このアプリケーションを構築するために Trailhead Playground 組織は必要ありません。代わりに、スクラッチ組織を使用します。これらの有益な一時的環境については、前の単元で紹介しました。前の単元では、パッケージを Trailhead Playground にリリースする方法を扱っています。

Salesforce DX プロジェクトとは、関連するコードやカスタマイズを集めたパッケージメタデータのローカルコピーです。ローカルプロジェクトのソースやメタデータをスクラッチ組織と同期するために必要なコアアセットも含まれています。Salesforce CLI をインストールしたのと同じマシンにプロジェクトを作成し、そのプロジェクトを VCS リポジトリと同期します。

このモジュールでは、Aura コンポーネントを使用したシンプルな地理位置情報アプリケーションを作成します。
メモ

メモ

Spring '19 リリース (API バージョン 45.0) では、Lightning Web コンポーネントモデルと従来の Aura コンポーネントモデルの 2 つのプログラミングモデルを使用して Lightning コンポーネントを作成できます。Lightning Web コンポーネントと Aura コンポーネントは、ページ上に共存可能で、同時に使用できます。このコンテンツでは、Aura コンポーネントについて説明します。Lightning Web コンポーネントについての詳細は、「Introducing Lightning Web Components (Lightning Web コンポーネントの概要)」を参照してください。

では始めましょう! geolocation というプロジェクトを作成します。

  1. コマンドウィンドウで、プロジェクトを配置する場所に移動します。
  2. プロジェクトを作成します。
    sfdx force:project:create -n geolocation

    このコマンドは、geolocation という名前のフォルダを作成し、新しいプロジェクトのスキャフォールディングを行い、すべてのアセットを適切なフォルダ構造に配置します。次に、ローカルプロジェクトの例を示します。ソースコード、Lightning コンポーネント、クラスなどを追加し始めたときにプロジェクトがどのように進化するかがわかります。

    sfdx-project.json ファイルの画像

    アセット 目的
    sfdx-project.json このファイルは、ディレクトリが Salesforce DX プロジェクトであることを示しています。プロジェクト情報が含まれており、スクラッチ組織の認証を促進します。また、プロジェクトとスクラッチ組織の同期時にファイルを保存する場所を Salesforce CLI に示します。このファイル内で次のものを指定します。
    • パッケージディレクトリにあるソースコード、クラス、メタデータへのパス。この場合は force-app です。

    • 必要に応じて、名前空間。

    • ソースの API バージョン。

    Salesforce CLI コマンドはこの情報を使用して、プロジェクトと、関連付けられたスクラッチ組織の間でどのソースを追跡するかを決定します。

    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
    }
  }
}
メモ

メモ

ブラウザの安全で永続的なキャッシュを無効にすると、Lightning Experience のパフォーマンスに対して重大な悪影響があります。本番組織では常にこの設定を有効にしてください。

スクラッチ組織の作成

スクラッチ組織の威力を理解したところで、この組織をパッケージ開発モデルで使用する場合の基本的なワークフローを見ていきます。

メモ

メモ

Dev Hub 組織エディションによって、1 日に作成可能なスクラッチ組織の数と一時点に有効化できる数が決まります。Trailhead Playground は Developer Edition 組織です。sfdx force:org:delete コマンドを実行すると、既存のスクラッチ組織を削除して、割り当てを解放できます。

  1. ローカルのソースとメタデータをスクラッチ組織に転送します。
  2. スクラッチ組織で行った変更を元のローカルプロジェクトに取得する。
  3. このプロジェクトをソース制御リポジトリと同期する。

最初のステップでは、スクラッチ組織を作成します。ではやってみましょう。

  1. コマンドウィンドウで、geolocation プロジェクトディレクトリに移動します。
    cd geolocation
  2. スクラッチ組織を作成し、別名を GeoAppScratch とします。
    sfdx force:org:create -s -f config/project-scratch-def.json -a GeoAppScratch

この処理にはしばらく時間がかかることがあります。このコマンドの実行では、次のオプションを使用しています。

  • -s オプションは、このスクラッチ組織をこのプロジェクトで Salesforce CLI コマンドを実行するときのデフォルト組織にすることを指定します。コマンドごとに異なる組織を使用するには、-u 引数を指定して、他の別名を指定できます。

  • -f オプションは、プロジェクトのスクラッチ組織設定ファイルへのパスです。

  • 前の単元で説明した便利な -a オプションを覚えていますか? このオプションによって、これ以降のコマンドでこの組織を別名の GeoAppScratch を使用して参照でき、-u パラメータも使用できます。

サンプルデータの作成

スクラッチ組織には、選択したエディションに基づく標準データが用意されています。けれども、作成するアプリケーションやアーティファクトへの関連性がより高いサンプルデータを追加することが重要です。Salesforce CLI を使用して、地理位置情報アプリケーションでテストするサンプル取引先をいくつか作成しましょう。

  1. 「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'"
  2. 「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'"
  3. 「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 ファイルに追加します。

  4. Salesforce DX の geolocation プロジェクトで、data というディレクトリを作成します。
    mkdir data
  5. サンプルデータをエクスポートします。
    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

    ここまでは、通常のデータを同期してきました。次は、さらに面白い部分であるコードについて説明します。