Skip to main content

第二世代管理パッケージ化について学ぶ

学習の目的

この単元を完了すると、次のことができるようになります。

  • 管理パッケージ化とは何のために使用されるかを説明する。
  • 第二世代管理パッケージに含めることができるメタデータの種類を挙げる。
  • 名前空間とは何か、何に使用されるかを説明する。

第二世代管理パッケージ化が重要な理由

ビジネスアプリケーションを開発して Salesforce のお客様に販売しようと考えていますか? 管理パッケージは、Salesforce パートナーがビジネスアプリケーションを作成し、AppExchange からお客様に配布するために使用するツールです。管理パッケージで提供される一連の機能を使用して、アプリケーションの配布、ライセンスやパイロット機能の提供、トラブルシューティング、収益化を行うことができます。 

Salesforce には第一世代管理パッケージ化 (管理 1GP) と第二世代管理パッケージ化 (管理 2GP) があります。今後はこのモジュールで説明する管理 2GP の使用を推奨します。 

メモ

社内用または特定のお客様のプロジェクト用にパッケージを作成する場合は、ロック解除済みパッケージを使用してください。 

Salesforce では、管理 2GP が新しい管理パッケージを開発するための最良のアプローチであると自負しています。管理 2GP の各側面について説明していきますが、利点を要約すると次のようになります。 

管理 2GP は、ソース駆動型で自動化に適した最新の開発モデルに基づいています。管理 2GP を使用してソース管理システムと連携させ、パッケージ間でカスタム Apex コードをより有効に活用し、組み立て可能な小さなモジュール式パッケージをビルドできます。また、サブチームによる並行開発をサポートし、パッケージ間の連動関係を明示的に宣言する機能も提供されています。管理 2GP を使用すると、Salesforce CLI を使用してすべてのパッケージ化操作を実行したり、スクリプトを使用して自動化したりできます。 

これまで管理 1GP を使用してパッケージを作成していた方に留意していただきたいのは、管理 2GP は第一世代管理パッケージの単なるバージョン 2.0 ということではなく、まったく異なる改善されたパッケージ開発アプローチであり、アプリケーションとメタデータを開発して管理する新しい方法であるということです。Salesforce での今後のアプリケーション開発は管理 2GP が主流となっていきます。

このまま読み進め、このテクノロジーとその利点についてさらに理解を深めてください。 

Salesforce でのパッケージ開発

パッケージ開発は Salesforce に限ったことではありません。Java、NPM、または類似のソフトウェア開発ツールに精通している方は、すでにパッケージ開発の経験があることと思います。

Salesforce では、パッケージとは Salesforce のお客様に販売して配布するアプリケーションのコンテナを指します。パッケージを作成し、それにアプリケーションを構成する機能、カスタマイズ、スキーマを追加します。 

パッケージ化できるメタデータコンポーネントの例として、次のようなものがあります。 

  • Apex クラスとトリガー
  • 標準オブジェクトのカスタム項目
  • カスタムメタデータ型
  • カスタムオブジェクト
  • フロー
  • Lightning ページ
  • ページレイアウト

パッケージには、各種のメタデータコンポーネントを多数含めることができます。または Visualforce ページのような 1 つのコンポーネントをパッケージ化することもできます。管理 2GP に含めることができるメタデータの完全なリストについては、Metadata Coverage (メタデータカバー率) レポートを参照してください。

完成したアプリケーションをパッケージ化し、パッケージ化されたアプリケーションのセキュリティレビューを受けた後、マーケティングと配布のために AppExchange にリストします。パッケージはそこから任意の Salesforce 組織にインストールできます。お客様にとって、Salesforce 組織へのパッケージのインストールは、携帯電話へのアプリケーションのインストールと概念的に類似しています。お客様の組織にアップグレードを転送して、お客様がパッケージの最新バージョンを使用するようにしてください。

パッケージバージョンとパッケージの違い 

アプリケーション (つまりパッケージ) は徐々に発展していきます。パッケージ内のメタデータを変更、追加、または削除するときは必ず、新しいパッケージバージョンを作成します。各パッケージバージョンにはバージョン番号 (1.3.0.2 など) があります。各パッケージバージョンは不変のアーティファクトで、特定時点のメタデータの静的なスナップショットです。 

パッケージが継続的に発展している間は、パッケージがパッケージバージョンという形式の安定した状態のときに、そのスナップショットを取得します。厳密に言えば、「パッケージをインストールする」とは、実際には特定のパッケージバージョンをインストールすることを意味します。

新しいパッケージバージョンを作成してリリースするときには、お客様自らが最新のパッケージバージョンにアップグレードするか、お客様にアップグレードを転送することができます。こうしてアプリケーションの機能を絶えず発展させていくことにより、アプリケーションのファンとなるお客様が増えていきます。

名前空間とは何か、なぜ必要なのか?

たとえば、パッケージに追加する予定の EnhancedAccount__c というカスタムオブジェクトを開発したとします。ところが、Get Cloudy Partners という別の Salesforce パートナーも同じカスタムオブジェクトを開発していました。お客様があなたのパッケージと Get Cloudy のパッケージの両方をインストールしたらどうなるでしょうか? 心配ありません。名前空間があります。 

EnhancedAccount__c オブジェクトを FinanceX 名前空間に関連付けられたパッケージにオブジェクトを追加すると、API 参照名は FinanceX__EnhancedAccount__c になります。このパッケージに追加するすべてのコンポーネントには、コンポーネントの API 参照名に FinanceX 名前空間のプレフィックスが付けられます。

名前空間は英数字で構成される識別子です。名前空間を作成して登録したら、その名前空間を 1 つ以上のパッケージに関連付けます。これでパッケージとそのコンテンツが、お客様の組織の他のパッケージやコンポーネントと区別されました。選択する名前空間は Salesforce システム内で一意であることが保証されています。そのため、名前空間は 2 つとして同じものはありません。

管理 1GP パッケージを開発している方は、すでに名前空間の使用に慣れていると思いますが、管理 2GP では名前空間の操作に大幅な変更があったため、このまま読み続けてください。 

管理 2GP では、同じ名前空間を複数の 2GP に割り当てることができます。パッケージ間で名前空間を共有すると、同じ名前空間のパッケージ間でコードを簡単に共有できます。このトピックについては、単元 2 でもう少し詳しく説明します。

メモ

1 つの名前空間を複数の管理 2GP で使用することができますが、各管理 2GP パッケージは 1 つの名前空間にしか関連付けられません。 

パッケージの作成を開始する前に、名前空間を作成して登録しておきます。パッケージを定義して作成するときに、パッケージに使用する登録済みの名前空間を指定します。 

メモ

パッケージの作成後に、パッケージに関連付けた名前空間を変更することはできません。

名前空間についてと、管理 2GP に含めることができるメタデータ型について説明しました。次は管理 2GP パッケージ開発の主な利点について詳しく説明します。 

リソース

Salesforce ヘルプで Trailhead のフィードバックを共有してください。

Trailhead についての感想をお聞かせください。[Salesforce ヘルプ] サイトから新しいフィードバックフォームにいつでもアクセスできるようになりました。

詳細はこちら フィードバックの共有に進む