監視フォルダに格納されたXDW文書からテキストアノテーションを読み取り、見つかったアノテーションでフォルダを作成し移動します。
実行すると以下の様に動作します。
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 |
方式 | 追加書き込み (日単位) |
XDW文書のページ1からテキストアノテーションを読み取り、見つかったアノテーションでフォルダを作成し移動します。
共通ログ設定の内容でログを出力する。
メイン画面のファイルリストを対象に繰り返し処理を行う。
ループ毎にユーザーデータをクリアする。
DocuWorksファイルを読み書き可能でオープンする。
バインダーを新規作成する場合は、ページ最大サイズでカラーは青とする。
「XDW文書オープン1」でオープンされた文書のページ1からアノテーションを取得する。
種類 | テキスト | 対象 | ページ直下グループ内カスタム上 |
---|
以下の条件で検索する。
.NET Frameworkの正規表現では「(.+)」と書くと改行以外の文字となりますが、Windowsでは改行は\r(Carriage Return)と\n((Line Feed))となっており、正規表現の改行は\nのみを表すという仕様になっています。
そのため「(.+)」と書くと\n以外の文字ということになるので、\rは対象となってしまいます。
eDocArrangement2では\rを含んだ文字をファイル移動の移動先やファイル名に使用した場合、自動で削除されますが、取得した値を文書属性などに使用する場合は\rを含んだままになってしまいます。
ですので、「([^\r\n]+)」と書くことで\r及び\nを除く文字と言う意味になり、改行が入力された場合にも\rが含まれないようになります。
属性 | 比較式 | 値 | 条件 |
---|---|---|---|
テキスト | 正規表現 | 部署:([^\r\n]+) | OR |
以下のマクロを実行する。
{%SET_U(属性,部署名,{%GET_U(DWアノテーション取得1,1,CapturedTexts,1,1)})} {%WRITE_LOG(部署名:{%GET_U(属性,部署名)})}
「XDW文書オープン1」でオープンされた文書をクローズする。クローズ前に文書を保存しない。
バインダー内の文書、オリジナルデータを追加する場合は、末尾に追加する。
以下の条件を判定して処理を分岐する。
{%IF({%GET_U(属性,部署名)}!=,True,False)}
文書を以下の通り移動する。
移動元 | {%GET(FullPathFileName)} |
---|---|
移動先 | {%GET_G(TopFolder)}\20_保管\{%GET_U(属性,部署名)} |
ファイル名を「{%DATE(yyyyMMdd_HHmmss_fff)}.xdw」に変更する。
移動先に同名の文書がある場合は、ファイル名に連番を付与する。
文書を以下の通り移動する。
移動元 | {%GET(FullPathFileName)} |
---|---|
移動先 | {%GET_G(TopFolder)}\15_エラー |
移動先に同名の文書がある場合は、ファイル名に連番を付与する。
以下の動画をご覧ください。