標準属性および管理値割当てを置換して、実行中のデータ・ドメインのレコードを更新できます。
ingestChangesのupdateRecordsサブ操作には、データ・ドメインのレコードの割当てを置換するreplaceAssignments要素があります。
この要素では、標準属性割当てと管理値割当てを置換します。レコードの置換と同様に、新規割当てと一致する割当てがデータ・ドメイン内にまだ存在しない場合は、さらに割当てが追加されます。
割当ての置換と、置換対象の割当てを変更する他の操作を組み合せることはできません。
updateRecords操作で使用できるrecordSpecifier要素は1つのみです。この要素には、1つ以上のレコードを識別するEQL式が含まれている必要があります。updateRecords操作で複数の更新要素を組み合せる場合、すべての更新操作(追加、削除および置換)は recordSpecifier内のEQL式で識別されたレコードのみを対象に実行されることに注意してください。
属性が複数選択に対応し、一部のレコードに対して複数の割当て値を保持している場合、replaceAssignments要素を使用すると、これらの割当てがすべて削除され、指定した1つの割当てが追加されます。
replaceAssignmentsリクエストでは、データ・ドメインの属性名を変更することもできます。詳細は、「標準属性の名前の変更」を参照してください。
トランザクションを開始するトランザクションWebサービスのリクエストの後に、ingestChangesリクエストを送信する場合、そのリクエストでは外部トランザクションIDを指定する必要があります。外部トランザクションが開始されていない場合、リクエストのID属性は省略する必要があります。
updateRecordsサブ操作のreplaceAssignments要素は、個々の標準属性または管理値割当て(あるいはその両方)をデータ・ドメインのレコードから削除して、新しい割当て値で置き換えます。同じリクエストで1つ以上の割当てを置換できます。
<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:replaceAssignments> <ns1:attribute name="?">?</ns1:attribute> </ns:replaceAssignments> </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" > 5</ns:recordSpecifier> <ns:replaceAssignments> <ns1:attribute name="color">black</ns1:attribute> </ns:replaceAssignments> </ns:updateRecords> </ns:ingestChanges> </soapenv:Body> </soapenv:Envelope>
この例では、color標準属性割当てのすべての値を、price属性の値が5よりも高いすべてのレコードを対象にblackで置き換えます。
<ingest:ingestChangesResponse xmlns:ingest="http://www.endeca.com/MDEX/ingest/3/0"> <ingest:numPropertiesCreated>0</ingest:numPropertiesCreated> <ingest:numRecordsAffected>7</ingest:numRecordsAffected> <ingest:numRecordsDeleted>0</ingest:numRecordsDeleted> </ingest:ingestChangesResponse>
レスポンスのnumRecordsAffected要素は、7つのレコードが正常に変更されたことを示しています。