QRコードの内容をDocuWorks文書のユーザ定義属性に設定する方法

概要

DocuWorksのユーザ定義属性は、名前と値のセットで複数定義することが可能です。また、検索の対象とすることができるので、後に検索を行いたい場合に設定しておくと便利です。

eDocArrangementは、マクロ関数でDocuWorksの機能を呼び出すことにより、ユーザ定義属性を設定することが可能です。QRコードの内容を、ユーザ定義属性に設定する処理を自動化できます。

ここでは、以下のデータをQRコードにして印刷してあることを前提に、ご説明いたします。

また、処理対象の文書に、Noと日付のユーザ定義属性を設定し、D:\Testフォルダの下に、部署名と処理年月のフォルダを作成し、その下にNoをファイル名として保管する仕様とします。

設定

設定は、eDocArrangementのメニュー > ツール > 処理設定から行うことができます。 (ここでは、ポイントとなる部分を説明しますが、詳細はヘルプファイルを参照してください。)

  • point1

    最初は、設定一覧に何も表示されていません。左下の新規ボタンから設定を追加します。次に、右上の処理名から、「QRコード読み取り」を選択して、処理追加ボタンを押します。

  • 設定一覧に「設定1」が追加され、その下に「QRコード読み取り1」が追加されます。

    「QRコード読み取り1」をクリックすると設定内容が表示されます。下図のように設定を行います。

    QRコードの位置が特定出来る場合は、「範囲指定する」をチェックし、QRコードの位置をパーセント指定で入力します。

  • point2

    次に、右上の処理名から、「マクロ実行」を選択して、処理追加ボタンを押します。

    ここでは、QRコードの読み取り内容により、ユーザ定義属性を設定するマクロを実行します。

    マクロ欄に以下のマクロを記述します。(上図は全て表示できず右の方が隠れています)

    {%IF({%N_EXISTS(QRコード読み取り1.No)}=True,
      {%DW_SET_USER_ATTRIBUTE(No,{%N_DATA(QRコード読み取り1.No)})}
    ,)}
         
    {%IF({%N_EXISTS(QRコード読み取り1.日付)}=True,
      {%DW_SET_USER_ATTRIBUTE(日付,{%N_DATA(QRコード読み取り1.日付)},DATE)}
    ,)}
    

    このマクロを順に解説します。

    実際にユーザ定義属性を設定するマクロは、「DW_SET_USER_ATTRIBUTE」ですが、設定する値にQRコードの名前付きデータを指定するため、QRコードが正常に読めていなくてはなりません。

    そこで、IFマクロを使用して、名前付きデータが存在するかどうかのチェックを行い、存在した場合のみユーザ定義属性を設定するようにします。 IFマクロの書式は、「{%IF(条件,真の処理,偽の処理)}」です。

    「{%N_EXISTS(QRコード読み取り1.No)}」の部分が名前付きデータ「No」が存在するかどうかを調べるマクロです。存在すれば、「True」が返却されるので、「{%N_EXISTS(QRコード読み取り1.No)}=True」と条件を記述します。

    カンマで区切られた次の引数が、条件を満たしていた場合の処理になるので、カンマの後ろにユーザ定義属性の設定マクロを記述します。

    属性名に、「No」、属性値にQRコードから取得した名前付きデータ「No」の値を設定したいので、以下の記述になります。

    {%DW_SET_USER_ATTRIBUTE(No,{%N_DATA(QRコード読み取り1.No)})}
    

    最後に、IFマクロの3番目の引数をカンマで区切り、指定します。ここでは、条件を満たしていない場合の処理を記述しますが、この例の場合、何もしないので「)}」で閉じて、IFマクロが完結します。

    同様に名前付きデータ「日付」の属性設定のマクロも記述します。ほとんど同じ記述ですが、ユーザ定義属性の型を日付型で定義するところが違います。

    ユーザ定義属性の型を指定するには、「DW_SET_USER_ATTRIBUTE」の3番目の引数を指定します。日付型の場合は、「DATE」を指定します。

    {%DW_SET_USER_ATTRIBUTE(日付,{%N_DATA(QRコード読み取り1.日付)},DATE)}
    

    先ほどの「No」の設定では文字型で登録するため、3番目の引数は省略してあります。(3番目の引数を省略すると文字型で設定される)

  • point3

  • 次に、右上の処理名から、「文書移動」を選択して、処理追加します。

    設定一覧の「設定1」に「文書移動1」が追加されます。

    「移動先フォルダ」には、以下のように入力します。(上図は全て表示できず右の方が隠れています)

    D:\Test\{%N_DATA(QRコード読み取り1.部署)}\{%FORMAT({%N_DATA(QRコード読み取り1.日付)},yyyy_mm)}
    

    移動先フォルダに、マクロを記入することであらゆるパターンのフォルダ構成を実現できます。この例では、「{%N_DATA(QRコード読み取り1.部署)}」の部分がQRコード読み取りで読み取った名前付きデータ「部署」の内容に置き換わります。

  • point4

    次に、「{%N_DATA(QRコード読み取り1.日付)}」で名前付きデータ「日付」が置換され、その結果がFORMATマクロにより、「yyyy_mm」の書式に従って年_月の形式に編集されます。

    「{%FORMAT({%N_DATA(QRコード読み取り1.日付)},yyyy_mm)}」の部分になります。

    この例では、、最終的なフォルダは、

    D:\Test\1課\2005_01
    

    となります。

    また、ファイル名に、QRコードの名前付きデータ「No」の内容を付けたいので、「ファイル名をリネームする」にチェックをいれ、ファイル名の欄に、

    {%N_DATA(QRコード読み取り1.No)}.xdw
    

    と入力指定します。

    名前付きデータ「No」の内容が「X-001-035」とすると、付与されるファイル名は、「X-001-035.xdw」となります。

ここまでの設定で、QRコードを読み取り、QRコードの内容にしたがってフォルダ配信を行うことができます。

但し、QRコードが読み取れない場合、エラーになり、文書がそのまま残ってしまいます。

残った文書は毎回処理されてしまいますので、下図のように、エラーフォルダへの移動処理を追加します。

右上の処理名から、「文書移動」を選択して、処理追加ボタンを押します。

設定一覧の「設定1」に「文書移動2」が追加されます。

ここでは、「文書移動1」の処理で移動に失敗したファイルをそのままエラーフォルダに移動すればよいため、単純に移動先フォルダに「D:\Test\エラー」と入力します。

ここでは、QRコードの内容を展開するマクロは使用しないでください。使用すると再びエラーとなり移動は行われません。

設定で追加した一連の処理は、処理開始時に取得したファイルリストのファイルに対して処理を行います。処理の途中にフォルダに入ってきた文書はその回の処理では対象となりませんので、整合性は保たれます。

最後に自動監視の設定を行います。

設定一覧から「設定1」をクリックすると右側に基本設定のタブが表示されます。ここで、「フォルダ自動監視を行う」をチェックすると、監視設定のタブが表示されます。

「監視間隔」を設定し、「監視フォルダ名」に「D:\Test\スキャンフォルダ」と入力し追加ボタンを押すと、「監視フォルダ一覧」に追加されます。

以上で設定は完了です。保存ボタンを押して設定を保存します。

実行

フォルダの自動監視は、eDocArrangementのメニュー > 実行 > フォルダ監視を行うで、監視モードになります。

スキャンフォルダにQRコードが印刷された文書が入り、左図のように実行されます。

処理後にフォルダを確認します。

Testフォルダの下に、「1課」フォルダが作成され、さらに、「2005_01」フォルダが作成されています。

また、ファイル名には、Noの内容「X-001-035」が付与されています。

このファイルを開き、ユーザ定義属性を確認します。

「No」と、「日付」が設定されているのが確認できます。