QRコードの内容をテキストファイルに出力する例をご紹介いたします。
eDocArrangementのスクリプト処理では、VBS等のスクリプトを記述することが可能です。ユーザ様によって様々なデータ処理を求められる状況において、ベストマッチな処理機能を提供できます。
簡単なものであれば、Webサイトでご紹介するサンプル等を手直しして、ご利用いただけるかと思います。
今回ご紹介する例では、以下の仕様を想定してご説明いたします。
QRコードには、複数の項目を記載するため、名前付きデータ形式(項目名[データ])でテキストを作成します。注文番号、商品名、数量、金額、の4項目が必ず存在することとします。(ここでは、わかりやすく説明するため項目の名前に漢字を使っています。実際の運用では、情報量を減らすため、英文字1文字などに置き換えて運用して頂くのが最適です。)
1ページ1文書のデータを処理することとします。
以下のデータをQRコードにして印刷してあることを前提に、ご説明いたします。
また、処理済の文書は、C:\Testフォルダの下に、年フォルダを作成し、その下に月のフォルダを作成し、ファイル名を注文番号にして保管する仕様とします。
設定は、eDocArrangementのメニュー > ツール > 処理設定から行うことができます。 (ここでは、ポイントとなる部分を説明しますが、詳細はヘルプファイルを参照してください。)
point1
最初は、設定一覧に何も表示されていません。左下の新規ボタンから設定を追加します。次に、右上の処理名から、「QRコード読み取り」を選択して、処理追加ボタンを押します。
設定一覧に「設定1」が追加され、その下に「QRコード読み取り1」が追加されます。
「QRコード読み取り1」をクリックすると設定内容が表示されます。上図のように設定を行います。
QRコードの位置が特定出来る場合は、「範囲指定する」にチェックを入れて、QRコードの位置をパーセント指定で入力します。
point2
次に、右上の処理名から、「スクリプト実行」を選択して、処理追加ボタンを押します。
ここで、テキストファイルに出力するスクリプトを記述します。
以下、スクリプトです。
'------------------------------------------------------------------------------ 'QRコード情報テキスト出力スクリプト ' TechnoStyle,inc. ' 'テキストファイルにQRコードの内容を出力します。 '1文書1ファイルで出力します。名前付きデータをカンマ区切りで以下のように出力しま 'す。 '注文番号,商品名,数量,金額 ' '出力場所は、以下のスクリプトの「Const WriteFolderName = "C:\Test\データ\"」の '場所に出力されます。変更したい場合はパスを書き換えてください。 ' 'ファイルは、「注文番号.txt」で出力します。同名のファイルが存在した場合は、 '「注文番号_0001.txt」のように連番を付加したファイル名とします。 '------------------------------------------------------------------------------ Option Explicit Const WriteFolderName = "C:\Test\データ\" Const ForReading = 1, ForWriting = 2, ForAppending = 8 Call Main '------------------------------------------------------------------------------ 'メイン処理 '------------------------------------------------------------------------------ Sub Main Dim fs Dim wfile 'QRコードが一つもなかった場合は終了 --------------------------------------- If "{%SYNBOL_COUNT(QRコード読み取り1)}" = "0" Then Exit Sub End If Set fs = CreateObject("Scripting.FileSystemObject") '注文番号をファイル名にして保存 ------------------------------------------- Set wfile = Fs.CreateTextFile(GetFileName(WriteFolderName & _ "{%N_DATA(QRコード読み取り1.注文番号)}" & ".txt"), True) 'カンマ区切りでデータを出力 ----------------------------------------------- wfile.WriteLine "{%N_DATA(QRコード読み取り1.注文番号)}" & "," & _ "{%N_DATA(QRコード読み取り1.商品名)}" & "," & _ "{%N_DATA(QRコード読み取り1.数量)}" & "," & _ "{%N_DATA(QRコード読み取り1.金額)}" wfile.Close End Sub '------------------------------------------------------------------------------ '機能 ファイルの存在チェックを行い、ファイルが存在する場合はファイル名の ' 後ろに連番を付加し重複しないファイル名を作成し返却する。 '引数 vFileName ファイル名 '戻り値 重複しないファイル名 '------------------------------------------------------------------------------ Function GetFileName(vFileName) Dim fso Dim ItemArray Dim Extension Dim FileName Dim WkFileName Dim No Dim ZeroString 'ファイル名の拡張子を取得 ------------------------------------------------- ItemArray = Split(vFileName,".") Extension = ItemArray(UBound(ItemArray)) 'ファイル名の拡張子の前のパスを取得 --------------------------------------- FileName = Left(vFileName, Len(vFileName) - (Len(Extension) + 1)) No = 1 WkFileName = vFileName Set fso = CreateObject("Scripting.FileSystemObject") 'ファイルの存在チェック --------------------------------------------------- Do Until Not (fso.FileExists(WkFileName)) 'ゼロパディングの処理 ------------------------------------------------- If Len(CStr(No)) < 4 Then ZeroString = String(4 - Len(CStr(No)),"0") Else ZeroString = "" End If 'ファイル名に番号を付加 ----------------------------------------------- WkFileName = FileName & "_" & ZeroString & CStr(No) & "." & Extension No = No + 1 Loop 'ファイルを返却 ----------------------------------------------------------- GetFileName = WkFileName End Function
スクリプトの詳細については説明しませんが、以下の箇所を変更すると、カスタマイズが可能です。
「 C:\Test\データ\ 」 : テキストファイルの出力先です。環境によって任意に変更してください。
また、出力先のフォルダはあらかじめ作成しておく必要があります。
「 {%N_DATA(QRコード読み取り1.注文番号)} 」 : 出力されるテキストファイル名です。QRコードから読み取ったデータの名前を指定します。ここでは、注文番号になっています。
「 wfile.WriteLine ~」 : テキストに出力する内容です。ここではカンマ区切りで出力する記述になっています。項目名や、区切り文字などを変更すれば、カスタマイズができます。
次に、右上の処理名から、「文書移動」を選択して、処理追加します。 設定一覧の「設定1」に「文書移動1」が追加されます。
「移動先フォルダ」には、以下のように入力します。
C:\Test\保存\{%DATE(yyyy)}\{%DATE(mm)}\
実行時には {%DATE(yyyy)} の部分が年に、 {%DATE(mm)} の部分が月に置き換わります。
また、ファイル名に、QRコードの名前付きデータ「注文番号」の内容を付けたいので、「ファイル名をリネームする」にチェックをいれ、ファイル名の欄に、
{%N_DATA(QRコード読み取り1.注文番号)}.xdw
と入力します。
名前付きデータ「注文番号」の内容が「01234」の場合、付与されるファイル名は、「01234.xdw」となります。
ここまでの設定で、QRコードを読み取り、QRコードの内容にしたがってフォルダ配信を行うことができます。 但し、QRコードが読み取れない場合、エラーになり、文書がそのまま残ってしまいます。
この処理をDocuWorksDeskのサムネイル画面から行う場合は、文書が残るのをユーザが確認できますので、問題ないですが、フォルダ監視で自動化する場合には、「設定例2:QRコードの内容をDocuWorks文書のユーザ定義属性に設定する方法」の後半の エラー処理 を参照して、エラー文書の移動設定を行ってください。
実行すると以下のような結果になります。
保存フォルダの下に2005\04フォルダが作成され、2つの文書が移動されます。ファイル名には、注文番号が付与されています。
データフォルダには、2つのテキストファイルが作成されています。中身はそれぞれ、QRコードの内容がカンマ区切りで出力されています。