[FAQ/運用編] IBM i

ライターの管理

「ライター」とはIBM i 側からPCやPCサーバーへ向けての自動保管を送信するドライバーの一種です。

IBM i の特定の出力待ち行列に投入されたスプールを自動的に
IBM i のIFSに保管したり、PCやPCサーバーに自動転送したりするために使用します。
自動印刷のためにはこのライターは使用しません。

このライターに比較してPC側のクライアント・モジュールにもライターがあります。
PC側からのライター起動は定期的な短い時間のあいだに
IBM i の指定された出力待ち行列のスプールを取得しにいってダウンロードします。
これに対してIBM i 側のライターは 指定された「遠隔アドレス」に強制的に送信します。

つまりSpoolライターには

  1. IBM i 側からPCへダウンロードする。
  2. PC側からIBM i のスプールをダウンロードする。

という2つの機能が用意されています。
このうち、ここで解説しているのは 1.の項に当たります。
IBM i 側から 強制的に自動ダウンロードさせたいときのみにこの機能は使用します。
また送信の相手は つねに起動されて受信が可能な状況でなくてはなりません。
個人PCのように電源がOFFの状態もありうるような相手に対して
IBM i からのライターによる送信は指定すべきでははありません。
送信先がOFFの状態であればライター送信に予測できない問題が生じる可能性があります。

適用業務App 出力待ち行列 ライター PCサーバーなど

ライターによる印刷とLPR印刷との違いは?

ライター印刷はPCクライアントやPCサーバーに
Spoolライターのクライアント・モジュールを 導入しておいて、
ライターがPC側から印刷待ち行列にスプールが投入されるのをつねに監視していて
スプールが投入されるとIBM i でHPT変換されたスプールが、PCへ ダウンロードされて印刷されます。
つまりSpoolライターのPCクライアント・モジュールが印刷エミュレータとして機能します。
これに対して、LPR印刷でもよく似た処理となりますが、
PCクライアントに何らかの 印刷エミュレータは必要ありません。
IBM i 側の LPR がLPDプリンタ・サーバーへ 直接、スプールを送信するからです。

ライターを使う利点
印刷だけでなくPDF保管やテキスト保管も自動的に行うことができる。
PC側のライターを使用するPCに接続されているプリンタであれば
どのような プリンタにも印刷することができる。
LPD をプリンタ・サーバーに導入する必要がない。
LPR 印刷を行う利点
PCクライアントに印刷エミュレータなどを導入する必要がない。
(SpoolライターのPCモジュールも不要)
IBM i 側からの操作だけで印刷出力を指示することができる。
印刷出力の管理をIBM i の中だけで集中して行うことができる。
LPD対応のネットワーク・プリンタであればプリンタ・サーバーが無くても印刷できる。
ライターとLPR印刷の混合について
同じ印刷待ち行列(OUTQ) にライターと LPR印刷を同時に割り振ることはできません。

LPRライターJOBの活動状況を見るには?

LPRライターJOB の活動状況は WRKACTJOB または Spoolライターの
メニューで 「F5 = 活動状況」キーを押すと参照することができます。

下記はその様子を現してしますがサブ・システム SPOOLWTR の配下で
PGM-LPRWTR で「LPRxxxxxxx」のように表示されている JOBがLPRライターJOBです。

状況が「DEQW」になっているのはデータ待ち行列のデータを待ち続けていることを表しています。

保管ファイル名の指定

1. ローカルPCに保管する場合
今、使用中のローカルPCに保管する場合は最大256文字以内で
保管ファイル名をフルパスで拡張子も付けて指定します。
【例】 C:\Temp\MyText.txt
のように必ずファイル名と拡張子まで付加してください。
2. IBM i のIFSに保管する場合
「/」を使ってIBM i のIFS (統合化ファイル・システム)に保管することができます。
【例】 /A001/MYTEXT.TXT
フォルダーの区切り文字に「/」が使用された場合はIBM i のIFSへの保管 と見なされます。
IBM i IFSのファイル名の指定は CCSID によっては表示の文字化けなどが起きる可能性があります。
障害を避けるためにも 大文字での登録 をお勧め致します。

スプールを上書きせずに保管するには?

ライターによってスプールを指定した「保管ディレクトリー」に保管する場合、
「保管ディレクトリー」が静的な固定の名前であれば、
つねに同じ名前のファイルとして 上書きされて保管されることになります。
次から次へとスプールがダウンロードされてきても最後のスプールだけが保管されることになります。
このようなひとつの同じファイルに保存するのではなく、追加として保存したい場合は、
「保管ディレクトリー」の名前に次の予約語を使用することができます。

自動連番 ( %0xd )

「保管ディレクトリー」の名前に「%0xd」(xは任意の数字)を予約語として含めると、
ファイル名に自動連番を行うことができます。
%0x の x は 1〜9の連番の桁数 を 指定します。

【例】
  • C:\MyText%02d.txt
  • C:\MyText01.txt, C:\MyText02.txt, ....

ユーザー ( %USER )

「%USER」はスプールの ユーザー識別 に置き換えられます。

【例】
  • C:\My%USERText.txt
  • C:\MyQUSERText.txt

ジョブ名 ( %JOB )

「%JOB」はスプールの ジョブ名 に置き換えられます。

【例】
  • C:\My%JOBText.txt
  • C:\MyDSP01Text.txt

スプール番号 ( %SPLNO )

「%JOB」は 4桁のスプール番号 に置き換えられます。

【例】
  • C:\My%SPLNOText.txt
  • C:\My0025Text.txt

日付 ( %DATE )

「%DATE」は 8桁のスプールの日付 に置き換えられます。
本日の日付でないことに注意してください。
スプールが出力された日付(20YYMMDD)が保管されます。

【例】
  • C:\My%DATEText.txt
  • C:\My20040531Text.txt

時刻 ( %TIME )

「%TIME」は 8桁のスプールの時刻 に置き換えられます。
現在の時刻でないことに注意してください。
スプールが出力された時刻(時分秒)が保管されます。

【例】
  • C:\My%TIMEText.txt
  • C:\My123025Text.txt

予約語の複合使用

上記の予約語は複合して同時に指定することができます。
例えば日付と時刻を組み合わせて

  • C:\My%DATE_%TIMEText.txt
  • C:\My20040531_123025Text.txt

とすることができます。

ライターが保管される場所は?

登録されたライターはライブラリー QUSRTEMP の
WRITERD という名前のファイルに保管されています。

LPR の動作の原理と注意

LPR は次のように最初に各プリンターに適合する印刷制御コードを送信してから
続いて実際の印刷ストリーム(スプール・ファイル)をプリンターへ送信します。
LPR とはプリンターとの会話の手段でしかありません。
実際のプリンターの制御を行うのは印刷制御データです。
印刷制御データは各社のプリンター・メーカーによって異なるので
プリンター・メーカーやプリンター製品、印刷仕様別に SPOOLWTR/QWSCSRC の
メンバーとして登録しておけば、各社のプリンターへ対応することができるようになっています。

LPRの流れ

ESC/P ( Epson Standard Code for Printer )

各社の印刷制御コードの中でも比較的、普及しているのが セイコー・エプソン 社の ESC/P です。
その他のメーカーであっても ESC/P を独自に拡張している例もあります。( XEROX )
ただし ESC/P そのものは初期のものであるため機能的に充実しているわけではありません。
用紙サイズや用紙の方向も指定することはできません。

在宅ワークやテレワークでSpoolライターVer5.0を活用する簡単な方法はありますか?

在宅ワークでは「OntheWeb」によるブラウザによるスプールの閲覧が最も役に立ちます。
しかし通常は印刷を指示するとスプールはプリンタに出力されてしまうので OUTQには残りません。
そこでプリンタを停止させてやればスプールはOUTQに残りますので いつでもOntheWebで自宅からでもPDFを参照することができるようになります。

[注意] OntheWebをエンド・ユーザーがご使用になるには
必ず WRKSPLAUTコマンドを使ってユーザー別に
閲覧可能なOUTQを制限してください。

[ヒント] エンド・ユーザーの特殊権限に *SPLCTL(赤字)の特殊権限がない場合は
他のユーザーのスプールを見ることはできません。
これは i5/OSによって自動的に制限されます。