コレクションの更新操作

updateCollections操作では、コレクションの構成を更新できます。

次の制限と動作に従って、コレクションの構成を更新できます。
  • コレクション・キー(collectionKey属性)は変更できません。Endeca Serverで更新するコレクションを識別できるように、リクエストでコレクション・キーを指定する必要があることに注意してください。
  • 表示名(displayName属性)は変更できます。リクエストで使用しなかった場合は、前の値が維持されます。
  • コレクションの一意のプロパティ・キー(uniquePropertyKey属性)は変更できません。リクエストではコレクションの一意のプロパティ・キーを指定する必要がないことに注意してください。
  • 説明(<description>要素)は変更できます。リクエストで使用しなかった場合は、前の値が維持されます。
  • この操作ではすべてのメタデータ・プロパティが最初に削除された後、(<property key>要素を介して)指定したメタデータ・プロパティが追加されます。そのため、変更不要のメタデータ・プロパティを維持するには、それらをリクエストで再指定する必要があります。

この操作では新しいコレクションを作成できないことに注意してください(既存のコレクションのみを更新できます)。

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

updateCollectionsの構文

updateCollectionsの構文は次のとおりです。
<updateCollections>
    <outerTransactionId>?</outerTransactionId>
    <language>en</language>
   <collectionUpdate collectionKey="?" displayName="?" uniquePropertyKey="?">
      <description>?</description>
      <property key="?">?</property>
   </collectionUpdate>
</updateCollections>

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

コレクションの属性の意味は次のとおりです。
collectionUpdateの属性 説明
collectionKey 必須です。更新するコレクションの名前。コレクション・キーの名前は変更できないことに注意してください。
displayName オプションです。この属性を使用すると、指定した値に表示名が変更されます。省略すると、最後の割当てが維持されます。
uniquePropertyKey オプションです。コレクションの一意のプロパティ・キーの名前。この属性を省略するか空白のまま残すと、最後の割当てが維持されます。一意のプロパティ・キーの名前は変更できないことに注意してください。
description オプションです。この属性を使用すると、指定した値にコレクションの説明が変更されます。省略すると、最後の割当てが維持されます。
property key オプションです。この属性は次のように使用できます。
  • property keyを使用しなかった場合は、すべての既存のメタデータ・プロパティがコレクション・レコードから削除されます。
  • property keyを使用した場合は、そのメタデータ・プロパティがコレクション・レコードに追加されます。

updateCollectionsの例

次のupdateCollections soapUIの例では、SalesRecsという名前の既存のコレクションを更新します。
<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:updateCollections>
         <ns:language>en</ns:language>
         <ns:collectionUpdate collectionKey="SalesRecs" displayName="Sales Order Records">
            <ns:description>All sales order records for the company</ns:description>
            <ns:property key="Locale">US East Coast</ns:property>
         </ns:collectionUpdate>
      </ns:updateCollections>
   </soapenv:Body>
</soapenv:Envelope>

この例では、コレクションの表示名と説明が更新され、Localeメタデータ・プロパティが追加されます。リクエストでコレクションのuniquePropertyKeyパラメータが使用されていないことに注意してください。

updateCollectionsのレスポンス

次の例のように、updateCollectionsResponseメッセージのnumCollectionsUpdated要素に正常に更新されたコレクションの数が示されます。
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
   <env:Header/>
   <env:Body>
      <ns2:updateCollectionsResponse xmlns:ns2="http://www.endeca.com/endeca-server/sconfig/3/0">
         <ns2:numCollectionsUpdated>2</ns2:numCollectionsUpdated>
      </ns2:updateCollectionsResponse>
   </env:Body>
</env:Envelope>

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