状態取得書式は、処理の様々なステータスを取得します。

設定名取得

FORMAT1 {%GET(SettingName)}

処理中の設定名を取得します。

例1 実行中の設定名をログに出力します。

{%WRITE_LOG({%GET(SettingName)})}
処理名取得

FORMAT1 {%GET(ProcName)}

処理中の処理名を取得します。

例1 処理の終了メッセージをログに出力します。

{%WRITE_LOG({%GET(ProcName)}終了)}
オプション文字列取得

FORMAT1 {%GET(OptionString)}

オプション文字列を取得します。オプション文字列はプラグイン設定、及び、eDocArrangement2Commandの-oオプションで指定できます。

例1 オプション文字列をログに出力します。

{%WRITE_LOG(オプション文字列:{%GET(OptionString)})}
処理結果取得

FORMAT1 {%GET(ProcResult,処理名)}

処理結果を取得します。引き数の処理名の処理が正常終了した場合はTrue、異常終了した場合はFalseを返却します。

例1 マクロ実行1の処理結果をログに出力します。

{%WRITE_LOG({%GET(ProcResult,マクロ実行1)})}
コマンド実行結果取得

FORMAT1 {%GET(ProcExitCode,処理名)}

コマンド実行結果を取得します。処理名にはコマンド実行の処理名を指定します。コマンドのリターンコードが返却されます。

例1 コマンド実行1のリターンコードをログに出力します。

{%WRITE_LOG(コマンド実行1のリターンコード:{%GET(ProcExitCode,コマンド実行1)})}
ファイルループカウンタ取得

FORMAT1 {%GET(FileLoopCount)}

処理中ファイルのカウンタを取得します。

例1 処理中ファイルのカウンタを取得します。以下の例では、ファイルの繰り返し処理で、3番目のファイルを処理した場合に「3」と表示されます。

{%MSGBOX({%GET(FileLoopCount)})}
テキストループカウンタ取得

FORMAT1 {%GET(TextLoopCount)}

処理中テキストの行カウンタを取得します。ヘッダ行やスキップした行もカウントします。テキストファイル上の絶対的な行カウントとなります。

例1 処理中テキストの行カウンタを取得します。以下の例では、テキスト行の繰り返し処理で、3行目を処理した場合に「3」と表示されます。

{%MSGBOX({%GET(TextLoopCount)})}
レコードループカウンタ取得

FORMAT1 {%GET(RecordLoopCount)}

処理中レコードの行カウンタを取得します。

例1 処理中レコードの行カウンタを取得します。以下の例では、レコードの繰り返し処理で、3件目を処理した場合に「3」と表示されます。

{%MSGBOX({%GET(RecordLoopCount)})}
プロセスループカウンタ取得

FORMAT1 {%GET(ProcessLoopCount)}

処理中プロセスのカウンタを取得します。

例1 処理中プロセスのカウンタを取得します。以下の例では、プロセスリストの繰り返し処理で、3件目を処理した場合に「3」と表示されます。

{%MSGBOX({%GET(RecordLoopCount)})}
ループカウンタ取得

FORMAT1 {%GET(LoopCount)}

繰り返し処理中の現在のカウンタを取得します。

例1 繰り返し処理中の現在のカウンタを取得します。以下の例では、繰り返し処理で、3回目を処理した場合に「3」と表示されます。

{%MSGBOX({%GET(LoopCount)})}
ファイル数取得

FORMAT1 {%GET(FileCount)}

ファイルの繰り返し処理のファイル数を返却します。

このマクロはファイルの繰り返し処理の中で使用できます。

例1 ファイルの繰り返し処理のファイル数を返却します。以下の例では、ファイルの繰り返し処理で、3件のファイルを処理する場合に「3」をログに出力します。

{%WRITE_LOG({%GET(FileCount)})}
プロセス数取得

FORMAT1 {%GET(ProcessCount)}

FORMAT2 {%GET(ProcessCount,プロセス検索名)}

プロセス検索で見つかったプロセスの数を返却します。

このマクロのFormat1はプロセスの繰り返し処理の中で使用できます。

例1 プロセス検索で見つかったプロセスの数を返却します。以下の例では、プロセス検索で、3件のプロセスが見つかった場合に「3」をログに出力します。

{%WRITE_LOG({%GET(ProcessCount)})}
エラーメッセージ取得

FORMAT1 {%GET(ErrorMessage)}

発生したエラーの内容を取得できます。エラーの内容はエラー発生時に更新され、エラーの内容はいつでも取得することができます。

スケジューラー、及びサービスからの監視フォルダのファイル検索でエラーになった場合のエラーメッセージは取得できません。{%GET_ERROR_MESSAGE()}マクロを使ってください。

エラーメッセージ取得

FORMAT1 {%GET_ERROR_MESSAGE()}

発生したエラーの内容を取得できます。エラーの内容はエラー発生時に更新され、エラーの内容はいつでも取得することができます。

本マクロでは、スケジューラー、及びサービスからの監視フォルダのファイル検索でエラーになった場合もエラーメッセージが取得できます。

eDocArrangement2 スケジューラーのスケジュール設定のその他タブから設定できる「ファイル検索エラー時のマクロ」で使用可能です。

カレントエラー数取得

FORMAT1 {%GET(CurrentErrorCount)}

発生したエラーの数を取得します。ループ処理の階層内でカレント階層のエラー数が取得できます。低階層で発生したエラーは上位階層のカウント数にも加算されます。

以下の例では、繰り返し1の処理が1回処理され、繰り返し2の処理が2回処理されると以下の様な結果となります。

■繰り返し1(繰り返し回数1)
■繰り返し2(繰り返し回数2)
エラー発生!
{%WRITE_LOG(ErrorCount:{%GET(CurrentErrorCount)})}
エラー発生!
{%WRITE_LOG(ErrorCount:{%GET(CurrentErrorCount)})}

結果
ErrorCount:1
ErrorCount:1
ErrorCount:3
連番取得とカウントアップ

FORMAT1 {%GET_SEQ_NO_AND_COUNT_UP(連番設定名,[リセット判定日時処理名])}

引数に指定された連番設定の現在の番号を取得し、連番をカウントアップします。

連番設定でリセットを行う指定がある場合、引数のリセット判定日時処理名で指定された処理の開始日時を、リセット判定の日時に使用します。日付と連番を組み合わせた番号を扱う場合に使用してください。(例2参照)

本マクロで取得した番号は、メモリに保存され、後にGET_LAST_SEQ_NOマクロで取得できます。テキスト貼り付け後に、ファイル名等にも同じ番号を使用したい場合は、GET_LAST_SEQ_NOマクロを使用してください。

連番設定で増分にマイナス値を指定している場合、上限値を下限値として判定します。

例1 連番1の番号を取得します。番号は取得後にカウントアップされ設定ファイルが更新されます。

{%GET_SEQ_NO_AND_COUNT_UP(連番1)}

例2 「日付(yyyyMMdd) + "-" + 連番」(例 20191114-0001)のような日付と連番を組み合わせた番号を取得する場合。

日付と連番を組み合わせた番号を扱う場合、0時付近で処理を行った場合に、日付の取得と連番のリセットが日を跨いで処理してしまう可能性があります。そのため、処理開始時の日付取得マクロ(START_DATE)と、リセット判定日時処理名を指定した連番取得とカウントアップマクロを使用して、同じ日時を参照して処理を行うようにします。

{%START_DATE(ファイルの繰り返し1,yyyyMMdd)}-{%GET_SEQ_NO_AND_COUNT_UP(連番設定名,ファイルの繰り返し1)}
連番取得

FORMAT1 {%GET_LAST_SEQ_NO(連番設定名)}

引数に指定された連番設定の、最後に連番取得とカウントアップされた番号を取得します。 このマクロは直前で、GET_SEQ_NO_AND_COUNT_UPマクロを使用した場合に、取得可能となります。直前のGET_SEQ_NO_AND_COUNT_UPマクロで取得した値が取得できます。 番号の取得のみで何度呼び出しても番号は更新されません。

想定される使用例として、ページに貼り付けた連番をファイル名に使用したい場合に、テキスト貼り付けで、「{%GET_SEQ_NO_AND_COUNT_UP(連番1)}」を使用し、その後のファイル移動のファイル名の欄に、「{%GET_LAST_SEQ_NO(連番1)}.xdw」と記述してください。

例1 最後に取得とカウントアップを行った連番の番号を取得します。

{%GET_LAST_SEQ_NO(連番1)}
連番設定作成

FORMAT1 {%CREATE_SEQ_NO_SETTING(連番設定名,[基本項目ユーザーデータ名],[リセット項目ユーザーデータ名])}

引数に指定された連番設定名で新規に連番設定を作成します。

引数に指定された連番設定が存在する場合はなにもしません。

戻り値は連番設定を作成した場合True、作成しなかった場合Falseを返却します。

基本項目とリセットタイミングをユーザーデータを使って指定します。

連番設定を作成すると設定画面の連番設定に追加されます。

上限は設けておりませんので大量に登録することが可能ですが、設定画面を開いた時にツリーのノードが設定の数だけ並びます。

1000個ほど登録しても設定画面の速度低下はそれほどありませんが、それ以上必要とする場合は、テキストファイルで連番を管理するなどの設計をして頂くことを推奨いたします。

基本項目

基本項目ユーザーデータ名と以下の項目をキーにして値を指定します。

番号

次に取得される番号。指定しない場合は1になります。

増分

指定しない場合は1になります。

初期値

指定しない場合は1になります。

上限値

指定しない場合は上限を設定しません。

桁数

指定しない場合はゼロ埋めを行いません。指定した場合は指定した桁数になるようにゼロ埋めします。

連番共有ファイル

指定しない場合は連番共有を行いません。指定した場合は指定したパスに連番共有ファイルを作成します。

リセット項目

リセット項目ユーザーデータ名、インデックス番号、単位又はタイミングをキーに指定します。

年毎

タイミングは1月~12月のいずれかを指定できます。

{%SET_U(リセット,1,単位,年毎)}
{%SET_U(リセット,1,タイミング,1月)}

月毎

タイミングは1~31のいずれかを指定できます。

{%SET_U(リセット,1,単位,月毎)}
{%SET_U(リセット,1,タイミング,1)}

日毎

タイミングは指定しません。

{%SET_U(リセット,1,単位,日毎)}

指定日

タイミングは日付を指定します。(yyyy/MM/ddの形式)

{%SET_U(リセット,1,単位,指定日)}
{%SET_U(リセット,1,タイミング,2023/08/01)}

最終リセット日は、リセット項目ユーザーデータ名、最終リセット日(yyyy/MM/ddの形式)をキーに指定します。通常は指定しません。

{%SET_U(リセット,最終リセット日,)}

例1 連番設定「製造番号_A001」を作成します。

#連番設定 基本項目
{%SET_U(基本,番号,1)}
{%SET_U(基本,増分,1)}
{%SET_U(基本,初期値,1)}
{%SET_U(基本,上限値,)}
{%SET_U(基本,桁数,5)}
{%SET_U(基本,連番共有ファイル,C:\eDocArrangement\連番管理\連番.db)}
#毎年リセット
{%SET_U(リセット,1,単位,年毎)}
{%SET_U(リセット,1,タイミング,1月)}
{%SET_U(リセット,最終リセット日,)}
{%CREATE_SEQ_NO_SETTING(製造番号_A001,基本,リセット)}

以下、リセットの指定例

#毎月1日
{%SET_U(リセット,1,単位,月毎)}
{%SET_U(リセット,1,タイミング,1)}

#毎日
{%SET_U(リセット,1,単位,日毎)}

#2023/08/01
{%SET_U(リセット,1,単位,指定日)}
{%SET_U(リセット,1,タイミング,2023/08/01)}
連番設定ファイルの設定

FORMAT1 {%SET_SEQ_NO_SETTING_FILE([連番設定ファイル名])}

引数に指定されたファイルに連番設定を保存するように切り替えます。

連番設定作成マクロ(CREATE_SEQ_NO_SETTING)を使用する前に本マクロでDBファイルを指定すると、連番設定を指定したファイルに保存するようになります。

同時に連番取得とカウントアップ(GET_SEQ_NO_AND_COUNT_UP)マクロ等の連番関連のマクロも指定したファイルからデータの読み書きを行うようになります。

マクロで動的に連番設定を追加するような処理の場合に、外部ファイルに設定を保存することができ、設定ファイルから分離することができます。

連番設定ファイル名を省略するとeDocArrangement2の設定ファイルに連番設定を保存するようになります。

本マクロは処理の実行時のみ有効で実行終了時に無効となります。eDocArrangement2の設定画面の連番設定の保存先を変更するものではありません。

例1 連番設定を「D:\連番設定.db」に保存するようにする。

{%SET_SEQ_NO_SETTING_FILE(D:\連番設定.db)}

例2 連番設定をeDocArrangement2の設定ファイルに保存するようにする。

{%SET_SEQ_NO_SETTING_FILE()}
連番設定リスト取得

FORMAT1 {%GET_SEQ_NO_SETTING_LIST(格納用ユーザーデータ)}

引数に指定されたユーザーデータに連番設定リストを格納します。

ユーザーデータのキーは連番になります。

例1 連番設定リストをユーザーデータLISTに格納して、全ての連番設定名をログに出力する。

#連番設定リスト取得
{%GET_SEQ_NO_SETTING_LIST(LIST)}
{%LOOP L1 {%GET_USER_DATA_COUNT(LIST)}(
  {%WRITE_LOG({%GET_U(LIST,[L_IDX(L1)])})}  
)}
連番設定取得

FORMAT1 {%GET_SEQ_NO_SETTING(連番設定(基本)格納用ユーザーデータ,[連番設定(リセット)格納用ユーザーデータ],[連番設定名])}

引数に指定されたユーザーデータに連番設定を格納します。

格納される設定情報は、連番設定作成(CREATE_SEQ_NO_SETTING)で指定するユーザーデータと同じ仕様となります。

連番設定名を指定した場合は、以下の様にユーザーデータが格納されます。({%GET_SEQ_NO_SETTING(基本,リセット,連番1)}のように書いた場合)

基本

番号	1
増分	1
初期値	1
上限値
桁数	5
連番共有ファイル	C:\eDocArrangement\連番管理\連番.db
リセット

1
	単位	年毎
	タイミング	1月
最終リセット日	2024/01/01

連番設定名を省略した場合は、以下の様に全ての連番設定がユーザーデータが格納されます。({%GET_SEQ_NO_SETTING(基本,リセット)}のように書いた場合)

基本

連番1
	番号	1
	増分	1
	初期値	1
	上限値	
	桁数	5
	連番共有ファイル	C:\eDocArrangement\連番管理\連番.db
連番2
	番号	1
	増分	1
	初期値	1
	上限値	
	桁数	5
	連番共有ファイル	C:\eDocArrangement\連番管理\連番.db
リセット

連番1
	1
		単位	年毎
		タイミング	1月
	最終リセット日	2024/01/01
連番2
	1
		単位	年毎
		タイミング	1月
	最終リセット日	2024/01/01

連番設定名を省略してユーザーデータを1つだけ指定した場合は、以下の様に全ての連番設定がユーザーデータが格納されます。({%GET_SEQ_NO_SETTING(連番設定情報)}のように書いた場合)

連番設定情報

連番1
	番号	1
	増分	1
	初期値	1
	上限値	
	桁数	5
	連番共有ファイル	C:\eDocArrangement\連番管理\連番.db
	リセット
		1
			単位	年毎
			タイミング	1月
		最終リセット日	2024/01/01
連番2
	番号	1
	増分	1
	初期値	1
	上限値	
	桁数	5
	連番共有ファイル	C:\eDocArrangement\連番管理\連番.db
	リセット
		1
			単位	年毎
			タイミング	1月
		最終リセット日	2024/01/01

例1 連番設定「連番1」の内容をユーザーデータ「基本」と「リセット」に格納する。

{%GET_SEQ_NO_SETTING(基本,リセット,連番1)}

例2 全ての連番設定の内容をユーザーデータ「連番設定情報」に格納して、テキストファイルに出力する。

{%GET_SEQ_NO_SETTING(連番設定情報)}
{%SAVE_USER_DATA(D:\連番設定.txt,連番設定情報)}
連番設定存在チェック

FORMAT1 {%EXISTS_SEQ_NO_SETTING(連番設定名)}

引数に指定された連番設定が存在するか調べます。

戻り値は連番設定が存在する場合True、存在しない場合Falseを返却します。

例1 連番設定「製造番号_A001」が既に存在するか調べます。

{%EXISTS_SEQ_NO_SETTING(製造番号_A001)}
連番設定削除

FORMAT1 {%DELETE_SEQ_NO_SETTING(連番設定名)}

引数に指定された連番設定を削除する。

引数に指定された連番設定が存在しない場合はなにもしません。

戻り値は連番設定を削除した場合True、削除しなかった場合Falseを返却します。

連番共有がされていても連番共有ファイルは削除しません。

例1 連番設定「製造番号_A001」を削除します。

{%DELETE_SEQ_NO_SETTING(製造番号_A001)}
連番初期化

FORMAT1 {%RESET_SEQ_NO(連番設定名,[番号])}

引数に指定された連番設定をリセットします。

引数に指定された連番設定が存在しない場合はエラーとなります。

例1 連番設定「製造番号_A001」を初期値にする。

{%RESET_SEQ_NO(製造番号_A001)}
連番最終リセット日取得

FORMAT1 {%GET_SEQ_NO_LAST_RESET_DATE(連番設定名)}

引数に指定された連番設定の最終リセット日を取得します。

例1 連番設定「製造番号_A001」の最終リセット日を取得します。

{%GET_SEQ_NO_LAST_RESET_DATE(製造番号_A001)}
コマンド実行出力結果取得

FORMAT1 {%GET_COMMAND_OUTPUT(コマンド実行処理名,種別)}

コマンド実行で出力された標準出力、又は標準エラー出力の内容を取得します。 引数の種別には、「STD_OUT」又は「STD_ERROR」を指定します。 「STD_OUT」を指定した場合は標準出力、「STD_ERROR」を指定した場合は標準エラー出力の内容が取得されます。いずれもコマンド実行の設定で「標準(エラー)出力の内容を出力する」の設定が有効の場合にのみ取得可能です。

例1 「コマンド1」で実行されたコマンドの標準出力の内容を表示します。

{%MSGBOX({%GET_COMMAND_OUTPUT(コマンド1,STD_OUT)})}
分割データ取得

FORMAT1 {%GET_SPLIT_DATA(対象ファイルのフルパスファイル名,処理名)}

以下の処理でセットした分割データを取得します。

  • QRコード読み取り

  • OCR読み取り

  • アノテーション取得

本マクロはファイル移動・コピーで、分割マークのある頁で分割する場合に、フォルダ名、ファイル名で使用するマクロで使用可能です。

ページ分割されたファイルの移動・コピー先フォルダや、ファイル名に該当のページの分割データを使用できます。

引数の対象ファイルのフルパスファイル名には、ページ分割を行うXDW文書のフルパスファイル名を指定します。

引数の処理名には分割マークをつけた読み取り処理の処理名を指定します。

例1 「QRコード読み取り1」でセットされた分割データをファイル名にする場合

{%GET_SPLIT_DATA({%GET(FullPathFileName)},QRコード読み取り1)}.xdw
分割データ設定

FORMAT1 {%SET_SPLIT_DATA(対象ファイルのフルパスファイル名,処理名,ページ,分割データ文字列)}

分割データに任意のデータをセットします。

本マクロはファイル移動・コピーで、分割マークのある頁で分割するためのデータを作成します。

ファイル移動・コピーで分割するには、1ページ目に分割マークが必要です。1ページ目に分割マークが無いと「先頭ページに分割データがありません。」のエラーになります。また、分割マークは付けた順に使われますので、ページの繰り返しの中でページの順に付けてください。

例1 XDW文書の全てのページにページ番号で分割データを作成する。(この処理はページの繰り返し処理の中に記述してください。)

{%SET_SPLIT_DATA({%GET(FullPathFileName)},分割データ,{%DW_GET(PageLoopCount)},{%DW_GET(PageLoopCount)})}

例2 送付状が先頭にある文書など、1ページ目にQRコードが無い文書で、1ページ目に分割マークを付ける。(この処理はページの繰り返し処理の中に記述してください。)

{%IF({%DW_GET(PageLoopCount)}=1,
  {%SET_SPLIT_DATA({%GET(FullPathFileName)},先頭,1,先頭)}
,)}