管理パッケージへの変換
学習の目的
- 管理パッケージを使用する利点を挙げる。
- 管理パッケージでエンドユーザーのコントリビューションをどう促進するかを説明する。
このモジュールでは、数千もの食料安全保障団体にメリットをもたらす可能性があるオープンソースアプリケーションの開発に取り組む Tasha、Maddie、Isabel のストーリーを引き続き見ていきます。Tasha は、Compa Food Security Network の Salesforce システム管理者です。彼女は Food Bank アプリケーションのプライマリコーディネーターです。Tasha の大学時代の友人 Maddie は、Hunger Northeast というフードバンクでロジスティクスを管理しており、アプリケーションが完成したらその恩恵を受ける数多くの人々の 1 人です。Isabel は Tasha の友人で、Advocate Partners の開発者兼コンサルタントです。
この 3 人のチームは、プロジェクトの GitHub リポジトリを作成し、スクラッチ組織で行ったカスタマイズ内容を捕捉し、ユーザー用のサンプルデータセットを作成しました。次のステップに進み、Salesforce を使用して食品安全保障団体にプロジェクトを公開しましょう。
管理パッケージの利点
Tasha は Food Bank オブジェクトとサンプルデータをすでに含む新しいスクラッチ組織を簡単に設定できることにかなり興奮しています。Maddie が Hunger Northeast の組織の設定を始められるように、GitHub リポジトリをすぐにでも共有したがっていますが、Isabel が、目標は単に 1 つアイスクリームサンデー (1 つの組織の構築方法) を共有することではないと Tasha に思い出させます。世界中のフードバンクのシステム管理者がそれぞれのニーズを満たす独自の組織サンデーを簡単に作成できるようにするために、Tasha と Maddie は他のフードバンクが構築するサンデーの基盤となるアイスクリームの新しいフレーバー (Salesforce の新しいフードバンク向けカスタマイズ) を開発できます。
Tasha はこれまでテストキッチンで新しいフレーバーの開発とテストに取り組んできました。この時点でレシピ (プロジェクトを作成するために彼女が実行した手順) をフードバンクコミュニティと共有できるのですが、Isabel は別の提案をします。アイスクリームを最初から作るよりも買ったほうが効率的なのと同様に、誰でもインストールして独自の組織サンデーの構築に使用できるようにフードバンク向けカスタマイズを管理パッケージとして配布するほうが効率的です。
まだ作業が必要ですが、このプロジェクトを管理パッケージとしてリリースすることには次のような利点があります。
- 分離: 管理パッケージに含まれているコンポーネントは独自の名前空間にインストールされます。名前空間は、他のパッケージのカスタマイズ (組織サンデーの他の層) と競合しないようにコンポーネントをグループ化して分離する方法です。パッケージ内のすべてのコンポーネントに一意の名前空間が追加されます。
- アップグレード: 管理パッケージは Salesforce のカスタマイズをインストールしてアップグレードする実証済みのメカニズムを提供します。プロジェクトを使用している他の組織は、カスタマイズが上書きされることを心配せずに新しいバージョンに簡単にアップグレードできます。
- 管理ルール: 管理パッケージは、リリース済みパッケージ内で変更可能または不可能なものに制約を課します。これはガードレールのような役目を果たし、パッケージ開発者がシステム管理者によるカスタマイズを破損させる変更をパッケージに加える可能性を低くします。
- コントリビューションの促進: 管理パッケージ内のメタデータを組織のエンドユーザーが編集することはできません。そのため、変更を次回のリリースに含めて、パッケージがインストールされているすべての組織で使用されるように、プロジェクトの GitHub リポジトリにあるパッケージに変更をコントリビューションする動機が生まれます。管理パッケージへの変更の適用により、ユーザーは組織サンデーを簡単にアップグレードすることができ、アプリケーション全体が連携して動作するようにします。
バージョン管理のベストプラクティスを使用しているので、Tasha はすでに自分の作業をパッケージ化して他のユーザーと共有する準備ができています。パッケージのメタデータは彼女の GitHub リポジトリに保存されています。次のステップはパッケージ化組織の作成です。その後、CumulusCI を使ってパッケージ化組織にパッケージメタデータをリリースします。これを次の単元で取り上げます。