最初のページに戻ります。

総合の目次があるページに戻ります。

よく使うマニュアルです

Wiki

updated on 2004.06.23

14.11.DSPPGMREFの注意点

[ Previous ] [ HOME ] [ Upper ] [ Next ]


DSPPGMREFは便利ですよね!でも、取り出せない情報や、勘違いしそうな内容をあらかじめ知っておかねばなりません。基本的に、プログラム内の定義項目を掻き出してくれるものです。これをOUTFILEで利用して、それをQueryなどで並べ替えをすれば便利です。でも、取り出せない項目があります。以下に、DSPPGMREFを利用する上での注意点を列挙します。

  • CLPの中で、参照ファイルをOVRDBFで&FILEなどと変数名で、一時指定変更をした場合、DSPPGMREFで出てくる参照ファイル名は「&FILE」。印刷装置ファイルは特に注意。
  • CLPの中で、CALL &PGMなどと、プログラム名を変数にした場合、参照プログラムは「&PGM」になります。

DSPPGMREFは、そのプログラムというオブジェクトに定義された内容を出すだけなです。指定変更後していても、コンパイル時のファイルを参照ファイルとしてしまう。仕方ないか。

  • RPGの外部DSは、参照オブジェクトとはならない。(データエリアは参照されます。)

これは、最近気づきました。何ででしょうか。これはスペックバグと、私は、言い切ります。外部DSは、バッファ定義と同じくらい重要です。でも、レベルチェックもしないので、EDSは困り者です。FNDSTRPDMで探すしかありません。(PC5250ならソースのその定義部分(I      EDSxxxx)を全部コピーして、FNDSTRPDMすれば、検索が楽でしょう)。RPG内部でCALLで呼び出すプログラムを出せるのなら、当然でないのか?(news400でも、同じ質問がありました。回答はやはり、コンパイルリストかSCANによるしかないようです。)

  • CLPで、DLTOVR *ALLとすると、参照オブジェクトに「*ALL」と入る。

仕方ないか。

  • DFUの参照ファイルは取り込めるのに、QRYはできない。

ロチェスタのチョンボ!

  • RPG ILEの、CALLBを参照できない。

以前、ML400で出ていました。私は、あまりILEを使っていないので(CICSマシンでは遅いのです)、気づきませんでした。アップするつもりで忘れていました。スミマセン。

マニュアルの記述

AS/400 ILE RPG/400 解説書 バージョン 3 資料番号 SC88-5192-00

DSPPGMREF コマンドは、プログラムが行う外部参照についての情報を表示するために使用されるCL コマンドです。CALLB はプロシージャーを呼び出すために使用されるので、CALLB 命令の演算項目2は DSPPGMREF に見つかりません。CALL 命令の演算項目2だけです。DSPPGMREF を使用して、名前付き固定情報またはリテラルを用いて呼び出されたプログラムの名前を照会することができます。

※それから、V3R1現在、APIのサポートはありません。(V4R1はまだマニュアルが来ないので、不明です。) 


[ Previous ] [ HOME ] [ Upper ] [ Next ]

You are at K's tips-n-kicks of AS/400

 

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送