アプリケーションのカスタマイズとその取得
学習の目的
- ローカルコンピューター上の変更を取得する方法を説明する。
- 開発プロジェクトが通る一連の手順を説明する。
プロジェクトがすべて GitHub に設定されたので、Tasha とそのチームは Food Bank アプリケーションに追加される計画変更の実装を開始します。GitHub を使用して進行状況を追跡し、CumulusCI を使用してスクラッチ組織を自動的に作成してプロジェクトのカスタマイズを取得します。
GitHub イシューを作成して提案された変更を追跡する
フードバンクは Salesforce 組織で何を追跡する必要があるでしょうか? 手始めには食料品配送が適しています。食料品配送の場合、フードバンクは配送日、食料品、納入業者を追跡する必要があります。チームの全員が Food Bank アプリケーションへの提案された追加について最新情報を把握できるように、Tasha は作業内容を追跡するためのイシューを GitHub に作成します。作業を行うのと同じ GitHub リポジトリでアプリケーションの改善やバグ修正を追跡すると、提案されたソリューションから、アプリケーションへの新規設定に関するディスカッションや新機能を配信する作業に至るまで、開発プロセス全体が追跡されます。Tasha と一緒に手順を実行しましょう。
- 前回の単元で開いたリポジトリを閉じてしまった場合は、GitHub Desktop で [View on GitHub (GitHub で表示)] を選択して GitHub でリポジトリを開きます。
-
[Issues (イシュー)] タブをクリックし、[New Issues (新規イシュー)] をクリックします。
- 右側の [Labels (ラベル)] から [enhancement (機能強化)] を選択してイシューを分類します。
-
[Title (タイトル)] に「
Add support for tracking deliveries
」 (配送追跡のサポートを追加する) を追加します。 -
[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 (配送品目) オブジェクトを作成する。) - [Submit new issue (新規イシューを送信)] をクリックします。
配送のオブジェクトと項目を作成する
Tasha には、食料品配送を処理するために設定できる一時的なスクラッチ組織が必要です。次は、変更の作成時に開発環境として機能するスクラッチ組織を作成します。
- GitHub Desktop メニューバーで [Repository (リポジトリ)] → [Open in Visual Studio Code (Visual Studio Code で開く)] を選択して VS Code ターミナルでリポジトリを開きます。
- ターミナルで
cci flow run dev_org --org dev
コマンドを実行します。
オートメーションの実行には数分かかります。オートメーションの実行中に、CumulusCI に指示した実行内容を見てみましょう。コマンドの最初の部分 cci flow run
は CumulusCI フロー (一連のタスク) を起動します。実行するように指示したフローは dev_org
です。このフローはスクラッチ組織を作成して設定します。この新しいスクラッチ組織はカスタマイズの開発に使用されます。dev_org
フローでは次の操作が自動的に実行されます。
- スクラッチ組織を作成する
- 連動関係をインストールする (アプリケーション構築のベースになる他の管理パッケージなど)
- アプリケーションをリリースする
- 定義したインストール後設定を実行する。
コマンドの最後の部分 --org dev
は、CumulusCI にどのスクラッチ組織でフローを実行するかを指示します。この場合、スクラッチ組織の名前は dev です。
ローカルコンピューター上の変更を取得する
いよいよ実装を開始します。CumulusCI を使用して作成および設定したスクラッチ組織で、配送追跡用のオブジェクトと項目を作成します。
- まだ VS Code を開いていなければ、GitHub Desktop で [Repository (リポジトリ)] → [Open in Visual Studio Code (Visual Studio Code で開く)] を選択して VS Code ターミナルでリポジトリを開きます。
- 新しいブラウザーウィンドウで
cci org browser dev
コマンドを実行してスクラッチ組織dev
を開きます。 - ブラウザーウィンドウでスクラッチ組織が開いたので、GitHub イシューに記述したカスタマイズを作成します。
- Object (オブジェクト):
Delivery
(自動採番レコード表示ラベル名)
Note (メモ): Create a new custom tab for this object (このオブジェクト用に新しいカスタムタブを作成する)- Field (項目):
Scheduled Date
(スケジュール済み日時) (日時) - Field (項目):
Status
(状況) (選択リスト)- Requested (要求済み)
- スケジュール済み
- 完了
- キャンセル
- Field (項目):
Supplier
(納入業者) (取引先への参照関係)
- Field (項目):
- Object (オブジェクト):
Delivery Item
(配送品目)- Field (項目):
Delivery
(配送) (配送への参照関係) - Field (項目):
Food Storage
(食料品保管) (選択リスト)- Non-refrigerated (常温)
- Frozen (冷凍)
- Refrigerated (冷蔵)
- Field (項目):
Food Expiration Date
(食料品の消費期限) (日付)
- Field (項目):
- Object (オブジェクト):
dev
スクラッチ組織にカスタマイズを作成したので、次はローカルコンピューター上で GitHub リポジトリへの変更を取得します。
- dev スクラッチ組織で検出されたすべての変更のリストを表示するには、VS Code ターミナルで
cci task run list_changes --org dev
コマンドを入力します。 - リストにはスキーマの変更 (前に作成したオブジェクトと項目) と他のいくつかの変更 (加えた変更に伴い自動的に更新されたページレイアウトとプロファイル) が含まれています。
- プロファイルは管理パッケージから除外しておくことをお勧めします。プロファイルを除外するようにコマンドを
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 度習得すれば、どこででも再利用できます!