2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

IBM i (旧AS400)の自己学習メモ コマンド/ツール/運用 FNDSTRPDMでソースコード横断キーワード検索

Posted at

自己学習メモインデックス

IBM i (旧AS400)の自己学習メモ インデックス

概要

AS400では制限がある程度ありますが、ソースコードを横断してキーワードを検索することが可能です。
それを実現するのがFNDSTRPDMコマンドです。
テキストエディタのgrepとは異なり、検索にヒットしたファイルのパスやキーワードと隣接する行のデータなどがまとめて一括表示されることはありませんが、ソースコードを横断してキーワードを検索し、1つずつ次へ次へ次へ・・・と地道に探すことができます。

FNDSTRPDMでキーワード検索

以下の例は、YAMAGUCHI1ライブラリにあるQRPGLESRCファイルのメンバーとして、RPGソースコードが格納されていることを前提に、得意先マスタの得意先名(TOKNM)の検索キーワードを指定して、TOKNMを利用しているRPGプログラムを探しています。
少し長いコマンドとなっているので、call qcmdでコマンド入力画面(Command Entry)を表示してから実行すると良いかもしれません。

FNDSTRPDM STRING('TOKNM') FILE(YAMAGUCHI1/QRPGLESRC) MBR(*ALL) OPTION(*DSP *NOPROMPT)                                                                     

上記コマンドを実行すると、最初にヒットしたソースコードのTOKNMキーワード部分にカーソルが合わさって表示されます。
画面の右上をみると、YAMAGUCHI1/QRPGLESRC RPG01など、ヒットしたソースコードの名前なども確認できますので、どのソースのどこでヒットしているのかを確認できます。
複数ソースにまたがって検索していますが、次のヒットへ遷移する場合、Enterキーを押下することで、次にヒットした場所へ遷移してくれます。
1.gif

ここで紹介しているように、テキストエディタのgrepとはだいぶ使い勝手が違いますが、AS400ではこんなもんなんですねー。
地道にEnterを押下し、どのソースで使っているのか目視で確認し、必要に応じて手元でメモを取りながら、キーワードを利用しているプログラム(ソースコード)を把握する作業が必要となります。

一括して検索する方法

上記で紹介したFNDSTRPDMコマンドで、OPTIONを少し変更することで、1つずつEnterを押下しなくても、キーワードがヒットしたソースコードの一覧を、スプールに出力することも可能です。
(それでも、ものすごい使い勝手がいいとは思えませんが。)

FNDSTRPDM STRING('TOKNM') FILE(YAMAGUCHI1/QRPGLESRC) MBR(*ALL) OPTION(*NONE *NOPROMPT) PRTMBRLIST(*YES)                      

スクリーンショット 2020-12-28 18.51.53.png

上記コマンドを実行したあと、出力されたスプールを確認します。

  1. wrkjob コマンドを実行
  2. 4. Work with spooled filesのコマンドを選択
  3. ファイル名がQPUOPRTFというスプールファイルができているのでOPT=5 で内容を表示

スクリーンショット 2020-12-28 19.04.00.png
スクリーンショット 2020-12-28 19.03.35.png

このように、検索キーワードにヒットしたメンバーの一覧が表示されます。
Recordsには、ヒットした行番号が表示されていますので、どのソースメンバーの何行目でヒットしたのか?というのは把握できます。
ただ、その詳細はよくわからないので、結局ソースコードの中身まで確認しに行く必要があります。

以上が、FNDSTRPDMによるソースコード横断のキーワード検索です。

2
2
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?