前回では、フィールド等の使用状況調査についてを書きましたが、今回は、特定のオブジェクト(テーブルやプログラム)を参照するプログラムを確認する方法を書きます。
あるプログラムが、どのプログラムで呼び出されているか? あるテーブルが、どのプログラムで呼び出されているか?を調査する方法です。
確認手順
(1) DSPPGMREFコマンドで参照情報をテンポラリーに書き出す
DSPPGMREF
DSPPGMREFコマンド入力後、F4プロンプトを呼び出します。
プログラム参照表示 (DSPPGMREF) 選択項目を入力して,実行キーを押してください。 プログラム . . . . . . . . . . > *ALL 名前,総称* , *ALL ライブラリー . . . . . . . . . . . > TIGEROBJ 名前 , *LIBL, *CURLIB... 出力 . . . . . . . . . . . . . > *OUTFILE *, *PRINT, *OUTFILE オブジェクト・タイプ . . . . . *PGM *ALL, *PGM, *SQLPKG... 値の続きは+ 出力を受け取るファイル . . . . PGMLIST 名前 ライブラリー . . . . . . . . . . . QTEMP 名前 , *LIBL, *CURLIB 出力メンバー・オプション : 出力を受け取るメンバー . . . *FIRST 名前 , *FIRST レコードの置き換えまたは追加 *REPLACE *REPLACE, *ADD 終り F3= 終了 F4=プロンプト F5= 最新表示 F12= 取り消し F13= この画面の使用法 F24= キーの続き
- プログラム*ALLにて、指定したライブラリー内のすべてのオブジェクトを検索対象とします。
- 出力は、画面表示よりも詳細を確認できる理由で、OUTPUTファイルに落とし込みます(例では、TEMP内に保存するようにしました)。
(2) テンポラリーファイルにて参照プログラムを確認
次に、保存されたファイルをQRY等で確認します。
RUNQRY QRYFILE(QTEMP/PGMLIST) RCDSLT(*YES)
レコードの選択 比較条件を入力し実行キー。新しいグループを始めるには OR を指定してください。 テスト: EQ, NE, LE, GE, LT, GT, RANGE, LIST, LIKE, IS, ISNOT... AND/OR フィールド テスト 値 (フィールド, 数値,'文字',または ...) WHFNAM LIKE 'SAMPLE%' 終わり フィールド テキスト LEN DEC WHFNAM 参照された オブジェクト: 1=*EXPR 11 WHLNAM 参照された ライブラリー:1=*EXPR 11 WHSNAM 起動 プログラム 中のファイル名 :1=*EXPR 11 WHRFNO 参照されるレコード様式の数 -1=WHRFNB 参照 3 0 WHFUSG 1=I,2=O,3=I/O,4=U,5=I/U,6=O/U,7=I/O/U,8=N/S,0=N/A 2 0 続く ... F3= 終了 F9= 挿入 F11= 名前のみの表示 F12= 取り消し F18= ファイル F19= 次のグループ F20= 再編成 F24= キーの続き
- 調査対象がプログラムの場合には、WHFNAM で検索をかけます。(上記の例では、SAMPLEから始まる名前のPGMの検索を行います)
- 調査対象がテーブルの場合には、WHSNAM で検索をかけます。
検索結果
報告書の表示 報告書の幅 . . . . . : 248 行の位置指定 . . . . . . . 桁移動 . . . . . . . . . . 行 ....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8....+....9....+...10....+...11....+...12.... ライブラリー プログラム TEXT 参照 検索 参照 ライ テキスト オブジェクト 日付時刻 オブジェクト 記述 数 000001 TIGEROBJ SAMPLE05C ソースファイルを読む 6 1150205124235 SAMP05 000002 TIGEROBJ SAMPLE05C ソースファイルを読む 6 1150205124235 SAMPLE05 *LIBL 000003 TIGEROBJ SAMPLE08 画面 打鍵用キーワードCA/CF動作テスト 5 1150205124235 SAMPLE08D TIGER 000004 TIGEROBJ SAMPLE08 画面 打鍵用キーワードCA/CF動作テスト 5 1150205124235 SAMPLE08D TIGER 000005 TIGEROBJ SAMPLE11C メイン・プロシージャ・プロトタイプ化テスト 4 1150205124235 SAMPLE11 *LIBL 000006 TIGEROBJ SAMPLE13 ポインター渡しテスト MAIN 4 1150205124235 SAMPLE13B *LIBL 000007 TIGEROBJ SAMPLE14 ポインター渡しテスト2 MAIN 4 1150205124235 SAMPLE14B *LIBL 000008 TIGEROBJ SAMPLE19 月末日算出 CALL (OPTION='T') 4 1150205124235 SAMPLE19P1 *LIBL ****** ******** 報告書の終わり ******** 終わり F3= 終了 F12= 取り消し F19= 左 F20= 右 F21= 分割 F22= 幅 80
* 参照オブジェクトがどのプログラムから呼び出されているか、プログラム欄を見れば確認できるかと思います。