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

3.7.2 連結機能のリターン式

連結機能のリターン式の定義を以下の図に示します。

XML形式または自由な形式で出力する場合は、出力形式を指定します。

図3.53 連結機能のリターン式の定義(出力形式を指定する場合)


図3.54 連結機能のリターン式の定義(出力形式を指定しない場合)

図3.55 項目参照

図3.56 数値演算式(数値型の場合)


参照

数値演算式における空の扱いについては、“3.5.2 数値演算式における空の扱い”を参照してください。


出力形式

出力形式は、出力したい形式、および、リターン項目に指定された内容をどこに出力するかを記述します。

図3.57 出力形式の定義


出力形式は、HEAD部、DATA部およびTAIL部で構成されています。
各部の「{文字列}」に出力する形式(項目名やタグ名とその並び)を指定してください。
本定義は以下の位置に改行が指定できるため、複数行にまたがって指定できます。

  • 二重引用符(“)の前後

  • 開き中括弧({)の前

  • 閉じ中括弧(})の後

出力形式を省略した場合には、CSV形式で出力されます。

表3.14 出力形式の構成要素

構成要素名

省略

説明

HEAD部

見出し行や開始ルートタグなどを設定する場合に、指定します。
出力結果の先頭に、1回だけ出力されます。
リターン項目に記述された内容を埋め込むことはできません。

DATA部

不可

出力データのタグ名や内容を指定します。
リターン項目に記述された項目を埋め込むこともできます。
レコードごとにDATA部で定義した形式で出力します。
リターン項目の項目を埋め込む場合には、項目指定子を指定します。項目指定子の命名規約は、以下です。

  • 項目指定子:%[項目番号]%

    • [項目番号]:リターン項目に指定された項目を先頭から1と見なし、設定します。
      指定できる値は、1から2,147,483,647までです。

TAIL部

終了ルートタグなどを設定する場合に、指定します。
出力結果の最後に、1回だけ出力されます。
リターン項目に記述された内容を埋め込むことはできません。


出力形式を指定した連結機能のリターン式の例を以下に示します。

"HEAD{<?xml version="1.0" encoding="Shift-Jis" ?>\n<root>\n}
 DATA{<Member><Name>%1%</Name><Age>%2%</Age></Member>\n}       (注1)
 TAIL{</root>}"
 $会社名,$ID                                                   (注2) 

注1) DATA部に、リターン項目の項目番号を埋め込んでいます。
注2) リターン項目として、2個定義しています。

注意

  • すべての部を指定した場合でDATA部に出力するレコードが存在しないときには、HEAD部とTAIL部だけが出力されます。

  • リターン項目に指定した項目は、出力形式のDATA部に複数回指定できます。

  • リターン項目に指定した項目のデータには、型の内容に関わらず、二重引用符(")は付加されません。

  • 連結結果は、実体参照文字列の解決や二重引用符(")による変換は実施されずに、データがそのままの形で出力されます。XMLまたはCSVのテキスト表現形式への変換が必要な場合は、変換関数を使用してください。関数の詳細については、“4.7 単一行関数(変換関数)”を参照してください。

  • 文字列中に以下文字を指定する場合には、エスケープ文字(\)を付加する必要があります。

    文字

    指定方法

    \

    \\

    %

    \%

    {

    \{

    }

    \}

  • 文字列中には、改行、半角空白、および、水平タブが記述でき、そのまま出力されます。また、以下の方法でも記述できます。

    指定方法

    意味

    備考

    \n

    改行

    replace用動作環境ファイルのOutLineFeedCodeパラメタの仕様に準拠します。

    \s

    半角空白

    \t

    水平タブ

  • replace用動作環境ファイルのQuotationMarkModeパラメタは、本機能には有効となりません。

  • 二重引用符(“)で囲まれた出力形式の中に、コメントを記述することはできません。


K略称

連結機能のListDefパラメタで定義したK略称を指定します。

参照

K略称の詳細については、“K略称”を参照してください。


仮想項目名

仮想項目名は、仮想項目定義で定義される仮想項目の値を返します。

参照

仮想項目機能の詳細は、“3.8 仮想項目機能”を参照してください。


単一行関数

必要に応じて、単一行関数を指定します。

注意

出力形式が指定された場合だけ、変換関数も指定できます。

参照

使用できる単一行関数の詳細については、“第4章 関数の書式”を参照してください。


ラベル

出力データにおいて項目名、またはタグ名として使用される文字列を指定します。

入力ファイルタイプがCSVの場合、ラベルは省略することもできます。

出力形式が指定された場合、リターン式にラベルは指定できません。


集合関数

必要に応じて、集合関数を指定します。

参照

使用できる集合関数の詳細については、“第4章 関数の書式”を参照してください。


数値演算式

val関数、集合関数および算術演算などが指定できます。


数値リテラル
  • プログラム実行中に変化しない数値のことです。

  • 整数部、および、小数部は、18桁まで有効です。
    整数部は、18桁を超えるとエラーとなります。ただし、処理中に一時的に18桁を超える場合は、正しく処理されるときがあります。
    小数部は、19桁以降は切り捨てられます。

  • 除算演算子(/)のあとに0は指定できません。


集合関数指定

集合関数は、1レコード内で、関数のパラメタに指定した項目参照の内容を集計した値を返します。
集合関数のパラメタに指定した項目参照で指定した項目、テキストノードまたは属性ノードが入力レコード中に存在しない場合や、空の場合は、集計の対象に含めません。詳細については、“3.5.2 数値演算式における空の扱い”を参照してください。
sum関数、max関数、min関数およびavg関数は、項目参照で指定した文字列から数値を抜き出して、その数値を集計します。項目から数値を抜き出す規則は、val関数と同じです。先頭の0を除き、整数部が18桁を超えるとエラーとなります。

sum関数、max関数、min関数およびavg関数は、セミコロン(;)で区切って、複数の項目参照を記述できます。


注意

  • 出力がCSV形式で、かつ結果を抽出機能や連結機能の入力ファイルとして指定する場合には、ラベルを必ず記述してください。記述しない場合には、他機能との連携ができない場合があります。

  • リターン式に「sum($val)」と記述し、ラベルが指定されていない場合には、出力される項目名称は「sum(val)」となります。

  • リターン式に「sum($val)」と記述し、集計式の結果がオーバーフローとなった場合には、出力ファイルに「"ERR(=sum(数値))"」が出力され、処理を継続します。

    • コマンド利用時は、終了ステータスとして「警告」が返却されます。

    • C API利用時は、関数はエラーで復帰し、エラーレベル「警告」が設定されます。

  • 算術演算を使用したリターン式「sum($val)*1000」を記述し、結果がオーバーフローとなった場合には、出力ファイルに「"ERR(=sum(数値)*1000")」が出力されます。

  • 「数値」には、オーバーフローした結果が出力されますが、結果が27桁を超えた場合には、出力ファイルは出力されません。

  • リターン式に「sum($val)/min($val)」と記述し、min($val)の結果が0となった場合には、「"ERR(=sum(数値)/min(0))"」と出力され、処理を継続します。

    • コマンド利用時は、終了ステータスとして「警告」が返却されます。

    • C API利用時は、関数はエラーで復帰し、エラーレベル「警告」が設定されます。

参照

詳細については、以下を参照してください。