第二世代管理パッケージからのメタデータコンポーネントの削除
登録者組織でのコンポーネント削除の影響
パッケージのアップグレード時、登録者組織から物理削除されるのは、特定の種類のコンポーネントのみです。パッケージバー���ョンで削除されたメタデータコンポーネントの大部分は、パッケージのアップグレード後も登録者組織に残り、廃止としてマークされます。登録者組織でパッケージがアップグレードされる場合は、設定変更履歴により、どのコンポーネントが削除されたかがログに記録されます。廃止となったメタデータを削除できるのは、登録者組織のシステム管理者です。
第二世代管理パッケージから削除できるメタデータコンポーネントを次に示します。
| メタデータコンポーネント | パッケージをアップグレードしたときのメタデータコンポーネントに対する処理 |
|---|---|
| 分析スナップショット | 廃止としてマーク |
| Apex クラス (グローバル Apex クラスは除く) | 物理削除 |
| Apex トリガ | 物理削除 |
| Aura 定義バンドル | 廃止としてマーク |
| コンパクトレイアウト | 廃止としてマーク |
| カスタムアプリケーション | 廃止としてマーク |
| カスタムアプリケーションコンポーネント | 廃止としてマーク |
| カスタム項目 | 廃止としてマーク |
| カスタム表示ラベル | 廃止としてマーク |
| カスタムオブジェクト | 廃止としてマーク |
| カスタム権限 | 廃止としてマーク |
| カスタムタブ | 廃止としてマーク |
| ダッシュボード | 廃止としてマーク |
| ダッシュボードフォルダ | 廃止としてマーク |
| ドキュメント | 廃止としてマーク |
| 項目セット | 廃止としてマーク |
| FlexiPage | 廃止としてマーク |
| Layout | 廃止としてマーク |
| リストビュー | 廃止としてマーク |
| 権限セット | 廃止としてマーク |
| プロファイル | 廃止としてマーク |
| クイックアクション | 廃止としてマーク |
| レコードタイプ | 廃止としてマーク |
| リモートサイトの設定 | 廃止としてマーク |
| Report | 廃止としてマーク |
| レポートフォルダ | 廃止としてマーク |
| レポートタイプ | 廃止としてマーク |
| 共有の理由 | 廃止としてマーク |
| 静的リソース | 廃止としてマーク |
| 入力規則 | 廃止としてマーク |
| Visualforce コンポーネント (グローバルコンポーネントは除く) | 物理削除 |
| Visualforce ページ | 廃止としてマーク |
| WebLink (カスタムボタンまたはカスタムリンク) | 廃止としてマーク |
メタデータコンポーネントの削除方法
この機能へのアクセス権を要求するには、Salesforce パートナーコミュニティでケースを登録します。
要求が承認されたら、Salesforce DX プロジェクトからメタデータコンポーネントのソースファイルを削除して、パッケージバージョンを作成します。新しいパッケージバージョンをテストし、削除したメタデータがなくても正常に機能していることを確認します。
第二世代管理パッケージからメタデータコンポーネントを削除する前に
第二世代管理パッケージからメタデータコンポーネントを正常に削除するには、次の点に留意してください。
- この機能へのアクセスをまだ要求していない場合は、要求します。
- 削除できるメタデータコンポーネントのリストをよく理解します。
- 削除予定のメタデータに対する依存関係がないことを確認します。パッケージ内の任意のコンポーネントが、削除するコンポーネントに対して依存関係を持っている場合、または削除するコンポーネントを参照している場合、パッケージバージョンの作成操作は失敗します。コンポーネントを削除した後は、削除したコンポーネントに依存するカスタマイズにアクセスできません。
パッケージ内のメタデータへの依存関係の削除
削除予定のメタデータコンポーネントに対して依存関係がある場合は、最初に依存関係を削除してから、メタデータコンポーネントを削除します。
たとえば、ページレイアウトで参照されるカスタム項目を削除する前に、ページレイアウトを編集して、カスタム項目への参照を削除します。次に、ソースファイルからカスタム項目を削除して、パッケージバージョンを作成します。
シナリオによっては、コンポーネントを削除するために 2 段階の方法が必要なものがあります。たとえば、Visualforce コンポーネントを含む Visualforce ページを削除して、Lightning コンポーネントを含む Lightning ページに置き換えることを計画しているとします。Visualforce ページと Visualforce コンポーネントの両方を 1 回のアップグレードで削除すると、登録者に対して問題が発生する場合があります。これらの問題が発生するのは、パッケージのアップグレード時に Visualforce コンポーネントが削除され、Visualforce ページが廃止となるためです。
この例で、登録者に対して問題が発生しないようにするには、Visualforce コンポーネントへの参照を Visualforce ページから削除し、パッケージバージョンを作成して、アップグレードをプッシュします。次に、パッケージバージョンから Visualforce ページを削除して、このアップグレードを登録者にプッシュします。
他のパッケージにある依存関係の削除
メタデータコンポーネントを削除するにあたり、最初にメタデータへのすべての参照を削除します。これには、そのメタデータコンポーネントに依存する他のパッケージ内の参照も含まれます。たとえば、公開 Apex クラスを削除する場合は、他のパッケージが Apex @namespaceAccessible アノテーションを使用してそのクラスを参照していないことを確認します。
このセクションでは、PackageA は、メタデータコンポーネントを削除する予定のパッケージを参照しています。PackageB は、PackageA から削除されるメタデータに依存する任意のパッケージです。PackageB のメタデータコンポーネントまたは Apex クラスへの参照がある場合は、次の手順を実行します。
- メタデータコンポーネントへの参照を PackageB から削除します。
- PackageB のバージョンを作成します。
- PackageB の新しいバージョンを登録者にプッシュします。
- PackageA から削除予定のメタデータへの参照が他のパッケージに含まれている場合は、これらの手順を繰り返します。
メタデータコンポーネントへの参照をすべて削除したら、メタデータコンポーネントのソースファイルを PackageA の Salesforce DX プロジェクトから削除します。次に PackageA のバージョンを作成します。このアップグレードを登録者にプッシュする前に、新しいパッケージバージョンをテストして、正常に機能することを確認します。