shunreplaceコマンドの実行例を以下に示します。
連結コマンドが動作するための環境ファイル(例:Replace.cfg)を定義します。並列数を指定して、同時に3つの入力ファイルを処理します。
# 入力ファイル(入力ジャーナルファイル)
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
# 作業ディレクトリ
WorkFolder /home/shunsaku/tmp/
# ログファイル
LogFile /home/shunsaku/log/Replace.log
# 並列数
ParallelNum 3 |
参考
JnlFileパラメタで物理ファイル名を省略した場合には、標準入力より読み込みます。
OutFileパラメタを省略した場合には、標準出力に結果を出力します。
入出力結果を別処理と連携させる場合、入出力ファイルに名前付きパイプを使用すると便利です。名前付きパイプの指定例については、“7.4 名前付きパイプを指定する例”を参照してください。
入力ジャーナルファイルと入力マスタファイルを連結させるための条件を連結条件ファイル(例:JoinCond.cfg)に定義します。
# 文字コード
CharacterCode EUC
# 入力ファイルタイプ
InFileType XML
# 入力項目定義
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 OUTER"),
join (Journal, Master2, $Number == $Ncode, "LEFT OUTER")
}
# 利用可能メモリサイズ
MemorySize 1500
# 数値演算式における空の扱い
SubstituteZeroForEmpty NO |
以下に、shunreplaceコマンドの指定例を示します。
shunreplace -s /home/shunsaku/cfg/Replace.cfg
-j /home/shunsaku/cfg/JoinCond.cfg |