毎日販売実績データが作成され、夜間にそのデータを集計するような、処理は固定で決まっていてデータのファイル名だけが変更されるような場合の例を可変項目指定を利用して説明します。
図7.7 統合コマンドの処理概要(可変項目の使用)
入力データから目的のデータを取得するために必要な処理・ファイルを整理します。
順番 | 使用する機能 | 処理内容 | 入力ファイル (形式、文字コード) |
---|---|---|---|
1 | 集計機能 | 売上げデータを店舗別商品別に集計します。 | 販売実績データ (CSV、SHIFT-JIS) |
本項で使用するデータは以下になります。
販売実績データ
"BUSINESSNO","SALESDATE","GTYPE","SELLCOST","NUMBER","SALEPRICE","NMTENPO","LOCATION" "359104","2009/2/2","BOX型冷凍庫","12800","1","12800","博多店","駅前" "359105","2009/2/2","3ドア冷蔵庫","126500","1","126500","博多店","駅前" "359106","2009/2/2","ダニ取り付き電気カーペット01H","40800","1","40800","博多店","駅前" "359107","2009/2/2","デジタルビデオカメラ02G","32100","1","32100","本店","駅前" "359108","2009/2/2","デジタルビデオカメラ01W","43300","2","86600","博多店","駅前" "359109","2009/2/2","3ドア冷蔵庫","72100","1","72100","本店","駅前" "359110","2009/2/2","ポータブルDVDプレイヤー","40800","1","40800","博多店","駅前" "359111","2009/2/2","5ドア冷蔵庫","200100","1","200100","静岡店","郊外" "359112","2009/2/2","4ドア冷蔵庫","198100","1","198100","博多店","駅前" "359113","2009/2/2","加湿器01K","1100","1","1100","博多店","駅前" "359114","2009/2/2","炊飯器TG","16300","1","16300","本店","駅前" "359115","2009/2/2","5ドア冷蔵庫","225100","1","225100","静岡店","郊外" "359116","2009/2/2","食器洗浄機","5800","2","11600","博多店","駅前" "359117","2009/2/2","冷暖房","16300","1","16300","博多店","駅前" |
設計した内容を、統合定義ファイルに定義していきます。
設計した内容を、統合定義ファイルに定義していきます。
使用する機能の定義を、処理条件定義部:Analyzeに定義します。
以下の例では、入力ファイル:@INFILE@と出力ファイル:@OUTFILE@を可変項目として、定義しています。
実行順序を、シナリオ定義部に定義します。
統合定義ファイルの例
統合定義ファイルの指定例を以下に示します。
ここでは、InFileタグとOutFileタグを可変項目として定義しています。
deconfig3.xml
<?xml version="1.0" encoding="utf-8"?> <DataEffector> <!-- 共通定義部 --> <CommonCfg> <Data CharacterCode ="SHIFT-JIS" /> <LogFile>/home/shun/Sample3/log/all.log</LogFile> </CommonCfg> <!-- 処理条件定義部:Analyze --> <Analyze Name="Analyze"> <BaseDirectory>/home/shun/Sample3</BaseDirectory> <WorkFolder>tmp</WorkFolder> <Memory MemorySize="1500" /> <InFile> <File>data/@INFILE@</File> </InFile> <OutCondition> <GCondition Total="true"> <Item Subtotal="true" Label="NMTENPO">$NMTENPO</Item> <Item Subtotal="true" Label="GOODSTYPE">substr($GTYPE,0,40)</Item> </GCondition> <RCondition> <Item Label="TOTALNUMBER">sum($NUMBER)</Item> <Item Label="TOTALSALES">sum($SALEPRICE)</Item> </RCondition> <GString>** 計 **</GString> <OutFile>result/@OUTFILE@</OutFile> </OutCondition> </Analyze> <!-- シナリオ定義部 --> <Scenario Name="Scenario3"> <Step>Analyze</Step> </Scenario> </DataEffector> |
統合コマンドにシナリオ名:Scenario3を指定して実行します。
以下の例では、可変項目指定ファイルを設定しています。
可変項目指定ファイル(dekahen.csv)
INFILE=20090202_Sales.csv OUTFILE=20090202_店舗別_商品別_売上げ集計.csv |
# deex -p Scenario3 -f /home/shun/cfg/deconfig3.xml -a /home/shun/cfg/dekahen.csv |
実行結果イメージ
20090202_店舗別_商品別_売上げ集計.csv
"NMTENPO","GOODSTYPE","TOTALNUMBER","TOTALSALES" "静岡店","5ドア冷蔵庫",2,425200 "静岡店","** 計 **",2,425200 "博多店","BOX型冷凍庫",1,12800 "博多店","3ドア冷蔵庫",1,126500 "博多店","4ドア冷蔵庫",1,198100 "博多店","ダニ取り付き電気カーペット01H",1,40800 "博多店","デジタルビデオカメラ01W",2,86600 "博多店","ポータブルDVDプレイヤー",1,40800 "博多店","加湿器01K",1,1100 "博多店","食器洗浄機",2,11600 "博多店","冷暖房",1,16300 "博多店","** 計 **",11,534600 "本店","3ドア冷蔵庫",1,72100 "本店","デジタルビデオカメラ02G",1,32100 "本店","炊飯器TG",1,16300 "本店","** 計 **",3,120500 "** 計 **","** 計 **",16,1080300 |