Skip to main content

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

学習の目的

この単元を完了すると、次のことができるようになります。
  • 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. プロジェクトを作成します。
    sf project generate --name 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 プロジェクトのソースが含まれるフォルダー。

スクラッチ組織定義ファイルの設定

スクラッチ組織定義ファイルを使用すると、テスト用に異なる機能や設定を持つスクラッチ組織を簡単に作成できます。たとえば、enables1EncryptedStoragePref2 組織設定を指定することで、Salesforce モバイル Web のキャッシュを有効または無効にできます。開発中は、キャッシュを無効にすることで、コンポーネントのコード変更を有効にするために何度もページを更新する必要がなくなります。

必要に応じて、config/project-scratch-def.json の内容を更新して、orgName プロパティを変更するなどのカスタマイズを行います。

{
  "orgName": "Account Geolocation App",
  "edition": "Developer",
  "features": ["EnableSetPasswordInApi"],
  "settings": {
    "lightningExperienceSettings": {
      "enableS1DesktopEnabled": true
    },
    "mobileSettings": {
      "enableS1EncryptedStoragePref2": false
    }
  }
}

メモ

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

スクラッチ組織の作成

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

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

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

ただし、ワークフローでいろいろ試してみるには、まずスクラッチ組織を作成する必要があります。ではやってみましょう。

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

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

  • --set-default フラグは、このスクラッチ組織をこのプロジェクトで Salesforce CLI コマンドを実行するときのデフォルト組織にすることを指定します。コマンドごとに異なる組織を使用するには、--target-org フラグを指定して、他の別名を指定できます。
  • --Definition-file フラグは、プロジェクトのスクラッチ組織設定ファイルへのパスです。
  • 前の単元で説明した便利な --alias フラグを覚えていますか? このフラグによって、これ以降のコマンドでこの組織を別名の GeoAppScratch を使用して参照でき、--target-org フラグも使用できます。

サンプルデータの作成

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

  1. 「Marriott Marquis」取引先を作成します。
    sf data create record --sobject Account --values "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」取引先を作成します。
    sf data create record --sobject Account --values "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」取引先を作成します。
    sf data create record --sobject Account --values "Name='Hyatt' BillingStreet='5 Embarcadero Center' BillingCity='San Francisco' BillingState='CA' BillingPostalCode='94111' Phone='(415) 788-1234' Website='www.hyatt.com'"
    開発者の世界をさらに揺るがす機能として、簡単にスクラッチ組織からプロジェクトにデータを取得するコマンドが用意されています。その後、そのデータをソース制御リポジトリにコミットすると、自分や別の開発者が新しいスクラッチ組織を作成するときに再読み込みできます。

    どのソース制御リポジトリを使用する場合でも、.sf フォルダーをリポジトリへの追加から除外するようにソース制御リポジトリを設定することをお勧めします。このフォルダーにはスクラッチ組織の一時情報が保持されているため、後の人のために保存する必要はありません。Git では、このフォルダーを .gitignore ファイルに追加します。

  4. Salesforce DX の geolocation プロジェクトで、data というディレクトリを作成します。
    mkdir data
  5. サンプルデータをエクスポートします。
    sf data export tree --query "SELECT Name, BillingStreet, BillingCity, BillingState, BillingPostalCode, Phone, Website FROM Account WHERE BillingStreet != NULL AND BillingCity != NULL and BillingState != NULL" --output-dir ./data
    これでサンプルデータが保存されます。このサンプルデータは今後、次のコマンドでインポートできます。ただし、後で別のスクラッチ組織でデータをインポートするので、今はしないでください。
    sf data import tree --files data/Account.json
    ここまでは、通常のデータを同期してきました。次は、さらに面白い部分であるコードについて説明します。
無料で学習を続けましょう!
続けるにはアカウントにサインアップしてください。
サインアップすると次のような機能が利用できるようになります。
  • 各自のキャリア目標に合わせてパーソナライズされたおすすめが表示される
  • ハンズオン Challenge やテストでスキルを練習できる
  • 進捗状況を追跡して上司と共有できる
  • メンターやキャリアチャンスと繋がることができる