ILE RPG（ほか）の開発で使えるIBM i 7.4～地味拡張 PF8キー, DSPJOBLOG

直接ILE RPGネタでなくてすみません^^;

ILE RPGで開発する際にいろいろなIBM i OSコマンドを使うと思いますが、IBM i 7.4辺りで拡張された地味な機能をご紹介します。^^;

## 地味拡張その１：PF8キーで前方向のコマンド履歴を表示

5250画面でPF9キーで履歴のリトリーブできるのはだれでも知っている機能です。が、PF9キーは古い方向しか履歴を返せません。

という事で、拡張されたのが PF8キーで新しい方向にコマンド履歴をリトリーブできる機能です。

画像の状態で、いま WRKJOB コマンドをリトリーブ表示しているとします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/c0e8c7e0-ed26-1a6a-d75f-26745c82cc25.png)

ここから、PF9キーを押すと、WRKDSKSTSがコマンドラインに表示されますね。
PF9キー押しすぎたり、WRKJOB コマンドより新しい履歴を見たい場合、延々とPF9キーを押し続けて一周する、、的なある意味石器時代の仕様が残っていたわけですw

これがようやく！ PF8キー で新しい方向のコマンド履歴を取得できるようになりました。

地味ですW

## 地味拡張その2：DSPJOBLOGコマンドの拡張

IBM i 7.3 と 7.4のDSPJOBLOGコマンドのプロンプトを表示すると下記のような違いがあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/c15c0145-def9-2ac6-f760-0a48a3484163.png)

赤い下線の指定が増えたんですね。
以下使い方です。

### 今までの（IBM i 7.3レベルの）DSPJOBLOG

**DSPJOBLOG ＊ALL**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/63c17e22-571f-08a4-a219-4a176c2f1c4a.png)

こんな感じですべてのユーザーIDのすべてのログが検索されます。システムエラーを探す的な場合を除き、開発ではあまり使えません。

そこでユーザーID（たとえば GOMA）で絞り込んでジョブログを表示しようとすると、7.3までは ユーザーID + ジョブ名 + ジョブ番号　と3つ全て調べて入力しないとログが検索できなかったわけです。
ジョブ名はログインしている5250端末IDだったり、SUBMITコマンドで指定したりで割合調べやすいわけですが、ジョブ番号は連番で勝手に振られますので検索しないとわからない場合も多いことになります。

### IBM i 7.4での拡張例1：ユーザーIDだけでジョブログの絞り込みができる

で、IBM i 7.3では以下の例が可能になりました。

**DSPJOBLOG JOB(GOMA/＊ALL)**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/f34b085d-a6b9-27f2-0813-ebe87b126337.png)

5250のジョブログを見たことある方は、ユーザーID = GOMA の出力したジョブログだけが表示されているのがわかると思います。（GOMAでログインした5250端末のジョブログ、GOMAがSBMJOBしたバッチジョブのログが表示されています。）

### 拡張例2：ユーザーID + ジョブ名　でも絞り込み出来る

**DSPLOG JOB(GOMA/QDFTJOBD)**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/167a177e-f982-23ca-a29a-ce437c3f500b.png)

この例だと拡張例1の結果からさらに、ジョブ名が QDFTJOBD のログだけが表示されています。（この例ではユーザーGOMAがバッチ投入する際にQDFTJOBD というジョブ名でSBMJOBした履歴だけが検索されている）

### 拡張例3：さらに特定のメッセージIDだけを表示もできる
**DSPLOG JOB(GOMA/QDFTJOBD) MSGID(CPF1124 CPF1164) MSGIDSLT(＊OMIT)**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/0647c40d-527f-d8ee-f19c-a2a6ce589cab.png)

ココでのポイントは MSGIDパラメーターに検索したい（たとえばILE RPGその他プログラムで発生したエラーの）メッセージIDを指定してより絞った検索ができます。
さらに上記例ではメッセージIDの番号（ここでは CPF1124, CPF1164)は非表示にさせています。これですとILE RPGほかのプログラムでデバッグ等に必要なミニマムな情報だけをジョブログから拾えると思います。

## 帰ってきたスプールファイルのテキストダウンロード
かつてiSeries Access時代にあった機能がACSに帰ってきました。（嬉

ACSのメニューから、
 **プリンター出力** → **編集→フィルター** → **フィルターの設定** 
 で任意のOUTQや出力ユーザー、スプール条件をフィルター指定できます。
 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/6029f2f1-ef55-1032-8c65-ce842c2c223c.png)

あとは、**お気に入りのスプールファイルを右クリック** すればPCにテキストダウンロードできます♪
このとき、下記のメニューが出ますので、 **ダウンロード…** を選択すると、ダウンロードオプションを指定できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/43854079-36c3-8a9e-25da-e81bc503d224.png)

ファイルの場所やPDF化もできます。（PDFはIBM i 側での設定が必要、整理して別途、まとめたいと思います。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/d3cd5da9-db5f-b65a-50bd-a40730d2e770.png)

このままOK押すか、2つ上の画面で **スプールファイルをドラッグ&ドロップするとダウンロードできます。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/b36daa7b-d3e6-a870-75db-47f21ef2653c.png)