QRコードの内容を、マクロを用いてテキストファイルに出力する方法をご紹介いたします。
eDocArrangementに搭載されている独自のマクロを用いることで、ユーザ様のご要望に合った柔軟な処理が可能となります。
ここでは、以下のようにXDW文書に貼られたQRコードの内容をマクロで読み取り、先頭の注文番号をファイル名としたCSVファイルに出力するという処理について説明いたします。
また、フォルダを自動作成する処理についても説明します。
Cドライブの下に、以下のような構成でフォルダを作成しておきます。
最初は、設定一覧に何も表示されていません。左下の新規ボタンから設定を追加します。監視設定では以下の様に設定します。
監視フォルダには「{%GET_GLOBAL_DATA(TopFolder)}」というマクロが使用されています。
グローバルデータで「TopFolder」に「C:\Home\Demo\QR読み取り」を定義してあるので、処理の実行時に「C:\Home\Demo\QR読み取り」と置換されます。
グローバルデータについては、 設定例(共通)グローバルデータとログの設定 を参照して下さい。
右上の「処理名」から「QRコード読み取り」を選択し、処理追加します。
右上の「処理名」から「マクロ実行」を選択し、処理追加します。
左の設定一覧上の名前を「CSV出力」と変更します。
マクロ欄には、左図のようなマクロを記入します。(これは任意ですが、マクロの上に「#コメント」で各処理の内容を書いておくと、後でわかり易いでしょう。)
それぞれのマクロについて説明します。
#QRコードの内容をカンマで分割
{%SPLIT({%P_DATA(QRコード読み取り1.1)},\,,分割結果)}
↑ SPLITマクロで、QRコードに書かれたカンマ区切りの4つのデータを分割し、「分割結果」というユーザーデータ(変数)に分類します。
{%SET_U(属性,注文番号,{%GET_U(分割結果,1)})} {%SET_U(属性,商品名,{%GET_U(分割結果,2)})} {%SET_U(属性,数量,{%GET_U(分割結果,3)})} {%SET_U(属性,金額,{%GET_U(分割結果,4)})}
↑ SET_Uマクロでユーザーデータに名前を付与し、そこへ上記で得られたそれぞれの分割結果を当てはめます。こうしておけば、処理内容がわかりやすくなります。
%SET_U は %SET_USER_DATA の略です。今回のように同様のマクロを複数書く場合に、字数が少なくなり便利です。eDocArrangementにおけるユーザーデータには常に2つの名前を付けます。ここでは、「属性」という大分類の中に、「注文番号」「商品名」「数量」「金額」と小分類の名前をつけています。
{%LOG_OUT({%GET_U(属性,注文番号)})}
↑ LOG_OUTマクロにより、注文番号を取得できたかどうか、ログで確認することができます。
このようにして得られた「注文番号」を、後の処理でファイル名に使用することができます。
#csvフォルダ作成 {%CREATE_FOLDER({%GET_GLOBAL_DATA(TopFolder)}\30_csv)}
↑ CREATE_FOLDERマクロで、作成したテキストファイルの移動先フォルダを自動作成できます。フォルダ名は、30_csvとします。
#csvファイル出力 {%SET_U(Temp,1,{%P_DATA(QRコード読み取り1.1)})} {%FILE_WRITE({%GET_GLOBAL_DATA(TopFolder)}\30_csv\{%GET_U(属性,注文番号)}.csv,Temp,OUTPUT)}
↑ 最後の2行は、CSVファイル書き込みのためのマクロです。
SET_Uマクロで、読み取ったQRコードの内容を書き込むためにユーザーデータにセットします。
FILE_WRITEマクロで、csvファイルを上記で作成したフォルダに作成します。
「{%GET_GLOBAL_DATA(TopFolder)}\30_csv\{%GET_U(属性,注文番号)}.csv」はCSVファイルの作成先のフルパスファイル名。実行時に「{%GET_U(属性,注文番号)}」がQRコードから取得した注文番号に置き換わります。
「Temp」は書き込み内容をセットしたユーザーデータ名、
「OUTPUT」は「同じ名前のファイルがあれば上書きする」という意味です。
最後に、設定画面最下部の「マクロ実行の条件を指定する」をチェックし、条件欄で右クリック>読み取りデータ書式>検出データ存在チェック を選択しマクロを貼り付けます。こうしておくことで、QRコードが読み取れた場合のみ、上記の処理が動きます。
処理済みファイルを移動する設定です。
右上の「処理名」から「文書移動」を選択し、処理追加します。
移動先フォルダには、以下のように入力します。
{%GET_GLOBAL_DATA(TopFolder)}\20_処理済\{%DATE(yyyy)}\{%DATE(mm)}
「20_処理済み」フォルダの下にDATEマクロで年、月のフォルダを自動作成します。
その他の設定については、左の画像をご参照下さい。
QRコードが読み取り出来なかった場合のエラー処理の設定です。
文書移動1でQRコードが読み取れた場合に文書移動がされますので、文書移動2では文書が既に移動されていて存在しない場合は何もしません。文書移動1で文書が移動されなかった場合に、文書移動2の処理が実行されます。
右上の「処理名」から「文書移動」を選択し、処理追加します。
その他の設定については、左の画像をご参照下さい。
実行すると以下のような結果になります。
新たに\30_csvフォルダが作成され、その中に、QRコードから読み取った注文番号をファイル名としたcsvファイルが作成されています。
csvファイルを開くと、QRコードの内容がカンマ区切りで書かれています。