ページのトップに戻る
Interstage Data Effector ユーザーズガイド

B.2.2 連結条件ファイル

文字コード、ファイル形式または編集条件などを定義した連結条件を記述します。

実行パラメタの種類と意味

以下に、連結条件ファイルの実行パラメタを示します。

注意

連結条件ファイルの内容は、CharacterCodeパラメタで指定したデータの文字コードで記述してください。


パラメタ

省略

説明

CharacterCode

検索対象となる文字列の文字コードを指定します。
本パラメタを省略した場合、UTF-8が指定されたとみなします。

InFileType

入力ファイルタイプを指定します。
本パラメタを省略した場合、CSVが指定されたとみなします。

ListDef

不可

入力とする項目を定義します。
本パラメタは複数行にまたがって定義できます。

LCondition

仮想項目機能を使う場合に、仮想項目定義を指定します。
本パラメタは複数行にまたがって定義できます。
本パラメタを省略した場合、仮想項目機能は使用できません。
仮想項目定義の詳細については、“A.7 仮想項目機能”を参照してください。

OutFileType

本パラメタにはCSVを指定してください。

OutputDef

不可

出力する項目をリターン式に指定します。
本パラメタは複数行にまたがって定義できます。

Jnode

出力単位ノードを指定します。
入力ファイルタイプがXMLの場合だけ有効です。
本パラメタを省略した場合、入力ジャーナルファイルの1XML文書に対して1レコードを出力します。

Jcondition

入力ジャーナルファイルと入力マスタファイルの連結条件を連結条件式に指定します。
入力マスタファイルを定義しない場合は、本パラメタを省略します。
本パラメタは複数行にまたがって定義できます。

SubstituteZeroForEmpty

OutputDefパラメタに指定する数値演算式における空の扱いを指定します。
本パラメタを省略した場合、NOが指定されたとみなします。

CharacterCode

設定

意味

UTF-8

UTF-8の場合

SHIFT-JIS

Shift-JISの場合

EUC

EUC-JPの場合


InFileType

設定

意味

CSV

CSVの場合

XML

XMLの場合


ListDef

抽出する項目を定義します。


図B.13 入力ファイルタイプがCSVの場合

図B.14 入力ファイルタイプがXMLの場合

K略称
  • 入力ジャーナルファイルまたは入力マスタファイルの各項目に対する新たな名前です。後続のOutputDefパラメタまたはJconditionパラメタで参照使用できます。

  • K略称は、全体で一意でなければなりません。

注意

K略称の指定に何らかの誤りがある場合、指定されたK略称を含むメッセージが標準エラー出力に出力されます。K略称にマルチバイト文字を指定し、かつデータの文字コードとシステムロケールの文字コードが異なる場合、メッセージ中のK略称が正しく表示されない場合があります。

項目名
  • documentで指定したCSVファイルの抽出する項目名を指定します。

テキスト式
  • テキスト式は、documentで指定したXML文書の抽出するパスをテキスト式で指定します。

図B.15 テキスト式の定義

注意

  • パス式のパス演算子に“//”は指定できません。

  • パス式のパス要素に“*”は指定できません。

  • パス式については、“A.1.5 パス式”を参照してください。



OutputDef

ListDefパラメタで定義したK略称を使用して、出力ファイルへの項目の出力順番をリターン式に定義します。


図B.16 出力項目定義

参照

リターン式の詳細については、“A.5.1 リターン式の書式”を参照してください。


Jnode

InFileTypeがXMLで、1文書中の特定の繰り返しノード数分のレコードを出力したい場合に指定します。
出力単位ノードをパス式で指定します。

参照

使用例については、“3.3.2.3 繰返し項目のあるXML文書を連結する場合”を参照してください。

省略時は、1XML文書から1レコード出力します。また、出力項目に指定された項目が1文書中に繰り返し出現した場合には先頭の項目だけが出力されます。


図B.17 出力単位ノード

注意

  • パス式のパス演算子に“//”は指定できません。

  • パス式のパス要素に“*”は指定できません。

  • パス式については、“A.1.5 パス式”を参照してください。


Jcondition

入力ジャーナルファイルと入力マスタファイルの連結条件を連結条件式に指定します。この連結条件によって参照特定された入力マスタファイルの項目を連結結果として出力します。
連結条件は、1つの入力マスタ(M略称)につき1つ指定します。

図B.18 連結条件

参照

連結にかかわる詳細については、“3.3.3 連結機能の注意事項”を参照してください。
連結条件式の詳細については“A.6 連結条件式”を参照してください。


SubstituteZeroForEmpty

OutputDefパラメタに指定する数値演算式における空の扱いを指定します。

指定できる値は以下のいずれかです。

設定

意味

YES

数値演算式における算術演算において、空を0とみなして演算します。
また、数値演算式の結果が空となった場合、0を出力します。

NO

数値演算式における算術演算において、演算対象に空が含まれる場合、演算結果はすべて空を返します。
また、数値演算式の結果が空となった場合、何も出力しません。

参照

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


複数行にまたがるパラメタの定義

ListDefパラメタ、LConditionパラメタ、OutputDefパラメタおよびJconditionパラメタは、複数行にまたがった定義を行うことができます。

改行が可能な位置を以下に示します。

表B.2 改行可能な位置

パラメタ

改行可能な位置

ListDef

  • 中括弧({})の前後

  • "document"の前後

  • J略称、M略称またはK略称の前後

  • 項目名、テキスト式の前後

  • カンマ(,)の前後

LCondition

  • 中括弧({})の前後

  • 仮想項目名の前後

  • ":="の前後

  • "IF","THEN","ELSE","ELSEIF","ENDIF"または"EMPTY"の前後

  • 論理演算子の前後

  • 比較演算子の前後

  • 関数名の前後

  • 項目参照の前後

  • 関数の引数の前後

  • 括弧(())の前後

  • カンマ(,)の前後

  • リテラルの前後

OutputDef

  • 中括弧({})の前後

  • 項目参照の前後

  • カンマ(,)の前後

Jcondition

  • 中括弧({})の前後

  • "join"の前後

  • J略称またはM略称の前後

  • カンマ(,)の前後

  • 結合型の前後

  • 括弧(())の前後

  • 関数名の前後

  • 項目参照の前後

  • 関数の引数の前後

  • 文字列型を結合する"+"の前後

  • 結合関係式の"="または"=="の前後

  • 文字列("文字")の前後


連結条件ファイル指定例

以下に、連結条件ファイルの実行パラメタを示します。

WindowsWindowsの場合

# 文字コード
CharacterCode     SHIFT-JIS
# 入力ファイルタイプ
InFileType   XML
# 出力ファイルタイプ
OutFileType  CSV
# 入力項目定義
ListDef {document(Journal){$Kbn   /Jnl/Kbn/text(),
                              $Number /Jnl/Number/text(),
                              $Code   /Jnl/Code/text(),
                              $Name   /Jnl/Name/text(),
                              $Val   /Jnl/Value/text()
             },
             document(Master1){
                              $Kcode /Mst1/code/text(),
                              $Kname /Mst1/name/text()
             },
             document(Master2){
                              $Ncode /Mst2/code/text(),
                              $Nname /Mst2/name/text()
             }
}
# 仮想項目定義
LCondition  {
             $部コード :=
                             IF      $Nname == "第一開発部"  THEN 1
                             ELSEIF  $Nname == "第二開発部"  THEN 2
                             ELSEIF  $Nname == "第三開発部"  THEN 3
                             ELSE EMPTY
                             ENDIF
            }
# リターン式
OutputDef  {$Kbn,$Kname,$部コード,$Nname,$Code,$Name,$Val}
# 連結条件式
Jcondition  {join(Journal,Master1,$Kbn == $Kcode,"LEFT"),
             join(Journal,Master2,$Number == $Ncode,"LEFT")
            }
# 数値演算式における空の扱い
SubstituteZeroForEmpty        NO

SolarisLinuxLinux/Solarisの場合

# 文字コード
CharacterCode  EUC
# 入力ファイルタイプ
InFileType    XML
# 出力ファイルタイプ
OutFileType   CSV
# 入力項目定義
ListDef {document(Journal){$Kbn   /Jnl/Kbn/text(),
                              $Number /Jnl/Number/text(),
                              $Code   /Jnl/Code/text(),
                              $Name   /Jnl/Name/text(),
                              $Val   /Jnl/Value/text()
             },
             document(Master1){
                              $Kcode /Mst1/code/text(),
                              $Kname /Mst1/name/text()
             },
             document(Master2){
                              $Ncode /Mst2/code/text(),
                              $Nname /Mst2/name/text()
             }
}
# 仮想項目定義
LCondition  {
             $部コード :=
                             IF      $Nname == "第一開発部"  THEN 1
                             ELSEIF  $Nname == "第二開発部"  THEN 2
                             ELSEIF  $Nname == "第三開発部"  THEN 3
                             ELSE EMPTY
                             ENDIF
            }
# リターン式
OutputDef  {$Kbn,$Kname,$部コード,$Nname,$Code,$Name,$Val}
# 連結条件式
Jcondition  {join(Journal,Master1,$Kbn == $Kcode,"LEFT"),
             join(Journal,Master2,$Number == $Ncode,"LEFT")
            }
# 数値演算式における空の扱い
SubstituteZeroForEmpty        NO