第一世代管理パッケージからのコンポーネントの削除
「管理-リリース済み」第一世代管理パッケージをアップロードした後、コンポーネントを組織から削除する必要がある場合があります。コンポーネントの削除に使用可能なオプションは、コンポーネントを削除しようとしている状況によって異なります。- パッケージに追加したコンポーネントを削除できない。
- コンポーネントは削除できるが、復元は [削除されたパッケージコンポーネント] ページからのみ可能。
- コンポーネントを削除でき、復元は [削除されたパッケージコンポーネント] ページまたはごみ箱から可能。
- パッケージ化組織でコンポーネントの削除を有効にするには、パートナーコミュニティでケースを登録します。
-
管理パッケージコンポーネントの動作は公開 Apex クラスや公開 Visualforce コンポーネントの動作とは異なるため、2 段階のプロセスを使用して管理パッケージから Visualforce ページ、グローバル Visualforce コンポーネント、グローバル Lightning コンポーネントを削除します。登録者組織でパッケージをアップグレードする場合、削除済みの Visualforce ページ、グローバル Visualforce コンポーネント、または Lightning コンポーネントは削除されません。組織のシステム管理者は [削除] ボタンまたはリンクを使用できますが、多くの組織では廃止されたページやコンポーネントを引き続き使用しています。他方、公開 Apex クラスおよび公開 Visualforce コンポーネントは、アップグレードプロセス時に削除されます。ページやコンポーネントの削除時にこの 2 段階の手順を行わないと、後で公開クラスおよびコンポーネントの削除によって登録者の廃止されたページおよびコンポーネントが破損した場合に Salesforce による警告を受信できません。
次の種類のコンポーネントを削除する場合、以下の順序で削除を実行します。
- 公開 Apex クラスまたは公開 Visualforce コンポーネントを参照または使用する Visualforce ページまたはグローバル Visualforce コンポーネント。
- アクセス権が global に設定されている Aura コンポーネント
- isExposed が true に設定されている Lightning Web コンポーネント
- フェーズ 1: 参照を削除する。
- 削除するグローバルコンポーネントを編集します。
- Visualforce の場合: Visualforce ページまたはグローバル Visualforce コンポーネントを編集して、公開 Apex クラスまたは公開 Visualforce コンポーネントへの参照をすべて削除します。
- Lightning コンポーネントの場合: グローバル Lightning コンポーネントを編集して、他の Lightning コンポーネントへの参照をすべて削除します。
- パッケージの新しいバージョンをアップロードします。
- フェーズ 1 のアップグレードを登録者に転送します。
- 削除するグローバルコンポーネントを編集します。
- フェーズ 2: 廃止されたページまたはコンポーネントを削除する。
- Visualforce ページ、グローバル Visualforce コンポーネント、またはグローバル Lightning コンポーネントを削除します。
- 必要に応じて、関連する他のコンポーネントやクラスを削除します。
- パッケージの新しいバージョンをアップロードします。
- フェーズ 2 のアップグレードを登録者に転送します。
- カスタムボタンまたはカスタムリンク
- カスタムコンソール
- カスタム項目
- カスタムオブジェクト
- カスタム設定
- カスタムタブ
- 項目セット
- Lightning コンポーネント (Aura コンポーネントと Lightning Web コンポーネント)
- 権限セット
- レコードのタイプ
- Sコントロール
- 静的リソース
- 入力規則
- Visualforce のコンポーネント
- Visualforce ページ
お客様が特定のアクションを実行しなければ、登録者組織のデータやメタデータが削除されることはありません。登録者が新しいパッケージバージョンにアップグレードした場合、削除されたコンポーネントは引き続き登録者の組織で使用できます。そのコンポーネントは、[パッケージの詳細] ページの [未使用のコンポーネント] セクションに表示されます。このセクションにより、登録者は、使用されていないコンポーネントを明示的に削除する前に、データをエクスポートしたり、これらのコンポーネントを伴うカスタムインテグレーションを変更したりすることができます。たとえば、顧客はカスタムオブジェクトまたはカスタム項目を削除する前に、[設定] から、[クイック検索] ボックスに「データのエクスポート」と入力し、[データのエクスポート] を選択すると、データレコードを保持できます。
- コンポーネントが、ワークフロールール、入力規則、Apex クラスなどの他のメタデータで参照されている場合、そのコンポーネントは削除できません。
- Apex 共有の理由、Apex 共有再適用、関連ルックアップ検索条件、コンパクトレイアウト、アクションのいずれかが含まれる場合、カスタムオブジェクトは削除できません。
- 同じパッケージ内のカスタムレポートタイプで参照されているカスタム項目は削除しないことをお勧めします。このような削除を行うと、アップグレードされたパッケージをインストールするときにエラーが発生します。
- 管理パッケージの一部であるカスタムレポートタイプでバケット化やグループ化に使用されている項目を削除すると、エラーメッセージが表示されます。
- パッケージのコンポーネントである接続アプリケーションを削除した場合、そのアプリケーションは、パッケージが新しいバージョンで更新されるまで、引き続き使用できます。ただし、接続アプリケーションそのものを削除すると、完全に削除されます。削除された接続アプリケーションが含まれるパッケージのバージョンは、無効化されてインストールできません。接続アプリケーションがコンポーネントとして含まれていないパッケージのバージョンを更新できます。Salesforce が配信した接続アプリケーション (Salesforce アプリケーションなど) は削除しないでください。
管理コンポーネントは、ユーザインターフェースで宣言して削除することも、メタデータ API を使用してプログラムで削除することも可能です。メタデータ API を使用する場合は、destructiveChanges.xml マニフェストファイルに削除するコンポーネントを指定して、標準の deploy() コールを使用します。管理対象外のコンポーネントを削除する場合も処理は同じです。詳細は、『メタデータ API 開発者ガイド』を参照してください。