この設定は以下の2つの設定で構成されます。
マスタ登録
CSVファイルをデータベースにインポート。
保管振り分け
入力のファイル名からFAX番号を取得して、データベースの顧客マスタから該当のデータを取得後、顧客名でフォルダを作成して入力ファイルを移動。
マスタ登録
「80_CSV\10_in」フォルダを監視して、csvファイルを「マスタ.db」の顧客マスタにインポートします。処理後にcsvファイルを「80_CSV\20_処理済み」に移動します。
保管振り分け
以下の処理を行います。
「10_保管振り分け」フォルダを監視。
ファイル名の先頭から_までの文字(FAX番号)を取得する。
データベースの顧客マスタから、FAX番号で検索を行い、該当の顧客名を取得する。
顧客名でフォルダを作成して入力ファイルを移動。
C:\Homeの下に、以下のような構成でフォルダを作り、準備します。
フォルダ構成は以下の通りです。
以下のリンクから完成した設定をダウンロードしていただくことができます。
以下のフォルダに解凍すると設定が適用されます。
C:\Users\ユーザー名\AppData\Roaming\TechnoStyle\eDocArrangement2
グローバルデータの内容は以下の通りです。トップフォルダを変更する場合は、以下の定義を変更してください。グローバルデータは、「共通設定」から変更できます。
|
名前 |
値 |
|---|---|
|
TopFolder |
C:\Home\eDocArrangement2\Demo\データベース |
詳しい設定方法は、設定例(共通)グローバルデータとログの設定を参照して下さい。
ログ設定
|
実行ログファイル名 |
{%GET_G(TopFolder)}\90_System\90_Log\Log.txt |
|
エラーログファイル名 |
{%GET_G(TopFolder)}\90_System\90_Log\ErrorLog.txt |
|
文字コード |
SJIS |
|
方式 |
追加書き込み (日単位) |
DBファイル
C:\Home\eDocArrangement2\Demo\データベース\90_System\80_DB\マスタ.db
|
定義名 |
タイプ |
|---|---|
|
顧客マスタ |
table |
顧客マスタ
CREATE TABLE 顧客マスタ ( FAX番号 text not null, 顧客名 text, primary key (FAX番号) )
CSVファイルを顧客マスタを定義したデータベースのテーブルに登録します。登録後は処理済みフォルダに移動します。
共通ログ設定の内容でログを出力する。
メイン画面のファイルリストを対象に繰り返し処理を行う。
ループ毎にユーザーデータをクリアする。
データベースDemoで指定されたデータベースファイルに接続する。
接続後トランザクションを開始する。
顧客マスタのレコードは毎回全て削除してからCSVの全行を登録します。
DB接続1で接続したデータベースで以下のSQLを実行する。
delete from 顧客マスタ;
以下のファイルをテキスト読み込みします。
{%GET(FullPathFileName)}
|
ファイル形式 |
CSVファイル |
|
文字コード |
SJIS |
|
ヘッダ行 |
0 |
|
データ開始行 |
1 |
|
””の処理 |
完全 |
「テキスト読み込み1」でオープンされたテキスト行の繰り返し処理を行う。
DB接続1で接続したデータベースで以下のSQLを実行する。
insert into 顧客マスタ values({%GET_FIELD_VALUES_IN_SQL_VALUES(テキスト読み込み1,1,2)});
文書を以下の通り移動する。
|
移動元 |
{%GET(FullPathFileName)} |
|
移動先 |
{%GET_G(DemoTopFolder)}\データベース\80_CSV\20_処理済み |
移動先に同名の文書がある場合は、ファイル名に連番を付与する。
入力のファイル名からFAX番号を取得(先頭から_までの文字)して、データベースの顧客マスタから該当のデータを取得後、顧客名でフォルダを作成して入力ファイルを移動します。
共通ログ設定の内容でログを出力する。
メイン画面のファイルリストを対象に繰り返し処理を行う。
フルパスの一部(正規表現)の昇順でソートを行う。
ループ毎にユーザーデータをクリアする。
以下の条件を判定して処理を分岐する。
{%IF({%GET(FileLoopCount)}=1,True,False)}
データベースDemoで指定されたデータベースファイルに接続する。
接続後トランザクションを開始する。
以下のマクロを実行する。
#ファイル名からFAX番号を取得(先頭から_までの文字)
{%SET_U(属性,FAX番号,{%REGEX_CAPTURE(^([^_]+),{%GET(FileNameWithoutExtension)})})}
{%WRITE_LOG(select 顧客名 from 顧客マスタ where FAX番号 = {%GET_USER_DATA_IN_SQL_VALUES(属性)};)}
DB接続1で接続したデータベースで以下のSQLを実行する。
select 顧客名 from 顧客マスタ where FAX番号 = {%GET_USER_DATA_IN_SQL_VALUES(属性)};
このSQLは結果を返す。
「SQL実行1」でオープンされたテキスト行の繰り返し処理を行う。
以下のマクロを実行する。
{%SET_U(属性,顧客名,{%GET_FIELD_VALUE(SQL実行1,1)})}
{%WRITE_LOG(顧客名:{%GET_U(属性,顧客名)})}
以下の条件を判定して処理を分岐する。
{%IF({%GET_U(属性,顧客名)}!=,True,False)}
文書を以下の通り移動する。
|
移動元 |
{%GET(FullPathFileName)} |
|
移動先 |
{%GET_G(DemoTopFolder)}\データベース\70_保管\{%GET_U(属性,顧客名)} |
移動先に同名の文書がある場合は、ファイル名に連番を付与する。
文書を以下の通り移動する。
|
移動元 |
{%GET(FullPathFileName)} |
|
移動先 |
{%GET_G(DemoTopFolder)}\データベース\15_エラー |
移動先に同名の文書がある場合は、ファイル名に連番を付与する。
|
No. / 設定名 |
1 データベース_マスタ登録 |
2 データベース_保管振り分け |
|---|---|---|
|
実行対象 |
||
|
監視フォルダ |
{%GET_G(TopFolder)}\80_CSV\10_in |
{%GET_G(TopFolder)}\10_保管振り分け |
|
拡張子 |
*.csv |
*.xdw |
|
下位フォルダ |
対象にしない |
対象にしない |
|
スケジュール |
一定間隔 00:00:10 |
一定間隔 00:00:10 |
|
常時ログ出力 |
しない |
しない |
|
オープンチェック |
オープンチェックする。(3秒) |
オープンチェックする。(3秒) |
|
サイズチェック |
しない |
しない |
|
実行条件 |
以下の動画をご覧ください。