ページの先頭行へ戻る
Big Data Integration ServerV1.5.0 加工編リファレンス集
FUJITSU Software

3.8.5 述語関数

述語関数は、条件を満たした場合に真、または偽を返す関数です。真となる条件は関数によって異なります。

述語関数の定義を以下の図に示します。

図3.70 述語関数の定義

is_empty関数

図3.71 is_empty関数の定義


表3.15 述語関数

関数名

説明

is_empty

引数の項目参照が空のとき真、それ以外のとき偽を返却します。


以下のデータを従業員番号でソートし、従業員番号、名前、連絡先を出力します。

入力データ

名前

従業員番号

携帯電話番号

自宅電話番号

山田太郎

20080121

09000000000

0550000000

田中愛子

20070523

0580000000

佐藤花子

20012111

07000000000

0300000000

鈴木一郎

20080281

08000000000

0680000000

鈴木太郎

19980120

0240000000


指定例

“もし、携帯電話番号の値が空ならば、自宅電話番号の値を返す”という条件を定義します。

ソート条件ファイル
LCondition
{
 $連絡先 :=
           IF       is_empty($携帯電話番号)    THEN   $自宅電話番号
           ELSE                                       $携帯電話番号
           ENDIF
}
ソート式
$従業員番号
リターン式
$従業員番号 従業員番号, $名前 名前, $連絡先 連絡先

ソート結果

従業員番号

名前

連絡先

19980120

鈴木太郎

0240000000

20012111

佐藤花子

07000000000

20070523

田中愛子

0580000000

20080121

山田太郎

09000000000

20080281

鈴木一郎

08000000000


is_joined関数

図3.72 is_joined関数の定義


表3.16 述語関数

関数名

説明

is_joined

出力レコードに、指定されたファイル略称(J略称、またはM略称)のレコードが含まれているかどうかを判定し、含まれている場合は真を、含まれていない場合は偽を返却します。
is_joined関数は連結機能の仮想項目定義の述語関数として指定できます。


表3.17 出力レコードの種類と結果

出力レコードの種類

引数

備考

J略称

M略称

ジャーナルとマスタのレコードが結合されて生成された出力レコード

ジャーナルのレコードに対応するマスタのレコードが存在しない場合の出力レコード

結合型がLeft Outer、またはFull Outerの場合だけ、この出力レコードが生成されます。

マスタのレコードに対応するジャーナルのレコードが存在しない場合の出力レコード

結合型がFull Outerの場合だけ、この出力レコードが生成されます。


注意

  • 連結条件式に指定されているかどうかのチェックは、join()を使用した新しい構文で記述した場合だけ行います。

  • 古い構文で連結条件式を指定した場合はエラーチェックされません。この場合,連結条件式で使われていないファイル略称に対するis_joined関数の結果は、常に偽となります。

  • is_joined関数を指定した仮想項目、およびその仮想項目を使用するすべての仮想項目は、連結条件式で使用することはできません。(リターン式で使用することができます。)


入力ジャーナルファイルと入力マスタファイルが結合できたかを表すフラグを出力します。(FULL OUTER JOIN方式の場合)

入力ジャーナルファイル

key

value

1001

100

1002

200

1004

400


入力マスタファイル

mkey

mname

1001

東京

1002

神奈川

1003

静岡


連結条件
連結条件式
(Jcondition)
{
    join( Jnl, Mst, $key == $mkey, "FULL OUTER")
}
連結条件ファイル
(LCondition)
{
    $フラグ :=
             IF is_joined("Jnl") AND is_joined("Mst")
                                         THEN 1
                                         ELSE 0
             ENDIF,
    $vkey :=
             IF is_joined("Jnl")         THEN $key
             ELSEIF is_joined("Mst")     THEN $mkey
                                         ELSE EMPTY
             ENDIF
}
リターン式
(OutputDef)
{
    $vkey key, $mname name, $value, $フラグ
}

連結結果

key

name

value

フラグ

1001

東京

100

1

1002

神奈川

200

1

1004

400

0

1003

静岡

0

「空」がわかりやすいように、表形式にしています。