標準属性の名前の変更

データ・インジェストWebサービスでは、実行中のデータ・ドメインのレコードについて標準属性の名前を変更できます。

属性の名前を変更するには、updateRecordsreplaceAssignments要素を使用します。

属性の名前を変更する場合、データ・インジェストWebサービスでは、この属性のPDRのmdex-property_Keyにすでに指定されている属性名を削除し、それを新しい名前で置き換えます。この属性の割当てはすべてのレコードで保持され、Oracle Endeca ServerのDgraphプロセスは稼働し続けます。

重要: 標準属性は、名前を変更する前に(Studioのビューで使用される)グループまたはエンティティから削除してください。グループまたはエンティティから削除せずに属性の名前を変更すると、これらのグループまたはエンティティが無効になる可能性があります。

データ・ドメインのレコードでは、すべての標準属性の名前を変更できます。管理属性の名前は変更できません(関連付けられた標準属性の名前を変更する場合を除く)。また、システム・レコード(PDR、DDRなど)の属性やグループを定義するシステム属性の名前も変更できません。

属性の名前を変更するupdateRecordsリクエストに、他の更新を含めることはできません。また、ingestChangesリクエスト全体で別のupdateRecords要素が含まれている場合、名前が変更される属性に対してそれらを実行することはできません。

リクエストでは、次のリクエスト書式を使用して、置換対象の属性の名前を正しく識別する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>"mdex-property_Key"='oldName'</ns:recordSpecifier>
     <ns:replaceAssignments>
      <ns1:attribute name="mdex-property_Key">newName</ns1:attribute>
    </ns:replaceAssignments>
   </ns:updateRecords>
  </ns:ingestChanges>  
 </soapenv:Body>
</soapenv:Envelope>
変数の意味は次のとおりです。
  • "mdex-property_Key"='oldName'は、属性のPDRの場所を示すEQL式で、現在の割当て値oldNameをPDRのmdex-property_Keyで指定します。
  • newNameは属性の新しい名前です。

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

属性の名前を変更するには、次の手順を実行します。

  1. データ・ドメインのDgraphプロセスとデータ・インジェストWebサービスの両方が実行されていることを確認します。
  2. updateRecordsリクエストを作成し(属性partIDの名前を属性SKUに変更する次の例を参照)、データ・インジェストWebサービスにリクエストを送信します。
    <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>"mdex-property_Key"='partID'</ns:recordSpecifier>
                <ns:replaceAssignments>
                   <ns1:attribute name="mdex-property_Key">SKU</ns1:attribute>
                </ns:replaceAssignments>
             </ns:updateRecords>
          </ns:ingestChanges>
       </soapenv:Body>
    </soapenv:Envelope>
  3. リクエストの作成後、ingestChangesResponseを参照して、リクエストのトランザクションが成功したかどうかを確認します。
前のサンプル・リクエストから返される成功時のingestChangesResponseは次のようになります(1つのレコードが影響を受けたことを示しています)。
<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>