# DSQLマップの機能

は、既存のファンクションに加えて、DSQLマップで機能をいくつか提供します。

他のファンクションに関するドキュメンテーションは、[リファレンスガイド](https://help.qlik.com/talend/ja-JP/data-shaping-language-reference-guide/8.0)をご覧ください。

## @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ファンクションを使えば、ジョブで定義されたコンテキスト変数を呼び出すことができます。

情報メモヒント: DSQLファンクションの完全なリファレンスについては、 リファレンスガイドの[getContextVariable](https://help.qlik.com/talend/ja-JP/data-mapper-user-guide/data-shaping/getcontextvariable_r.html) (英語のみ)を参照してください。

### 引数

コンテキスト変数の名前。

### 例

* [DSQLマップでコンテキスト変数を使用](https://help.qlik.com/talend/ja-JP/data-mapper-user-guide/8.0/using-context-variables-in-dsql-map)

## getMapProperty

指定された実行プロパティの値を返します。

getMapPropertyファンクションを使用すると、実行プロパティの値を取得できます。このファンクションは、Camelルート(cMapコンポーネントを含む)において、Exchangeのインバウンドヘッダーにアクセスする際に特に有用です。

情報メモヒント: DSQLファンクションの完全なリファレンスについては、 リファレンスガイドの[getMapProperty](https://help.qlik.com/talend/ja-JP/data-mapper-user-guide/data-shaping/getmapproperty_r.html) (英語のみ)を参照してください。

### 引数

文字列リテラルとしての実行プロパティの名前。

### 例

```
getMapProperty('propertyName')
```

指定されたプロパティが存在しない場合、ファンクションはnullを返します。

## java:call

Javaメソッドを呼び出します。

Javaメソッドを呼び出すためには、java:call機能を使います。これは、たとえばで利用可能なBeanやルーチンを呼び出すために使用できます。

### 引数

Javaパラメーター。

サポートされている構文は次の3つです:

* 静的メソッドへの呼び出し: java:call(&lt;class\_name&gt;、&lt;method\_name&gt;、&lt;arguments&gt;)
* 非静的メソッドへの呼び出し: java:call(java:new(&lt;class\_name&gt;、&lt;constructor\_arguments&gt;)、&lt;method\_name&gt;、&lt;arguments&gt;)
* Javaオブジェクトの別のメソッドから返されるJavaオブジェクトの非静的メソッドへの呼び出し: java:call(java:call(&lt;class\_name&gt;、&lt;method\_name&gt;、&lt;arguments&gt;)、&lt;method\_name&gt;、&lt;arguments&gt;)

### 例

* [DSQLマップでBeanとルーチンを使用](https://help.qlik.com/talend/ja-JP/data-mapper-user-guide/8.0-R2026-05/using-beans-and-routines-in-dsql-map "java:callファンクションを使い、DSQLマップでグローバルルーチンとカスタムルーチンを呼び出します。")