お話した例では、最終的に、"スプール・ファイル名.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 : フォントを送信します。
&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 件のコメント:
コメントを投稿