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

組織からのコンポーネントの削除

コンポ���ネントを削除するには、組織から削除するコンポーネントをリストする破壊的な変更のマニフェストファイルを使用し、deploy() コールを使用してリリースを実行します。コンポーネントの削除のみを行うリリースを実行したり、コンポーネントを削除および追加するリリースを実行したりできます。API バージョン 33.0 以降では、他のコンポーネントを追加または更新する前後に、削除するコンポーネントを指定できます。以前のバージョンの API では、削除と追加が同じリリースで指定されている場合、deploy() コールでまず削除が実行されます。

リリースでのコンポーネントの削除

コンポーネントを削除するには、コンポーネントのリリースと同じ手順を使用します。ただし、destructiveChanges.xml という名前の削除マニフェストファイルを含めて、このマニフェストで削除するコンポーネントもリストします。このマニフェストの形式は package.xml と同じです。ただし、ワイルドカードはサポートされていません。

削除対象の単一のカスタムオブジェクトを指定しているサンプルの destructiveChanges.xml ファイルを次に示します。

1<?xml version="1.0" encoding="UTF-8"?>
2<Package xmlns="http://soap.sforce.com/2006/04/metadata">
3    <types>
4        <members>MyCustomObject__c</members>
5        <name>CustomObject</name>
6    </types>
7</Package>

この破壊的な変更をリリースするには、リリースするコンポーネントがリストされておらず、API バージョンを含み、destructiveChanges.xml と同じディレクトリ内にある package.xml ファイルも必要です。

1<?xml version="1.0" encoding="UTF-8"?>
2<Package xmlns="http://soap.sforce.com/2006/04/metadata">
3    <version>33.0</version>
4</Package>
  • ごみ箱をスキップするには、purgeOnDelete オプションを true に設定します。
  • 組織に存在しない複数のコンポーネントがファイルに含まれる場合でも、指定した項目のうち組織に存在する項目は削除されます。

メモ

1 つのリリースでのコンポーネントの追加と削除

destructiveChanges.xml で削除するコンポーネントを指定し���package.xml で追加または更新するコンポーネントを指定するリリースを実行できます。削除のみのリリースの実行の場合とプロセスは同じですが、追加または更新するコンポーネントが package.xml に含まれている点が異なります。

デフォルトでは、コンポーネントの追加の前に削除が処理されます。API バージョン 33.0 以降では、コンポーネントを追加する前後に、削除するコンポーネントを指定できます。削除のみのリリースの実行の場合とプロセスは同じですが、削除マニフェストファイルの名前が異なります。
  • 他のコンポーネントを追加または更新するにコンポーネントを削除するには、destructiveChangesPre.xml という名前のマニフェストファイルを作成し、削除するコンポーネントを含めます。
  • 他のコンポーネントを追加または更新したにコンポーネントを削除するには、destructiveChangesPost.xml という名前のマニフェストファイルを作成し、削除するコンポーネントを含めます。

削除が処理されるタイミングの指定は、連動関係のあるコンポーネントを削除する場合に役立ちます。たとえば、カスタムオブジェクトが Apex クラスで参照されている場合、そのカスタムオブジェクトを削除する前に、Apex クラスを変更してそのオブジェクトの連動関係を削除する必要があります この場合、Apex クラスを更新して連動関係をクリアする 1 つのリリースを実行してから、destructiveChangesPost.xml を使用してカスタムオブジェクトを削除します。この例に使用される package.xml および destructiveChangesPost.xml マニフェストのサンプルを次に示します。

更新するクラスを指定するサンプル package.xml

1<?xml version="1.0" encoding="UTF-8"?>
2<Package xmlns="http://soap.sforce.com/2006/04/metadata">
3    <types>
4        <members>SampleClass</members>
5        <name>ApexClass</name>
6    </types>
7    <version>33.0</version>
8</Package>

クラス更新後に削除するカスタムオブジェクトを指定するサンプル destructiveChangesPost.xml

1<?xml version="1.0" encoding="UTF-8"?>
2<Package xmlns="http://soap.sforce.com/2006/04/metadata">
3    <types>
4        <members>MyCustomObject__c</members>
5        <name>CustomObject</name>
6    </types>
7</Package>

リリースで使用する API バージョンは、package.xml で指定された API バージョンです。

メモ