実装プロジェクトの作成

メモ

メモ

この単元の手順を完了するまでの予想時間は推定にすぎません。システム設定とネットワーク速度に応じて、実際のインストール時間の方が長くなることがあります。

学習の目的

  • 追加のカスタマイズを行うために別のプロジェクトを作成する理由を説明する。
  • 追加のパッケージをインストールするよう CumulusCI を設定する方法を説明する。
メモ

メモ

このモジュールの最後にあるハンズオン Challenge に挑戦する前に、「CumulusCI を使用したアプリケーション構築」トレイルに含まれているこれ以前のモジュールも参照し、Tasha と同じ手順を実行してください。

さらに、Tasha が使用した Sandbox ではなく、Trailhead Playground で手順を実行してください。 

  • CumulusCI の設定 - 手順とハンズオン Challenge
  • CumulusCI を使用したコミュニティプロジェクト開発 - 手順
  • CumulusCI を使用したデータ管理 - 手順
  • CumulusCI を使用した管理パッケージ — 手順とハンズオン Challenge

このモジュールでは、数千もの食料安全保障団体にメリットをもたらす可能性があるオープンソースアプリケーションの開発に取り組むコラボレーションコミュニティチームのストーリーを引き続き見ていきます。  管理パッケージを作成したチームは、次に Salesforce.org の Nonprofit Success Pack (NPSP) と Hunger Northeast (Tasha の友人 Maddie の団体) のニーズに固有のカスタマイズを含む初めての実装に取り掛かります。

Maddie のサンデー (組織) を構築する

Maddie は、自分が勤務するフードバンク向けの新しい Food Bank 管理パッケージを使い始めることを楽しみにしています。この管理パッケージには、団体のプログラム作業のかなりの部分を追跡するのに便利な機能が含まれおり、まずまずのスタートといえます。新しい管理パッケージと共に Salesforce と Nonprofit Success Pack を使用して、フードバンクの資金調達、賛助者とのリレーション、ボランティアを追跡します。 

Maddie にはカスタマイズを必要とする団体固有のレポートニーズがあります。Hunger Northeast の資金は、その有意な部分が、フードバンク利用者のより健康的な食生活のメリットを調査している州当局から提供されています。州は、Hunger Northeast がフードバンクが分配に新鮮な地元農産物を含めることを前提に資金を提供しています。この資金の要件として、Hunger Northeast は配送する各箱の詳細を追跡する必要があります。そこで彼女は、地元農産物が分配に含まれているかどうかを取得するチェックボックスを追加したいと考えます。これを Food Bank 管理パッケージの Delivery Item (配送品目) オブジェクトに追加します。

これらすべてのニーズを満たすために、Maddie は次で構成される独自の Salesforce サンデー (組織) をカスタマイズまたは構築する必要があります。

  • 器 (Force.com プラットフォーム)
  • ブラウニー (NPSP: オープンソースの Salesforce.org 製品)
  • アイスクリーム (Food Bank 管理パッケージ)
  • お気に入りのトッピング (新しいチェックボックス)

Maddie と Tasha は、Nonprofit Success Pack のトライアルを開始して、Food Bank 管理パッケージをインストールし、チェックボックス項目を追加すればよいだけのことだとわかっていますが、Maddie は Salesforce プラットフォームをより深く理解することに力を注いでいます。彼女は要件がいつか変更されることを見越して、将来的な組織の適応またはコンサルティングパートナーとの連携に備えて十分な知識を得たいと考えています。

Maddie と Tasha は、Tasha が CumulusCI プロジェクトを使用してパッケージを構築したように、Maddie のニーズを満たす新しい CulumusCI プロジェクトを構築する必要があると考えます。そうすれば、Maddie や Hunger Northeast で働く他のスタッフが、組織の設定を変えずにテストすることができます。

この新しいプロジェクトの一部として、Tasha と Maddie は CumulusCI プロジェクトが保存される GitHub の新しいリポジトリで、Maddie の組織に必要なインストール後のカスタマイズを取得します。このリポジトリは組織の情報源として機能します。これには次のような利点があります。

  • Maddie はテストまたは実験用に組織のすべての構成要素を含む新しいスクラッチ組織をすばやく作成できる。
  • 組織のコンポーネントの変更履歴を確認できる。
  • フードバンクは、Maddie の本番組織または Sandbox 組織へのフルアクセスを提供せずに、開発のためにサードパーティパートナーと設定を共有できる。
  • 他のフードバンクにも関係があるとわかれば、Maddie はカスタマイズを簡単に Tasha、Isabel と共有して、Food Bank 管理パッケージの更新を提案できる。

これらの利点を踏まえて、Maddie は CulumusCI を活用して CumulusCI プロジェクトを作成することにします。

別の Git リポジトリを作成する

Maddie の組織の実装は別個の GitHub リポジトリに格納されます。リポジトリを作成する手順は以下のとおりです。コンピュータにインストールされた GitHub Desktop を使用して実行してください。

  1. GitHub Desktop を開きます。
  2. メニューから [File (ファイル)] → [New Repository (新規リポジトリ)] を選択します。
  3. リポジトリの情報を次のように入力します。
    1. Name (名前): Food-Bank-Implementation
    2. Description (説明): Maddie’s food bank org (Maddie のフードバンク組織)
    3. Local Path (ローカルパス): GitHub フォルダを選択するか、警告が表示された場合は新規フォルダを作成
    4. Git Ignore: None (なし)
    5. Licence (ライセンス): None (なし)
  4. [Create Repository (リポジトリの作成)] をクリックします。

CumulusCI を設定する

管理パッケージプロジェクトのときと同じように、実装プロジェクト用に CulumusCI を設定します。

  1. GitHub Desktop で Food-Bank-Implementation リポジトリを開いてることを確認します。
  2. [Repository (リポジトリ)] → [Open in Visual Studio Code (Visual Studio Code で開く)] を選択して、ターミナルでリポジトリを開きます。
  3. ターミナルウィンドウで、cci project init と入力します。
  4. プロジェクトの情報を求める一連の指示に次のように答えます。
    1. Project Name (プロジェクト名): デフォルトを使用 (Return キーを押す)
    2. Package Name (パッケージ名): デフォルトを使用 (Return キーを押す)
    3. Managed package project (管理パッケージプロジェクト): n
    4. API Version (API バージョン): デフォルトを使用 (Return キーを押す)
    5. Source format (ソース形式): デフォルトの sfdx を使用 (Return キーを押す)
    6. Are you extending another CumulusCI project such as NPSP or EDA? (NPSP や EDA などの別の CumulusCI プロジェクトに拡張しますか?):
      1. y を選択
      2. 2 を選択
    7. 残りのすべての質問ではデフォルトを受け入れる (Return キーを押す)

完了したら、ターミナルに Your project is now initialized for use with CumulusCI (プロジェクトは CumulusCI を使用するために初期化されました) という行が表示されます。

  1. VS Code ターミナルに cci service connect devhub --project コマンドを入力します。
  2. Username (ユーザ名) の入力を求められたら、CCIDevHub と入力します。

これにより、このプロジェクトでスクラッチ組織の作成を要求すると、このトレイル用に作成した特別な Dev Hub 組織を CumulusCI が使用するように設定されます。

連動関係パッケージを追加する

Maddie は、GitHub リポジトリを設定するときにプロジェクトが NPSP に連動することを指定しました。Maddie の実装は、Food Bank 管理パッケージにも連動します。Maddie と一緒に管理パッケージを追加しましょう。

  1. GitHub Desktop で [Repository (リポジトリ)] → [Open in Visual Studio Code (Visual Studio Code で開く)] を選択して、Food-Bank-Implementation リポジトリを開きます。
  2. サイドバーの [Food-Bank-Implementation] ヘッダーの下で cumulusci.yml を見つけてクリックし、VS Code のエディタ領域で開きます。
  3. dependencies (連動関係) のリストを見つけます。SalesforceFoundation リポジトリの dependency (Nonprofit Success Pack) の下に、「CulumusCI を使用したコミュニティプロジェクト開発」で作成したリポジトリを参照する行を追加します。新しい行で、- github: 'https://github.com/YourGitHubUsername/Food-Bank’ を追加します。
メモ

メモ

YourGitHubUsername の部分には必ず自分の GitHub ユーザ名を入力してください。

追加したら次のようになります。

    dependencies:
      - github: 'https://github.com/SalesforceFoundation/NPSP'
      - github: 'https://github.com/YourGitHubUsername/Food-Bank'

NPSP を連動関係としてインストールすると、NPSP 管理パッケージがインストールされます。NPSP を使用する組織には通常、商談レコードタイプ、ページレイアウト、カスタム設定などのパッケージ化されていないメタデータもあります。この追加設定は NPSP の config_managed フローで処理されます。このフローは GitHub の NPSP リポジトリに保存されています。次は、cumulusci.yml ファイルに新しい連動関係を追加します。

メモ

メモ

警告: これらのステップのコードを直接コピーするには、コードブロックで全体を選択してから Command+c (macOS) または Ctrl+c (Windows) を押します。画面上の [Copy (コピー)] ボタンを使用してこの更新を cumulusci.yml ファイルにコピーしないでください。ボタンを使用してコピーするとエラーになります。

  1. cumulusci.yml ファイルで末尾に行を追加し、行がインデントされていないことを確認します。
  2. NPSP の config_managed フローのソースを追加します。
sources:
    npsp:
        github: https://github.com/SalesforceFoundation/NPSP

新しい連動関係を追加する前に、既存の連動関係を確認してください。

メモ

メモ

警告: これらのステップのコードを直接コピーするには、コードブロックで全体を選択してから Command+c (macOS) または Ctrl+c (Windows) を押します。画面上の [Copy (コピー)] ボタンを使用してこの更新を cumulusci.yml ファイルにコピーしないでください。ボタンを使用してコピーするとエラーになります。

メモ

メモ

Windows を使用している場合は、次のコマンドを実行すると「Error: [Errno 2] No such file or directory...」で始まるエラーが表示されることがあります。これは、CumulusCI で 260 文字を超えるファイルパスの処理に問題が発生したためです。このエラーが発生した場合は、ファイルシステム内で Food-Bank-Implementaion フォルダのレベルを 1 つまたは 2 つ上げてみてください。

  1. ターミナルウィンドウで、cci flow info dev_org と入力します。
  2. ターミナルウィンドウには、dependencies フローの下に 2 つの task (タスク) が表示されます。これらの 2 つの下に新しい連動関係を追加します。cumulusci.yml ファイルで、新しい sources セクションの下に行を追加し、カーソルがインデントされていないことを確認します。
  3. 次を入力し、dependencies フローの下に新しいフローを 3 番目のステップとして追加します。
flows:
    dependencies:
        steps:
            3:
                flow: npsp:config_managed

最後に、ファイルを保存して連動関係が追加されたことを確認します。

  1. ターミナルウィンドウで、cci flow info dev_org と入力します。

dependencies フローに 3 つのステップが表示されます。

Description: Deploy dependencies to prepare the org environment for the package metadata
1) task: update_dependencies [from current folder]
2) task: deploy_pre
3) flow: npsp:config_managed

スクラッチ組織で新しい連動関係を確認する

Food-Bank-Implementation プロジェクトのスクラッチ組織を作成して、この新しい連動関係の動作を確認してみましょう。CumulusCI でのスクラッチ組織の作成、NPSP と各 Food Bank パッケージのインストールと設定には、30 分ほどかかることがあります。

  1. GitHub Desktop で [Repository (リポジトリ)] → [Open in Visual Studio Code (Visual Studio Code で開く)] を選択して、リポジトリを開きます。
  2. cci flow run dev_org --org dev コマンドを入力します。
  3. フローが完了したら、cci org browser dev と入力して、スクラッチ組織をブラウザで開きます。
  4. [設定] の [インストール済みパッケージ] ページに移動し、Nonprofit Success Pack と Food Bank 管理パッケージがインストールされていることを確認します。

変更を GitHub コミットする

次のステップに進む前に、新しいプロジェクトが GitHub にコミットしていることを確認します。

  1. GitHub Desktop を開き、[Current Repository (現在のリポジトリ)] で Food-Bank-Implementation リポジトリが選択されていることを確認します。
  2. 画面左側に変更されたファイルのリストが表示されます。すべてのファイルが選択されている必要があります。
  3. 左下の [Summary (概要)] 項目に「Set up project」 (プロジェクトの設定) など、変更の短い概要を入力します。
  4. [Commit to main (メインにコミット)] をクリックします。

次に、作業を GitHub に公開します。次の単元で使用するために作業を公開する必要があります。

  1. 画面の右側で [Publish this repository to GitHub (このリポジトリを GitHub に公開する)] セクションを見つけ、[Publish repository (リポジトリを公開)] をクリックします。これはテストプロジェクトであるため、[Keep this code private (このコードを非公開に保つ)] を選択して他の GitHub ユーザに作業内容を表示しないようにすることもできます。
  2. [Publish Repository (リポジトリを公開)] をクリックします。

このように Maddie が CumulusCI プロジェクトを作成したので、CumulusCI は彼女のサンデー (組織) のほとんどの部分を構築できます。Maddie はブラウニー (NPSP) が Salesforce 組織の器 (プラットフォーム) に最初に追加され、その後で Food Bank アイスクリームフレーバー (Food Bank アプリケーション) が追加されるようにしました。次は、Hunger Northeast の組織をカスタマイズする特別なトッピングを追加します。

リソース