IBM i V7.5以降スプールファイルをCPYSPLFでPDF化する方法!
Question
IBM i (AS/400)OS標準機能でどこまで実現できるのかを検証したく、スプールファイルをCPYSPLFコマンドでPDF化する方法を試してみたいと思っています。
ネットで検索するとQCCSIDが65535か5026の場合、ジョブQCTXDMONをCCSID:5035で起動しなければいけないとの情報がありました。
IBM i (AS/400)v7.5でQCCSID:65535環境なのですがWRKACTJOBで確認してもジョブQCTXDMONが見つかりません。
何か特別な手順が必要なのでしょうか。
Answer
IBM i (AS/400)v7.5では5770-TS1でのPDF化にて仕様変更がありました。
Am I Using Transform Services (5770TS1)
https://www.ibm.com/support/pages/node/7243029
----------------------------
Both QCTXMGR and QCTXDMON jobs run under QSECOFR user profile.
NOTE: Prior releases the QCTXDMON runs under QUSER user profile.
(機械翻訳)
QCTXMGRジョブとQCTXDMONジョブはどちらもQSECOFRユーザープロファイルで実行されます。
注:以前のリリースでは、QCTXDMONはQUSERユーザープロファイルで実行されていました。
----------------------------
IBM i (AS/400)v7.4未満の環境ではジョブQCTXDMONが存在しますが、IBM i (AS/400)v7.5からはジョブQCTXDMONの実行ジョブがQUSERからQSECOFRに変わっており、内部的な起動方法が変更されています。
CPYSPLFコマンドを実行したジョブからQCTXMGRが投入され、必要に応じてジョブQCTXDMONが実行されるようになりました。
これによりIBM i (AS/400)v7.5以降の環境では、あくまでも事前開始ジョブとしてのQCTXDMONは存在しないので、ジョブQCTXDMONをCCSID:5035で起動させるための手順は不要になります。
しかし、CPYSPLFコマンドを実行したジョブの環境の影響を受けますので、CHGJOB CCSID(5035) と実行してからCPYSPLFコマンドを実行してください。
ご参考までに、IBM i v7.5以降でのスプールファイルのPDF化手順をご案内します。
ここでは、WRKACTJOB OUTPUT(*PRINT) にて出力されるスプールファイルをPDF化する手順になります。
<前提>
IBM i (AS/400)OS標準機能でスプールファイルをPDF化するには、下記2つのライセンス・プログラムが必要です。
- IBM TRANSFORM SERVICES FOR I (5770-TS1 *BASE) (無償)
- 変換-AFP からPDF への変換 (5770-TS1 Option1) (無償)
インストール状況は次のように確認します。
GO LICPGM
→「10.導入済みライセンス・プログラムの表示」
<手順(IBM i (AS/400)v7.5以降の場合)>
事前にシステム値を変更してください。
※オブジェクトが存在せずエラーになってもそのまま登録できます。
システム値 . . . . . . : QIGCCDEFNT
記述 . . . . . . . . . : 2バイト・コード・フォント
コード化フォント名 . . . . . : X0M32F
ライブラリー . . . . . . . : QFNT61システム値 QCCSID の値を確認してください。
※システム値のCCSIDが「65535」或は「5026」の場合ではCPFCE06が出ます。以下の順に従って別途設定が必要です。
システム値QCCSIDの確認コマンド:
DSPSYSVAL SYSVAL(QCCSID)システム値QCCSIDが「5035」以外の場合には、CHGJOB CCSID(5035)を実行してください。
CPYSPLFコマンドを実行するジョブ環境の影響を受けるため、CPYSPLFコマンドを実行する前にジョブのCCSIDを5035へ変更します。
OVRPRTFをスプールファイル名に行います。
コマンド例:
OVRPRTF FILE(QPDSPAJB) DEVTYPE(*AFPDS) CDEFNT(X0N16O) OVRSCOPE(*JOB)※パラメーター CDEFNT(X0N16O) は5026用です。
生データが5035の時は X0N16V を使用するようにしてください。- WRKACTJOB OUTPUT(*PRINT) を実行してスプールファイルを出力します。
CPYSPLFコマンドを実行しPDF化します。
コマンド例:
CPYSPLF FILE(QPDSPAJB) TOFILE(*TOSTMF) JOB(*) SPLNBR(*LAST) TOSTMF('/HOME/TSUKI/QPDSPAJB.PDF') WSCST(*PDF) STMFOPT(*REPLACE)「スプール・ファイルが/HOME/TSUKI/QPDSPAJB.PDFにコピーされました。」若しくは、「Spooled file copied to /HOME/TSUKI/QPDSPAJB.PDF.」というメッセージが表示されれば成功です。
ネットワークドライブの共有を掛けることでIFS上のファイルを見ることができます。
エクスプローラーにてIFSディレクトリーをネットワークドライブとして割り当ててから、上記手順で作成したPDFをPC上に落として確認してください。
ACSの「統合ファイル・システム」機能でPC上にダウンロードする方法でもよいです。
(IBM i 上で表示しても文字化けします。PC上にダウンロードしてからご確認ください)
【注意】
上記のIBM i (AS/400)OS標準機能の方法では、これから作成されるスプールファイルをPDF化することは可能ですが、既に作成されているスプールファイルのPDF化はできません。
PDF化するには、スプールファイルを作成する時に「印刷装置タイプ (DEVTYPE) 」を *AFPDS にて作成する必要があるためです。
「印刷装置タイプ:*AFPDS」にて作成されたスプールファイルはプリンターへ印刷できません。
通常、プリンターへ印刷可能なスプールファイルの用紙タイプは *STD にて作成されています。
半角カナが含まれるとずれる等の報告もあり、シングルバイトの英文字のみであれば影響も少ないと思いますが、DBCS(漢字等)やカタカナ等の考慮はされていない部分も多いようです。
実際の運用で利用できる範囲か否かを確認して、レイアウト等が気になるようであれば有償ツールの利用をご検討ください。
by . 槻樹
