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

5.3.2 連結コマンドの実行例

shunreplaceコマンドの実行例を以下に示します。

  1. replase用動作環境ファイルの定義

  2. 連結条件ファイルの記述

  3. shunreplaseコマンドの実行

(1) replace用動作環境ファイルの定義

連結コマンドが動作するための環境ファイル(例:Replace.cfg)を定義します。並列数を指定して、同時に3つの入力ファイルを処理します。


WindowsWindowsの場合

# 入力ファイル(入力ジャーナルファイル)
JnlFile      Journal "D:¥Shunsaku¥data¥FactFile1.xml;
                     D:¥Shunsaku¥data¥FactFile2.xml;
                     D:¥Shunsaku¥data¥FactFile3.xml"
# 入力ファイル(入力マスタファイル)
MstFile    { Master1 "D:¥Shunsaku¥data¥NameFile.xml",
             Master2 "D:¥Shunsaku¥data¥KbnFile.xml"
}
# 出力ファイル
OutFile    "D:¥Shunsaku¥out¥RepOutput.csv"
# ログファイル
LogFile    "D:¥Shunsaku¥log¥Replace.log"
# 並列数
ParallelNum   3

SolarisLinuxLinux/Solarisの場合

# 入力ファイル(入力ジャーナルファイル)
JnlFile       Journal "/home/shunsaku/data/FactFile1.xml;
                      /home/shunsaku/data/FactFile2.xml;
                      /home/shunsaku/data/FactFile3.xml"
# 入力ファイル(入力マスタファイル)
MstFile    {  Master1 "/home/shunsaku/data/NameFile.xml",
              Master2 "/home/shunsaku/data/KbnFile.xml"
}
# 出力ファイル
OutFile    /home/shunsaku/out/RepOutput.csv
# ログファイル
LogFile    /home/shunsaku/log/Replace.log
# 並列数
ParallelNum   3

参考

JnlFileパラメタで物理ファイル名を省略した場合には、標準入力より読み込みます。

OutFileパラメタを省略した場合には、標準出力に結果を出力します。

入出力結果を別処理と連携させる場合、入出力ファイルに名前付きパイプを使用すると便利です。名前付きパイプの指定例については、“5.6.3 名前付きパイプの指定例”を参照してください。

(2) 連結条件ファイルの記述

入力ジャーナルファイルと入力マスタファイルを連結させるための条件を連結条件ファイル(例:JoinCond.cfg)に定義します。


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()
             }
}
# リターン式
OutputDef  {$Kbn,$Kname,$Number,$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()
             }
}
# リターン式
OutputDef  {$Kbn,$Kname,$Number,$Nname,$Code,$Name,$Val}
# 連結条件式
Jcondition  {join (Journal, Master1, $Kbn == $Kcode, "LEFT"),
              join (Journal, Master2, $Number == $Ncode, "LEFT")
}
# 数値演算式における空の扱い
SubstituteZeroForEmpty        NO

(3) shunreplaceコマンドの実行

以下に、shunreplaceコマンドの指定例を示します。


WindowsWindowsの場合

shunreplace -s D:¥Shunsaku¥cfg¥Replace.cfg
            -j D:¥Shunsaku¥cfg¥JoinCond.cfg

または

shunreplace -s "D:¥Shunsaku¥cfg¥Replace.cfg"
            -j "D:¥Shunsaku¥cfg¥JoinCond.cfg"

SolarisLinuxLinux/Solarisの場合

shunreplace -s /home/shunsaku/cfg/Replace.cfg
            -j /home/shunsaku/cfg/JoinCond.cfg