出力形式の自由化機能を利用することで、XML形式またはCSV形式の入力ファイルを、自由な形式に変換して出力できます。
ここでは、XML形式の入力ファイルを3つの入力マスタファイルと連結して、新たに別のXML形式のデータに変換する例について説明します。
入力ジャーナルファイル
<Jnl>
<Head>
<Kbn>01</Kbn>
<Number>1000</Number>
</Head>
<Body>
<Meisai>
<Code>AAA</Code>
<Name>ブロックA</Name>
<Value>1000</Value>
</Meisai>
<Meisai>
<Code>BBB</Code>
<Name>ブロックB</Name>
<Value>1200</Value>
</Meisai>
<Meisai>
<Code>CCC</Code>
<Name>ブロックC</Name>
<Value>800</Value>
</Meisai>
</Body>
<Tail>
<Total>3000</Total>
<Biko>備考:稟議番号 第4023号</Biko>
</Tail>
</Jnl> |
入力マスタファイル1
<Mst1> <Kbn>01</Kbn> <KbnName>区分α</KbnName> </Mst1> <Mst1> <Kbn>02</Kbn> <KbnName>区分β</KbnName> </Mst1> <Mst1> <Kbn>03</Kbn> <KbnName>区分γ</KbnName> </Mst1> |
入力マスタファイル2
<Mst2> <DivCode>1000</DivCode> <DivName>第1開発部</DivName> </Mst2> |
入力マスタファイル3
<Mst3> <BlkCode>AAA</BlkCode> <BlkName>ブロックA</BlkName> </Mst3> <Mst3> <BlkCode>BBB</BlkCode> <BlkName>ブロックB</BlkName> </Mst3> <Mst3> <BlkCode>CCC</BlkCode> <BlkName>ブロックC</BlkName> </Mst3> |
連結条件
入力項目定義 (ListDef) | {document(Journal)/Jnl/Body/Meisai{
$Kbn (../../Head/Kbn/text())[1],
$Number (../../Head/Number/text())[1],
$Code (./Code/text())[1],
$KbnP (../../Head/Kbn)[1],
$NumberP (../../Head/Number)[1],
$CodeP (./Code)[1],
$ValueP (./Value)[1],
$Bottom (../../Tail)[1]
},
document(Master1){
$M1kbn /Mst1/Kbn/text(),
$M1KbnNameP /Mst1/KbnName
},
document(Master2){
$M2DivCode /Mst2/DivCode/text(),
$M2DivNameP /Mst2/DivName
},
document(Master3){
$M3BlkCode /Mst3/BlkCode/text(),
$M3BlkNameP /Mst3/BlkName
}
} |
連結条件式 (Jcondition) | {join (Journal, Master1, $Kbn == $M1kbn, "LEFT OUTER"),
join (Journal, Master2, $Number == $M2DivCode, "LEFT OUTER"),
join (Journal, Master3, $Code == $M3BlkCode, "LEFT OUTER")
} |
リターン式 (OutputDef) | {
"DATA{<Doc>\n\t<Head>%1%%2%%3%%4%</Head>
\t<Meisai>%5%%6%%7%</Meisai>
\t%8%\n</Doc>\n}"
$KbnP,$M1KbnNameP,$NumberP,$M2DivNameP,$CodeP,$M3BlkNameP,$ValueP,$Bottom} |
連結結果
<Doc>
<Head><Kbn>01</Kbn><KbnName>区分α</KbnName><Number>1000</Number><DivName>第1開発部</DivName></Head>
<Meisai><Code>AAA</Code><BlkName>ブロックA</BlkName><Value>1000</Value></Meisai>
<Tail>
<Total>3000</Total>
<Biko>備考:稟議番号 第4023号</Biko>
</Tail>
</Doc>
<Doc>
<Head><Kbn>01</Kbn><KbnName>区分α</KbnName><Number>1000</Number><DivName>第1開発部</DivName></Head>
<Meisai><Code>BBB</Code><BlkName>ブロックB</BlkName><Value>1200</Value></Meisai>
<Tail>
<Total>3000</Total>
<Biko>備考:稟議番号 第4023号</Biko>
</Tail>
</Doc>
<Doc>
<Head><Kbn>01</Kbn><KbnName>区分α</KbnName><Number>1000</Number><DivName>第1開発部</DivName></Head>
<Meisai><Code>CCC</Code><BlkName>ブロックC</BlkName><Value>800</Value></Meisai>
<Tail>
<Total>3000</Total>
<Biko>備考:稟議番号 第4023号</Biko>
</Tail>
</Doc> |
ポイント