コレクションの削除操作

コレクションを削除する2つの操作があります。

2つの削除操作は次のとおりです。
  • deleteCollectionsは、コレクション・キーで指定した1つ以上のコレクションを削除します。
  • deleteAllCollectionsは、コレクション・キーを指定せずにすべてのコレクションをまとめて削除します。

コレクションの削除にはソフトウェアの前提要件がないことに注意してください(つまり、コレクションはいつでも削除できます)。ただし、「コレクションとそのレコードの削除」で説明するように、最初にコレクションのレコードを削除してからコレクション自体を削除することをお薦めします。

特定のコレクションの削除

deleteCollections操作では、コレクション・キーで指定した1つ以上のコレクションを削除できます。構文は次のとおりです。
<deleteCollections>
    <outerTransactionId>?</outerTransactionId>
    <language>en</language>
    <collectionKey collectionKey="?"/>
</deleteCollections>

collectionKey要素は、削除するコレクションのコレクション・キーを指定します(コレクション名では大文字と小文字が区別されることに注意してください)。outerTransactionId属性とlanguage属性はオプションです。

deleteCollections操作では、同じリクエストで複数のコレクションを削除できます。そのためには、<deleteCollections>構造内で複数のcollectionKey要素を使用します。ただし、複数のコレクションを削除するdeleteCollections操作はアトミックであるため、操作が成功する(つまり、すべてのコレクションが正常に削除される)か、操作全体が失敗する(つまり、少なくとも1つのコレクションの削除に失敗した結果、どのコレクションも削除されない)かのいずれかになることに注意してください。

次のsoapUIの例では、2つのコレクションが削除されます。
<soapenv:Envelope 
   xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
   xmlns:ns="http://www.endeca.com/endeca-server/sconfig/3/0">
   <soapenv:Header/>
   <soapenv:Body>
      <ns:deleteCollections>
         <ns:language>en</ns:language>
         <ns:collectionKey collectionKey="EmpRecs"/>
         <ns:collectionKey collectionKey="ArchivedRecs"/>
      </ns:deleteCollections>
   </soapenv:Body>
</soapenv:Envelope>
リクエストが成功すると、次の例のように、deleteCollectionsResponseメッセージのnumCollectionsDeleted要素に正常に削除されたコレクションの数が示されます。
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
   <env:Header/>
   <env:Body>
      <ns2:deleteCollectionsResponse xmlns:ns2="http://www.endeca.com/endeca-server/sconfig/3/0">
         <ns2:numCollectionsDeleted>2</ns2:numCollectionsDeleted>
      </ns2:deleteCollectionsResponse>
   </env:Body>
</env:Envelope>

この例では、2つのコレクションが削除されました。deleteCollections操作が失敗した場合は、numCollectionsDeleted要素の値が0(ゼロ)になります。

すべてのコレクションの一括削除

deleteAllCollections操作では、コレクション・キーを指定せずにすべての既存のコレクションをまとめて削除できます。この操作の構文は次のとおりです。
<deleteAllCollections>
   <outerTransactionId>?</outerTransactionId>
   <language>en</language>
</deleteAllCollections>

outerTransactionId属性とlanguage属性はオプションです。

リクエストが成功すると、次の例のように、deleteAllCollectionsResponseメッセージのnumCollectionsDeleted要素に正常に削除されたコレクションの数が示されます。
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
   <env:Header/>
   <env:Body>
      <ns2:deleteAllCollectionsResponse xmlns:ns2="http://www.endeca.com/endeca-server/sconfig/3/0">
         <ns2:numCollectionsDeleted>3</ns2:numCollectionsDeleted>
      </ns2:deleteAllCollectionsResponse>
   </env:Body>
</env:Envelope>

この例では、3つのコレクションが削除されました。deleteAllCollections操作が失敗した場合は、numCollectionsDeleted要素の値が0(ゼロ)になります。

依存エンティティのあるコレクションの削除

コレクションに依存しているエンティティがあるコレクションを削除すると、そのエンティティのisValid属性がfalseに設定されます。この場合は、削除したコレクションに対する依存関係を削除するためにエンティティの構成を更新する必要があります。