Excel・CSVをDBに登録
はじめに
特定のフォルダにあるExcelやCSVのファイルを、データベースに登録するプロジェクトです。
フォルダの監視を定期的に行うように設定すれば、夜間バッチでの登録処理も可能になります。
レポートの構成
BatchEntry.plsをXcuteで開くと、以下のようなレポート構成になっています。
”kokyaku_m”と、”syouhin_m”の2つのテーブル(レポート)があります。
これらを、Excel・CSVファイルにより更新します。
顧客マスター(kokyaku_m)レポート
商品マスター(syouhin_m)レポート
セル位置部分を参照すると、”顧客マスター”は、R11より、”商品マスター”は、R10より開始となっていることに気が付きます。
これは、読み込むファイルのヘッダー行(項目名)の有無により異なります。
”顧客マスター”はヘッダーあり、”商品マスター”はヘッダーなしです。
すなわち、ヘッダーがあれば、R11よりマッピング、なければ、R10よりマッピングとなります。
顧客マスターのCSV(ヘッダーあり)
商品マスターのExcel(ヘッダーなし)
名称未設定-2.jpg
名称未設定-1.jpg他のレポートとして”DelTable”レポートがあります。
これは、Ext_SQL実行用のレポートで、データベースに登録する前に、テーブルの中身をDeleteするために存在しています。
動作させる
本プロジェクトは、あらかじめ用意しておいたSRTファイルを、C:\InetPub\XCute12\temp フォルダーにコピーすることにより動作させます。
このような使い方をバッチ処理と呼んでおり、詳しくはXcuteヘルプマニュアルの、
設定とTips -> 運用テクニック(Xcuteをバッチで)を参照してください。
本サンプルを解凍すると、CSVフォルダに、読み取らせるファイルが存在しています。
KokyakuMaster.csvと、SyohinMaster.xlsです。
この2ファイルを、C:\CSVというフォルダを作成し、そのフォルダにコピーしてください。
各レポートを選択し、データが存在しないことを確認してください。
本サンプルを解凍したフォルダにある、SRTフォルダ内の、以下のファイルを C:\InetPub\XCute12\temp フォルダにコピーします。
BatchEntry_Z1111111111000.srt, BatchEntry_Z1111111111001.srt の2ファイルです。
コピーすると、即座にXcuteが動作します。
C:\InetPub\XCute12\tempに、BatchEntry_Z1111111111000.htmp, BatchEntry_Z1111111111001.htmpという、htmpファイルが出来上がったら、 処理は完了です。
各レポートを確認し、データが存在していればOKです。
正常に動作しなかった場合、ログを確認することにより原因を調べることができます。
ログファイルは、c:\Microlab\XCute12\log フォルダに、BatchEntry.Log として作成されます。
SRTファイルの詳細
記述の基本は、Xcuteマニュアル -> 設定とTips -> Tips -> 運用テクニック
にある、「XCuteをバッチで利用するには」を参照してください。
本プロジェクトを利用する場合は、以下のフォーマットで記述します。
P=BatchEntry&WriteSheet=ChkFile&Set_R6C1=ファイルのパス&Set_R6C2=ファイル&Set_R6C3=レポート名
Set_R6C1に、読み取らせるファイルが置かれるパスを記述する。
Set_R6C2に、拡張子を含めたファイル名を記述する。
Set_R6C3に、レポート名を指定する。
Set_R6C4に、データを登録する前にテーブルを削除するか指定する (yes/no)
Set_R6C5に、CSV脆弱性対策の有効無効を指定する(有効の場合1)
 ※「=」や「+」などから始まる文字を「'」でエスケープする処理
付属のBatchEntry_Z1111111111000.srtは、以下のような内容になっています。
P=BatchEntry&WriteSheet=ChkFile&Set_R6C1=C:\CSV\&Set_R6C2=SyohinMaster.xls&Set_R6C3=syouhin_m&Set_R6C4=yes
付属のBatchEntry_Z1111111111001.srtは、以下のような内容になっています。
P=BatchEntry&WriteSheet=ChkFile&Set_R6C1=C:\CSV\&Set_R6C2=kokyakuMaster.csv&Set_R6C3=kokyaku_m&Set_R6C4=no&Set_R6C5=1
運用について
運用時はsrtファイルをコピーするバッチを作成し、あらかじめC:\InetPub\procgi12\tempに存在するhtmpファイルを削除するなどの処理が必要となります。
付属の
copy.bat を参照してください。
C:\CSV\ フォルダに、取り込むExcelやCSVのファイルを置く運用となりますが、ここにファイルが存在していれば処理をするように本プロジェクトは作られています。よって、copy.batを定期的に、タスクスケジューラなどによる起動を繰り返すように設定して下さい。
以上