レコード割当ての削除

標準属性および管理値割当てを削除して、実行中のデータ・ドメインのレコードを更新できます。

ingestChangesupdateRecordsサブ操作には、データ・ドメインのレコードから割当てを削除する次の2つの要素あります。
  • deleteAssignments
  • wildcardDeleteAssignments

どちらの要素でも、標準属性割当てと管理値割当てを削除できます。標準属性または管理値は、データ・ドメインから削除されないことに注意してください(指定したレコードからのみ削除されます)。

同じupdateRecords操作で両方の要素を使用できます。この場合、wildcardDeleteAssignmentsリクエストは、deleteAssignmentsリクエストの前に処理されます。

どちらの要素も大文字と小文字が区別されます(標準属性および管理値の名前と、その割当て値を含む)。

割当ての削除と、削除対象の割当てを変更する操作を同じリクエストに含めることはできません。

注意: トランザクションを開始するトランザクションWebサービスのリクエストの後に、ingestChangesリクエストを送信する場合、そのリクエストでは外部トランザクションIDを指定する必要があります。外部トランザクションが開始されていない場合、リクエストのID属性は省略する必要があります。

deleteAssignmentsリクエスト

updateRecordsサブ操作のdeleteAssignments要素は、個々の標準属性または管理値割当て(あるいはその両方)をデータ・ドメインのレコードから削除しますが、それ以外ではレコードに影響を与えません。同じリクエストで1つ以上の割当てを削除できます。

個々の割当てを削除するには、次のようにします。
  • リクエストのrecordSpecifier要素にEQLフィルタを含めることにより、影響を受けるレコードを指定します。
  • これらのレコードについて、割当て値を削除する属性を指定します。
deleteAssignmentsリクエストの書式は次のとおりです。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
  xmlns:ns="http://www.endeca.com/MDEX/ingest/3/0" 
  xmlns:ns1="http://www.endeca.com/MDEX/XQuery/2009/09">
   <soapenv:Header/>
   <soapenv:Body>
      <ns:ingestChanges>
         <ns:updateRecords>
            <ns:recordSpecifier>?</ns:recordSpecifier>
              <ns:deleteAssignments>
                <ns1:attribute name="?">?</ns1:attribute>
            </ns:deleteAssignments>
          </ns:updateRecords>
      </ns:ingestChanges>
   </soapenv:Body>
</soapenv:Envelope>
ここで、recordSpecifier要素に追加する文字列は、レコードを識別するEQL式です。
次の例に、このリクエストを示します。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
  xmlns:ns="http://www.endeca.com/MDEX/ingest/3/0" 
  xmlns:ns1="http://www.endeca.com/MDEX/XQuery/2009/09">
   <soapenv:Header/>
   <soapenv:Body>
      <ns:ingestChanges>
         <ns:updateRecords>
            <ns:recordSpecifier>"price" > 45</ns:recordSpecifier>
              <ns:deleteAssignments>
                <ns1:attribute name="color">purple</ns1:attribute>
            </ns:deleteAssignments>
          </ns:updateRecords>
      </ns:ingestChanges>
   </soapenv:Body>
</soapenv:Envelope>

この例では、purpleというcolor標準属性割当ての1つの値をprice属性の値が45よりも高いすべてのレコードを対象に削除します。

前のサンプル・リクエストから返される成功時のingestChangesResponseは、次のようになります。
<ingest:ingestChangesResponse 
xmlns:ingest="http://www.endeca.com/MDEX/ingest/3/0">
  <ingest:numPropertiesCreated>0</ingest:numPropertiesCreated>
  <ingest:numRecordsAffected>4</ingest:numRecordsAffected>
  <ingest:numRecordsDeleted>0</ingest:numRecordsDeleted>
</ingest:ingestChangesResponse>

レスポンスのnumRecordsAffected要素は、4つのレコードが正常に変更されたことを示しています。

wildcardDeleteAssignmentsリクエスト

ingestChanges操作のupdateRecords要素のwildcardDeleteAssignments要素は、同じ標準属性または管理値からすべての割当てを一度に削除します。この操作は、割当ての削除と同様に、削除対象の割当てを変更する操作と組み合せることはできません。

リクエストでは、recordSpecifier要素内のEQL文を使用して更新するレコードを識別し、すべての割当てを削除する必要のある属性の名前も必ずリストします。wildcardDeleteAssignmentsリクエストの書式は次のとおりです。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
  xmlns:ns="http://www.endeca.com/MDEX/ingest/3/0" 
  xmlns:ns1="http://www.endeca.com/MDEX/XQuery/2009/09">
   <soapenv:Header/>
   <soapenv:Body>
      <ns:ingestChanges>
          <ns:updateRecords>
            <ns:recordSpecifier>?</ns:recordSpecifier>
               <ns:wildcardDeleteAssignments>
                <ns1:attribute name="?"/>
               </ns:wildcardDeleteAssignments>
            </ns:updateRecords>
       </ns:ingestChanges>
   </soapenv:Body>
</soapenv:Envelope>
特定の標準属性または管理値から1つのレコードのすべての割当てを削除するには、属性で単一のタグを使用します(color標準属性からpartIDP4000のレコードを対象にすべての割当てを削除する次の例を参照)。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
  xmlns:ns="http://www.endeca.com/MDEX/ingest/3/0" 
  xmlns:ns1="http://www.endeca.com/MDEX/XQuery/2009/09">
   <soapenv:Header/>
   <soapenv:Body>
      <ns:ingestChanges>
          <ns:updateRecords>
            <ns:recordSpecifier>"partID" = 'P4000'</ns:recordSpecifier>
               <ns:wildcardDeleteAssignments>
                <ns1:attribute name="color"/>
               </ns:wildcardDeleteAssignments>
            </ns:updateRecords>
       </ns:ingestChanges>
   </soapenv:Body>
</soapenv:Envelope>

この例では、レコードP4000がcolor標準属性の6つの割当てを保持している場合、6つの割当てすべてが削除されます。

操作が成功すると、1つのレコードが影響を受けたことを示す、次のingestChangesResponseが返されます。
<ingest:ingestChangesResponse xmlns:ingest="http://www.endeca.com/MDEX/ingest/3/0">
   <ingest:numPropertiesCreated>0</ingest:numPropertiesCreated>
   <ingest:numRecordsAffected>1</ingest:numRecordsAffected>
   <ingest:numRecordsDeleted>0</ingest:numRecordsDeleted>
</ingest:ingestChangesResponse>