DSQLマップの機能
は、既存のファンクションに加えて、DSQLマップで機能をいくつか提供します。
他のファンクションに関するドキュメンテーションは、 リファレンスガイドをご覧ください。
@emit
指定された条件に基づいて出力フィールドを生成するかどうかを制御します。
@emitアノテーションは、SELECTブロック内の代入文の前に配置されます。条件式の評価に基づき、条件付きで出力フィールドを生成できます。
条件が真(true)と評価された場合、出力フィールドが生成されます。条件が偽(false)と評価された場合、そのフィールドは出力から除外されます。
構文
@emit ( condition = <expression> )
<field_name> = <value>引数
@emitアノテーションには、必須の引数が1つ必要です。
- condition: フィールドが生成されるかどうかを決定するブール式。
例
この例では、評価フィールドは、値を持つ場合にのみ出力に含まれます。
FROM customer
SELECT {
name = name,
@emit ( condition = hasValue(rating) )
rating = rating
}これにより、名前フィールドは常に含まれる一方で、評価フィールドは顧客に評価値が存在する場合にのみ現れる出力レコードが生成されます。
getContextVariable
指定したコンテキスト変数の値を返します。
getContextVariableファンクションを使えば、ジョブで定義されたコンテキスト変数を呼び出すことができます。
引数
コンテキスト変数の名前。
getMapProperty
指定された実行プロパティの値を返します。
getMapPropertyファンクションを使用すると、実行プロパティの値を取得できます。このファンクションは、Camelルート(cMapコンポーネントを含む)において、Exchangeのインバウンドヘッダーにアクセスする際に特に有用です。
引数
文字列リテラルとしての実行プロパティの名前。
例
getMapProperty('propertyName')指定されたプロパティが存在しない場合、ファンクションはnullを返します。
java:call
Javaメソッドを呼び出します。
Javaメソッドを呼び出すためには、java:call機能を使います。これは、たとえばで利用可能なBeanやルーチンを呼び出すために使用できます。
引数
Javaパラメーター。
サポートされている構文は次の3つです:
- 静的メソッドへの呼び出し: java:call(<class_name>、<method_name>、<arguments>)
- 非静的メソッドへの呼び出し: java:call(java:new(<class_name>、<constructor_arguments>)、<method_name>、<arguments>)
- Javaオブジェクトの別のメソッドから返されるJavaオブジェクトの非静的メソッドへの呼び出し: java:call(java:call(<class_name>、<method_name>、<arguments>)、<method_name>、<arguments>)