アプリケーションのカスタマイズとその取得

学習の目的

  • ローカルコンピュータ上の変更を取得する方法を説明する。
  • 開発プロジェクトが通る一連の手順を説明する。

プロジェクトがすべて GitHub に設定されたので、Tasha とそのチームは Food Bank アプリケーションに追加される計画変更の実装を開始します。GitHub を使用して進行状況を追跡し、CumulusCI を使用してスクラッチ組織を自動的に作成してプロジェクトのカスタマイズを取得します。

メモ

メモ

ここで説明するパッケージはトレーニング用に最適化されています。Salesforce でフードバンクを管理する方法として推奨することを意図したものではありません。

GitHub イシューを作成して提案された変更を追跡する

フードバンクは Salesforce 組織で何を追跡する必要があるでしょうか? 手始めには食料品配送が適しています。食料品配送の場合、フードバンクは配送日、食料品、納入業者を追跡する必要があります。チームの全員が Food Bank アプリケーションへの提案された追加について最新情報を把握できるように、Tasha は作業内容を追跡するためのイシューを GitHub に作成します。作業を行うのと同じ GitHub リポジトリでアプリケーションの改善やバグ修正を追跡すると、提案されたソリューションから、アプリケーションへの新規設定に関するディスカッションや新機能を配信する作業に至るまで、開発プロセス全体が追跡されます。Tasha と一緒に手順を実行しましょう。

  1. 前回の単元で開いたリポジトリを閉じてしまった場合は、GitHub Desktop で [View on GitHub (GitHub で表示)] を選択して GitHub でリポジトリを開きます。
  2. [Issues (イシュー)] タブをクリックし、[New Issues (新規イシュー)] をクリックします。
    [Issues (イシュー)] タブと [New Issues (新規イシュー)] ボタンが強調表示されたブラウザウィンドウの GitHub。
  3. 右側の [Labels (ラベル)] から [enhancement (機能強化)] を選択してイシューを分類します。
  4. [Title (タイトル)] に「Add support for tracking deliveries」 (配送追跡のサポートを追加する) を追加します。
  5. [Write (説明)] に対応すべきニーズの詳細を次のように入力します: Food banks need a way to track scheduled deliveries of food and which items are being delivered.Create the Delivery and Delivery Item objects to support this use case. (フードバンクは食料品のスケジュール済み配送と配送される品目を追跡する方法を必要としている。この使用事例をサポートするために Delivery (配送) および Delivery Item (配送品目) オブジェクトを作成する)。
  6. [Submit new issue (新規イシューを送信)] をクリックします。

配送のオブジェクトと項目を作成する

Tasha には、食料品配送を処理するために設定できる一時的なスクラッチ組織が必要です。次は、変更の作成時に開発環境として機能するスクラッチ組織を作成します。

メモ

メモ

次の手順では、まったく新しいスクラッチ組織が作成されます。これは Dev Hub を有効化した Trailhead Playground とは異なります。この新しいスクラッチ組織 (名前は「dev」) ではカスタマイズを開発します。この単元では Trailhead Playground は使用しません

  1. GitHub Desktop メニューバーで [Repository (リポジトリ)] → [Open in Visual Studio Code (Visual Studio Code で開く)] を選択して VS Code ターミナルでリポジトリを開きます。
  2. ターミナルで cci flow run dev_org --org dev コマンドを実行します。

オートメーションの実行には数分かかります。オートメーションの実行中に、CumulusCI に指示した実行内容を見てみましょう。コマンドの最初の部分 cci flow run は CumulusCI フロー (一連のタスク) を起動します。実行するように指示したフローは dev_org です。このフローはスクラッチ組織を作成して設定します。この新しいスクラッチ組織はカスタマイズの開発に使用されます。dev_org フローでは次の操作が自動的に実行されます。

  • スクラッチ組織を作成する
  • 連動関係をインストールする (アプリケーション構築のベースになる他の管理パッケージなど)
  • アプリケーションをリリースする
  • 定義したインストール後設定を実行する。

コマンドの最後の部分 --org dev は、CumulusCI にどのスクラッチ組織でフローを実行するかを指示します。この場合、スクラッチ組織の名前は dev です。

ローカルコンピュータ上の変更を取得する

いよいよ実装を開始します。CumulusCI を使用して作成および設定したスクラッチ組織で、配送追跡用のオブジェクトと項目を作成します。

メモ

メモ

次の手順では、Salesforce の [設定] でカスタムオブジェクトとカスタム項目を宣言的に作成する方法について基本的な知識があることを前提としています。復習をする場合は、この単元の最後にある「リソース」セクションでユーザドキュメントへのリンクを参照してください。

  1. まだ VS Code を開いていなければ、GitHub Desktop で [Repository (リポジトリ)] → [Open in Visual Studio Code (Visual Studio Code で開く)] を選択して VS Code ターミナルでリポジトリを開きます。
  2. 新しいブラウザウィンドウで cci org browser dev コマンドを実行してスクラッチ組織 dev を開きます。
  3. ブラウザウィンドウでスクラッチ組織が開いたので、GitHub イシューに記述したカスタマイズを作成します。
    • Object (オブジェクト): Delivery (自動採番レコード表示ラベル名)
      Note (メモ): Create a new custom tab for this object (このオブジェクト用に新しいカスタムタブを作成する)
      • Field (項目): Scheduled Date (スケジュール済み日時) (日時)
      • Field (項目): Status (状況) (選択リスト)
        • Requested (要求済み)
        • Scheduled (スケジュール済み)
        • Completed (完了)
        • Canceled (キャンセル済み)
      • Field (項目): Supplier (納入業者) (取引先への参照関係)
    • Object (オブジェクト): Delivery Item (配送品目)
      • Field (項目): Delivery (配送) (配送への参照関係)
      • Field (項目): Food Storage (食料品保管) (選択リスト)
        • Non-refrigerated (常温)
        • Frozen (冷凍)
        • Refrigerated (冷蔵)
      • Field (項目): Food Expiration Date (食料品の消費期限) (日付)
メモ

メモ

カスタムオブジェクトとカスタム項目のみを作成し、オートメーションとカスタムコードは作成しないため、作成されたのはスキーマ専用パッケージと呼ばれるパッケージです。Apex を使用したより複雑なカスタマイズを検討するまでは、作成とパッケージ化のプロセスを容易に進めるためにスキーマ専用パッケージを作成することをお勧めします。

dev スクラッチ組織にカスタマイズを作成したので、次はローカルコンピュータ上で GitHub リポジトリへの変更を取得します。 

  1. dev スクラッチ組織で検出されたすべての変更のリストを表示するには、VS Code ターミナルで cci task run list_changes --org dev コマンドを入力します。
  2. リストにはスキーマの変更 (前に作成したオブジェクトと項目) と他のいくつかの変更 (加えた変更に伴い自動的に更新されたページレイアウトとプロファイル) が含まれています。
    変更されたコンポーネントが表示されている、list_changes タスクからのサンプル出力
  3. プロファイルは管理パッケージから除外しておくことをお勧めします。プロファイルを除外するようにコマンドを cci task run list_changes --org dev -o exclude "Profile:" に変更します。

変更のリストに問題がなければ、変更を取得する準備ができています。前に使用した list コマンドに似たコマンドを使用して、すべての変更を retrieve (取得) し、それらのプロファイル変更を除外します。

プロのヒント: コマンドは再度入力しなくても編集して再実行できます。キーボードの上矢印キーを押して最後に使用したコマンドを呼び出して編集し、Return キーを押して編集したコマンドを実行します。

取得するには、cci task run retrieve_changes --org dev -o exclude "Profile:" コマンドを実行します。

変更内容が GitHub Desktop に表示されます。GitHub Desktop ではリポジトリ内のファイルへの変更が自動的に追跡されて表示されるため、バージョン管理に保存してチームメイトと共有できます (これは次の単元で行います)。

プロジェクトへの変更はすべて同じサイクルを通ります。CumulusCI プロジェクトでは同じプロセスが使用されます。1 回修得すれば、どこででも再利用できます!

リソース