手順
-
tFilterColumnsコンポーネントの次に、別のaddComponent {}関数とそのサブ関数のsetComponentDefinition {}を入力して、tFilterRowコンポーネントを追加します。
// filter records - accept men between 10 and 80 whose names are shorter than 9 characters addComponent { setComponentDefinition { TYPE: "tFilterRow", NAME: "tFilterRow_1", POSITION: 640, 224 } }
-
setComponentDefinition {}関数の次に、setSettings {}関数を入力してフィルター条件を定義し、コンポーネントのラベルを設定します。
setSettings { LOGICAL_OP : "&&", CONDITIONS { INPUT_COLUMN : "name", FUNCTION : "$source == null? false : $source.length() $operator $target", OPERATOR : "<", RVALUE : "9", INPUT_COLUMN : "gender", FUNCTION : "", OPERATOR : "==", RVALUE : "\"M\"", INPUT_COLUMN : "age", FUNCTION : "", OPERATOR : ">", RVALUE : "10", INPUT_COLUMN : "age", FUNCTION : "", OPERATOR : "<", RVALUE : "80" }, LABEL : "filter_records" }
警告:メタ文字を指定する場合、必ずバックスラッシュ(\)を使用してください。
-
setSettings {}関数の次に、以下のスクリプトコードを入力して、出力フローのスキーマを定義します。
このサンプルでは、tFilterRowコンポーネントは2つの出力フローで構成されています。1つは承認済みのレコードを含み、直前のコンポーネントtFilterColumnsで定義されているスキーマ構造と同じスキーマ構造になります。もう一つの出力フローはリジェクトされたレコードを含み、ここにはerrorMessageのカラムも含まれます。errorMessageカラムはリジェクトフローでは必須で、固定プロパティを含みます。このカラムを定義しない場合でも、Studioはジョブの生成時に自動的にこのカラムを追加します。
// define the schema for the accepted records addSchema { NAME: "ACCEPT", CONNECTOR: "FILTER" addColumn { NAME: "name", TYPE: "id_String" } addColumn { NAME: "gender", TYPE: "id_String" } addColumn { NAME: "age", TYPE: "id_Integer", LENGTH: 2 } addColumn { NAME: "city", TYPE: "id_String" } } // define the schema for the rejected records addSchema { NAME: "REJECT", CONNECTOR: "REJECT" addColumn { NAME: "name", TYPE: "id_String" } addColumn { NAME: "gender", TYPE: "id_String" } addColumn { NAME: "age", TYPE: "id_Integer", LENGTH: 2 } addColumn { NAME: "city", TYPE: "id_String" } addColumn { NAME: "errorMessage", TYPE: "id_String", NULLABLE: true, LENGTH: 255, PRECISION: 0 } }