始めの言葉

「プリンターから印刷できて当たり前」と、ユーザーからもSIerからも軽視されがちなプリンターの世界ですが、実際にはお困りだったり、思ったような印刷結果が得られないまま我慢してお使いの皆様のために、今までの経験が役立てばと、このブログを立ち上げました。印刷の基本から、応用情報、問題の解決方法を情報発信すると共に、PDF化など、これからどうするかについても、ご相談に乗れれば幸いです。ご質問はコメントでお寄せください。

2018年6月16日土曜日

AS/400 プリンティングに求められるソリューション 第42回 - ROBOTを使った処理の自動化 - 5 -

前回までのお話で、予め定義した条件に合致するスプールが OUTQ に投入されたことを ROBOT が検知すると、予め定義したアクションが実行されるという、Mapping を使った処理の自動化を行う過程をご理解いただけましたでしょうか?
お話した例では、最終的に、"スプール・ファイル名.pdf" というファイル名の PDF ファイルが、IFS 上の特定のフォルダーに生成されたわけですが、通常の業務に使用するには、これでは不十分です。
例えば、次のような課題があります。
- スプール・ファイル名は一定の名前なので、"スプール・ファイル名.pdf" というファイル名では、PDF ファイルが生成される度に上書きされてしまう。例えば、システム時間、それも秒単位のタイム・スタンプの値を含む PDF ファイル名にする必要がある。
- 生成した PDF ファイルは印刷するので、ファイル・サーバーに転送する必要はないが、再印刷できるようにするためには、短期間、IFS 上に保存しておく必要がある。そのためには、やはり PDF ファイルには固有のファイル名を付ける必要がある。
- IFS 上に PDF ファイルが保存されていくだけでは、AS/400 の HDD を圧迫してしてしまう。そこで、PDF ファイルが生成されたら、ファイル・サーバーに FTP 転送して、IFS 上からは削除する必要がある。

"MAPCPYSPLF" コマンドを使って PDF ファイルを生成する時のファイル名に組み込める値に使用できる "ROBOT変数" には、"- ROBOTを使った処理の自動化 - 3 -" でお話したもの他に、次の変数があります。
&MAPNAM : Mapping フォーマット名をセットします。
&MAPSEQ : Mapping フォーマット・シーケンスまたは処理モードをセットします。
&MAPMOD : 処理モードをセットします。
&MAPSUP : 元のスプール・ファイルを削除するかどうかセットします。
&MAPSAV :マッピングされたスプール・ファイルを保存するかどうかをセットします。
&SNDFDP : オーバーレイを送信します。
&SNDPOL : フォントを送信します。
これらを見るとお分かりのように、スプール毎に変化するような値は見当たりません。

そこで、タイム・スタンプを含んだファイル名を持つ PDF ファイルを、ROBOT を使って自動的に生成させるには、CL なり、RPG を使って PDF ファイルを生成するたプログラムを用意します。そして、そのプログラムをアクションとして定義します。アクションの定義では "- ROBOTを使った処理の自動化 - 3 -" の中でお話した手順を繰り返すことにより、複数のステップを定義することができますが、残念ながら "ROBOT変数" 以外の変数はステップを跨って有効になることがありません。そのため、変数の定義から始まって、その変数を使った処理までカバーする 1 本のプログラムを CALL するように定義します。
DEMOLIB にある MAPPOPC というプログラムを Call するアクション
PDF ファイルをファイル・サーバーに FTP 転送する際も、同様の考え方で対応します。

0 件のコメント:

コメントを投稿