この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

第一世代管理パッケージからのコンポーネントの削除

第一世代管理パッケージで不要になった Apex クラスなどのメタデータコンポーネントを削除します。

管理パッケージが管理-リリース済み状態に昇格された後は、特定のコンポーネントのみを削除できます。特定のコンポーネントを削除できるかどうかを確認するには、『Salesforce DX 開発者ガイド』の「管理パッケージで使用可能なコンポーネント」を参照してください。

登録者組織でのコンポーネント削除の影響

パッケージのアップグレード時、登録者組織から物理削除されるのは、特定の種類のコンポーネントのみです。パッケージバージョンで削除されたメタデータコンポーネントの��部分は、パッケージのアップグレード後も登録者組織に残り、廃止としてマークされます。登録者組織でパッケージがアップグレードされる場合は、設定変更履歴により、どのコンポーネントが削除されたかがログに記録されます。廃止となったメタデータを削除できるのは、登録者組織のシステム管理者です。

パッケージ化組織でコンポーネントの削除を有効にするには、Salesforce パートナーコミュニティでサポートケースを登録します。商品に��、「Platform (プラットフォーム)」と指定します。トピックには、「AppExchange & Managed Packages (AppExchange と管理パッケージ)」と指定します。

コンポーネントを削除する前に、削除予定のメタデータに対する依存関係がないことを確認します。パッケージ内の任意のコンポーネントが、削除するコンポーネントに対して依存関係を持っている場合、または削除するコンポーネントを参照している場合、パッケージバージョンの作成操作は失敗します。コンポーネントまたは項目を削除した後は、削除したコンポーネントにアクセスすることも、削除したコンポーネントに依存するカスタマイズにアクセスすることもできません。

コンポーネントを削除すると、そのコンポーネントに存在するデータも完全に削除されます。追跡された履歴データも削除されて、割り当てルールやエスカレーションルールなど、そのコンポーネントに依存するインテグレーションが変更されます。管理パッケージのコンポーネントを削除すると、復元することも、同じ名前で別のコンポーネントを作成することもできなくなります。

管理パッケージ内では、項目の API 参照名が一意である必要があり、コンポーネントを削除した後も API 参照名を再利用することはできません。パッケージのインストールおよびアップグレード時に、この制限によって競合を回避できます。

メモ

お客様が特定のアクションを実行しなければ、登録者組織のデータやメタデータが削除されることはありません。登録者が新しいパッケージバージョンにアップグレードした場合、削除されたコンポーネントは引き続き登録者の組織で使用できます。そのコンポーネントは、[パッケージの詳細] ページの [未使用のコンポーネント] セクションに表示されます。このセクションにより、登録者は、使用されていないコンポーネントを明示的に削除する前に、データをエクスポートしたり、これらのコンポーネントを伴うカスタムインテグレーションを変更したりすることができます。たとえば、顧客はカスタムオブジェクトまたはカスタム項目を削除する前に、[設定] から、[クイック検索] ボックスに「データのエクスポート」と入力し、[データのエクスポート] を選択すると、データレコードを保持できます。

コンポーネントの削除によって予想される影響について顧客に指導します。アップグレードしたパッケージのリリースノートに、削除したすべてのカスタムコンポーネントをリストし、必要なアクションを指定することを検討します。

メモ

管理コンポーネントを削除する場合は、次の制限事項が適用されます。
  • コンポーネントが、ワークフロールール、入力規則、または Apex クラスなどの他のメタデータで参照されている場合、そのコンポーネントは削除できません。
  • Apex 共有の理由、Apex 共有再適用、関連ルックアップ検索条件、コンパクトレイアウト、またはアクションが含まれる場合、カスタムオブジェクトは削除できません。
  • 同じパッケージ内のカスタムレポートタイプで参照されているカスタム項目は削除しないことをお勧めします。このような削除を行うと、アップグレードされたパッケージをインストールするときにエラーが発生します。
  • 管理パッケージの一部であるカスタムレポートタイプでバケット化やグループ化に使用されている項目を削除すると、エラーメッセージが表示されます。
  • パッケージのコンポーネントである接続アプリケーションを削除した場合、そのアプリケーションは、パッケージが新しいバージョンで更新されるまで、引き続き使用できます。ただし、接続アプリケーションそのものを削除すると、完全に削除されます。削除された接続アプリケーションが含まれるパッケージのバージョンは、無効化されてインストールできません。接続アプリケーションがコンポーネントとして含まれていないパッケージのバージョンを更新できます。Salesforce が配信した接続アプリケーション (Salesforce アプリケーションなど) は削除しないでください。

管理コンポーネントは、ユーザインターフェースで宣言して削除することも、メタデータ API を使用してプログラムで削除することも可能です。メタデータ API を使用する場合は、destructiveChanges.xml マニフェストファイルに削除するコンポーネントを指定して、標準の deploy() コールを使用します。管理対象外のコンポーネントを削除する場合も処理は同じです。詳細は、メタデータ API 開発者ガイドを参照してください。

公開 Apex クラスと公開 Visualforce コンポーネントの削除

管理パッケージコンポーネントの動作は公開 Apex クラスや公開 Visualforce コンポーネントとは異なるため、2 段階のプロセスを使用して管理パッケージから Visualforce ページ、グローバル Visualforce コンポーネント、グローバル Lightning コンポーネントを削除します。登録者組織でパッケージをアップグレードする場合、削除済みの Visualforce ページ、グローバル Visualforce コンポーネント、および Lightning コンポーネントは削除されません。組織のシステム管理者は [削除] ボタンまたはリンクを使用できますが、多くの組織では廃止されたページやコンポーネントを引き続き使用しています。他方、公開 Apex クラスおよび公開 Visualforce コンポーネントは、アップグレードプロセス時に削除されます。ページやコンポーネントの削除時にこの 2 段階の手順を行わないと、後で公開クラスおよびコンポーネントの削除によって登録者の廃止されたページおよびコンポーネントが破損した場合に Salesforce による警告を受信できません。

次の種類のコンポーネントを削除する場合は、下記の 2 段階のプロセスを順番に実行します。

    • 公開 Apex クラスまたは公開 Visualforce コンポーネントを参照または使用する Visualforce ページまたはグローバル Visualforce コンポーネント
    • アクセス権が global に設定されている Aura コンポーネント
    • isExposedtrue に設定されている Lightning Web コンポーネント
    1. フェーズ 1: 参照を削除する。
      1. 削除するグローバルコンポーネントを編集します。
        • Visualforce の場合、Visualforce ページまたはグローバル Visualforce コンポーネントを編集して、公開 Apex クラスまたは公開 Visualforce コンポーネントへの参照をすべて削除します。
        • Lightning コンポーネントの場合、グローバル Lightning コンポーネントを編集して、他の Lightning コンポーネントへの参照をすべて削除します。
      2. パッケージの新しいバージョンをアップロードします。
      3. フェーズ 1 のアップグレードを登録者に転送します。
    2. フェーズ 2: 廃止されたページまたはコンポーネントを削除する。
      1. Visualforce ページ、グローバル Visualforce コンポーネント、またはグローバル Lightning コンポーネントを削除します。
      2. 必要に応じて、関連する他のコンポーネントやクラスを削除します。
      3. パッケージの新しいバージョンをアップロードします。
      4. フェーズ 2 のアップグレードを登録者に転送します。