組織からのコンポーネントの削除
リリースでのコンポーネントの削除
コンポーネントを削除するには、コンポーネントのリリースと同じ手順を使用します。ただし、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>40.0</version>
4</Package>1 つのリリースでのコンポーネントの追加と削除
destructiveChanges.xml で削除するコンポーネントを指定し、package.xml で追加または更新するコンポーネントを指定するリリースを実行できます。削除のみのリリースの実行の場合とプロセスは同じですが、追加または更新するコンポーネントが package.xml に含まれている点が異なります。
- 他のコンポーネントを追加または更新する前にコンポーネントを削除するには、destructiveChangesPre.xml という名前のマニフェストファイルを作成し、削除するコンポーネントを含めます。
- 他のコンポーネントを追加または更新した後にコンポーネントを削除するには、destructiveChangesPost.xml という名前のマニフェストファイルを作成し、削除するコンポーネントを含めます。
削除が処理されるタイミングの指定は、連動関係のあるコンポーネントを削除する場合に役立ちます。たとえば、カスタムオブジェクトが Apex クラスで参照されている場合、そのカスタムオブジェクトを削除する前に、Apex クラスを変更してそのオブジェクトの連動関係を削除する必要がありますこの場合、Apex クラスを更新して連動関係をクリアする 1 つのリリースを実行してから、destructiveChangesPost.xml を使用してカスタムオブジェクトを削除します。この例に使用される package.xml および destructiveChangesPost.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>40.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>