組織からのファイルの削除
package.xml ファイルは、取得またはリリースするすべてのコンポーネントが含まれるプロジェクトマニフェストです。package.xml は、コンポーネントの追加には使用できますが、削除には不十分です。ファイルを削除するには、destructiveChanges.xml という削除マニフェストを作成します。削除マニフェストの形式は package.xml と同じですが、ワイルドカードはサポートされていません。
リリースでのコンポーネントの削除
コンポーネントを削除するには、コンポーネントのリリースと同じ手順を使用します。ただし、destructiveChanges.xml という名前の削除マニフェストファイルを含めて、このマニフェストで削除するコンポーネントもリストします。このマニフェストの形式は package.xml と同じです。ただし、ワイルドカードはサポートされていません。
削除対象の単一のカスタムオブジェクトを指定しているサンプルの destructiveChanges.xml ファイルを次に示します。
この破壊的な変更をリリースするには、リリースするコンポーネントがリストされておらず、API バージョンを含み、destructiveChanges.xml と同じディレクトリ内にある package.xml ファイルも必要です。
1 つのリリースでのコンポーネントの追加と削除
destructiveChanges.xml で削除するコンポーネントを指定し、package.xml で追加または更新するコンポーネントを指定するリリースを実行できます。削除のみのリリースの実行の場合とプロセスは同じですが、追加または更新するコンポーネントが package.xml に含まれている点が異なります。
- 他のコンポーネントを追加または更新する前にコンポーネントを削除するには、destructiveChangesPre.xml という名前のマニフェストファイルを作成し、削除するコンポーネントを含めます。
- 他のコンポーネントを追加または更新した後にコンポーネントを削除するには、destructiveChangesPost.xml という名前のマニフェストファイルを作成し、削除するコンポーネントを含めます。
削除が処理されるタイミングの指定は、連動関係のあるコンポーネントを削除する場合に役立ちます。たとえば、カスタムオブジェクトが Apex クラスで参照されている場合、そのカスタムオブジェクトを削除する前に、Apex クラスを変更してそのオブジェクトの連動関係を削除する必要があります この場合、Apex クラスを更新して連動関係をクリアする 1 つのリリースを実行してから、destructiveChangesPost.xml を使用してカ���タムオブジェクトを削除します。この例に使用される package.xml および destructiveChangesPost.xml マニフェストのサンプルを次に示します。
クラス更新後に削除するカスタムオブジェクトを指定するサンプル destructiveChangesPost.xml