出力形式の自由化機能を利用することで、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> |
ポイント