Modify Recordsの入力

Modify Recordsコンポーネントへの入力は、プロパティ名と、変更するレコードの選択に使用する値およびファイル内の関連するプロパティに追加する値との任意の配列です。

カンマ区切り値ファイルのような、デリミタ付きのファイルを使用するか、入力データをデータベースまたは同様のソースから得ることが可能です。リーダー・コンポーネントからの出力エッジのメタデータにより、プロパティの名前が定義されます。

入力配列の使用

Modify Recordsコンポーネントの入力配列は、プロパティ名と、変更するレコードを指定する値およびレコードに追加する値またはレコードから削除する値との任意の配列です。null値が指定されたレコードに追加されることに注意してください。null値は、既存の値をすべて上書きします。

次の例では、次の入力配列が使用されています。
ProductKey|Color|SafetyStockLevel|ReorderPoint
CA-5965|Black|500|375
CA-6738|White|500|375
CA-7457|Black|500|375
CB-2903|Silver|1000|750
CN-6137|Silver|1000|750
CR-7833|Gold|1000|750
FH-2981|Silver|500|375
ProductKeyを指定子属性と仮定します。

「操作」プロパティの値が属性の追加であり、レコードにColorSafetyStockLevelおよびReorderPointプロパティの値が含まれていない場合、これらのプロパティの入力値がProductKeyプロパティで指定されたレコードに追加されます。レコードにこれらのプロパティに対する値がすでに含まれており、これらのプロパティが複数割当てをサポートする場合、これらのプロパティの既存の値に入力値が追加されます。プロパティが複数割当てをサポートしていない場合、操作は失敗します。また、結果としてバッチ全体が失敗します。

「操作」プロパティの値が属性の置換の場合、ProductKeyで指定されたレコードで指定されたプロパティの既存の値は入力配列の値で置き換えられます。入力プロパティのいずれかの値がnullの場合、プロパティの既存の値がすべてnull値で上書きされます。たとえば、入力配列に次のレコードが含まれているとします。
ProductKey|Color|SafetyStockLevel|ReorderPoint
CA-6738|||
この場合、ColorSafetyStockLevelおよびReorderPointプロパティの値がnull値で上書きされます。(つまり、この操作は実質的に、これらのプロパティのワイルドカードによる削除操作になります。)
「操作」プロパティの値が属性の削除であり、次の配列が入力される場合(ProductKeyは指定子属性)、
ProductKey|Color|SafetyStockLevel|ReorderPoint
CA-5965|Black|500|375
CA-7457|Black||
次のようになります。
  • ProductKey=CA-5965のレコードでは、指定されたプロパティから入力値が削除されます。
  • ProductKey=CA-7457のレコードでは、割当てBlackColorプロパティから削除されます。

EQLを使用した変更対象レコードの選択

EQLレコード指定子(EQL問合せのWHERE句)を使用して、変更するレコードを選択できます。変数を使用して、選択に使用する入力プロパティを指定します。たとえば、次の配列を入力するとします。
ProductCategory|ProductSubcategory|SafetyStockLevel|ReorderPoint
Components|Hardware|250|185
Components|Wheels|25|18
Clothing|Hats|40|35
Clothing|Shirts|25|20
次のEQLを入力できます: "EnglishProductCategoryName"=$input.ProductCategory and "EnglishProductSubcategoryName"=$input.ProductSubcategory

Endeca問合せ言語の詳細は、Oracle Endeca Server EQLガイドを参照してください。