日付印のあるページを複製

概要

監視フォルダに格納されたXDW文書の全てのページから日付印を検索して、見つかったページを別ファイルに複製します。

複製するファイルは、日付印の上欄の内容でフォルダを作成して、下欄の内容をファイル名にします。

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

eDocArrangement2
10_日付印で複製
文書_日付印(複数)
日付印のあるページを複製
30_担当別複製済み
(部署名)
(担当者名)
(担当者名).xdw

設定の前準備

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

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

日付印のあるページを複製_フォルダ構成.zip

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

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

  • C:\Home\eDocArrangement2\Demo\日付印のあるページを複製
    • 10_日付印で複製
      • 作業実績110217_133505-3.xdw
      • 作業実績110217_133505-3.zip
    • 15_エラー
    • 20_処理済み
    • 30_担当別複製済み
    • 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
    Loop File

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

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

  • XDW文書オープン1
    Open DocuWorks File

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

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

  • ページの繰り返し1
    Loop DocuWorks Page

「XDW文書オープン1」でオープンされた文書のページを先頭から繰り返し処理を行う。

  • DWアノテーション取得1
    Get Annotations

「XDW文書オープン1」でオープンされた文書のページ{%DW_GET(PageLoopCount)}からアノテーションを取得する。

種類

日付印

対象

ページ直下グループ内カスタム上

以下の条件で検索する。

属性

比較式

値

条件

上欄のテキスト

正規表現

(.+)

OR

下欄のテキスト

正規表現

(.+)

AND

  • アノテーションの繰り返し1
    Loop DocuWorks Annotation

DWアノテーション取得1を対象に、先頭から繰り返し処理を行う。

  • 部署名取得
    Macro Execute

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

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

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

#複製先フォルダ
{%SET_U(wk,path,{%GET_G(TopFolder)}\30_担当別複製済み\{%GET_U(属性,部署名)}\{%GET_U(属性,氏名)})}
{%CREATE_FOLDER({%GET_U(wk,path)})}

#出力ファイル名
{%SET_U(wk,path,{%GET_U(wk,path)}\{%GET_U(属性,氏名)}.xdw)}

#ページの複製
{%DW_EXTRACT_PAGE(XDW文書オープン1,{%GET_U(wk,path)})}
  • 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_処理済み

ファイル名を「{%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秒)

サイズチェック

しない

実行条件

動作確認

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