xml:space="preserve">
注文書 9 申し込み書 プラン A

テキストアノテーションで振分け

概要

監視フォルダに格納されたXDW文書からテキストアノテーションを読み取り、見つかったアノテーションでフォルダを作成し移動します。

実行すると以下の様に動作します。

eDocArrangement2
10_振分け
アノテ
文書.xdw
テキストアノテーションで振分け
20_保管
(読み取りした部署名)
アノテ
(日付).xdw

設定の前準備

C:\Homeの下に、以下のような構成でフォルダを作り、準備します。

フォルダ構成のダウンロード

テキストアノテーションで振分け_フォルダ構成.zip

Cドライブのルートに解凍してください。

フォルダ構成は以下の通りです。

  • C:\Home\eDocArrangement2\Demo\テキストアノテーションで振分け
    • 10_振分け
      • 新規 DocuWorks文書.xdw
      • 新規 DocuWorks文書.zip
    • 15_エラー
    • 20_保管
    • 90_System
      • 90_Log

設定

以下のリンクから完成した設定をダウンロードしていただくことができます。

設定ファイルのダウンロード

テキストアノテーションで振分け_設定.zip

以下のフォルダに解凍すると設定が適用されます。

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からテキストアノテーションを読み取り、見つかったアノテーションでフォルダを作成し移動します。

共通ログ設定の内容でログを出力する。

ファイルの繰り返し1

Loop File

メイン画面のファイルリストを対象に繰り返し処理を行う。

ループ毎にユーザーデータをクリアする。

XDW文書オープン1

Open DocuWorks File

DocuWorksファイルを読み書き可能でオープンする。

バインダーを新規作成する場合は、ページ最大サイズでカラーは青とする。

DWアノテーション取得1

Get Annotations

「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

部署名取得

Macro Execute

以下のマクロを実行する。

{%SET_U(属性,部署名,{%GET_U(DWアノテーション取得1,1,CapturedTexts,1,1)})}

{%WRITE_LOG(部署名:{%GET_U(属性,部署名)})}

XDW文書クローズ1

Close DocuWorks File

「XDW文書オープン1」でオープンされた文書をクローズする。クローズ前に文書を保存しない。

バインダー内の文書、オリジナルデータを追加する場合は、末尾に追加する。

条件分岐1

If

以下の条件を判定して処理を分岐する。

{%IF({%GET_U(属性,部署名)}!=,True,False)}

満たしている場合

If Then

ファイル移動1

Move File

文書を以下の通り移動する。

移動元 {%GET(FullPathFileName)}
移動先 {%GET_G(TopFolder)}\20_保管\{%GET_U(属性,部署名)}

ファイル名を「{%DATE(yyyyMMdd_HHmmss_fff)}.xdw」に変更する。

移動先に同名の文書がある場合は、ファイル名に連番を付与する。

満たしていない場合

If Else

ファイル移動2

Move File

文書を以下の通り移動する。

移動元 {%GET(FullPathFileName)}
移動先 {%GET_G(TopFolder)}\15_エラー

移動先に同名の文書がある場合は、ファイル名に連番を付与する。

監視設定(eDocArrangement 2 Schedulerの設定)

No.
設定名
実行対象
監視フォルダ
拡張子
下位フォルダ
スケジュール
常時ログ出力
オープンチェック
サイズチェック
実行条件
1
テキストアノテーションで振分け
{%GET_G(TopFolder)}\10_振分け
*.xdw
対象にしない
一定間隔
00:00:10
しない
オープンチェックする。(3秒)
しない

動作確認

以下の動画をご覧ください。