2017-06-21 86 views
0

私はpgmのスタックを見つける方法について疑問を持っていますか?AS/400 RPGでPgmのスタックをチェックする方法は?

EX: 我々は3 PGMS PGM 1、PGM 2、PGMを持っているしかし、PGM1とPGM 3によって呼び出されたPGM 2は、我々はPGM 3によって呼び出されたことを確認してくださいどのようにPGM 2.

によって呼び出さ3.

PGM 2.私たちはPGM 3についてのみ知っているので、他のPGMについてはありません。

PGMのスタックをチェックするコマンドはありますか?どのPGMがソースコードをチェックせずにどのPGMによって呼び出されるか。

ありがとうございました! Mohd Wasim

答えて

0

プログラム(PGM3)がアクティブな間に、コールスタックを表示できます。 WRKACTJOB画面からエントリの横に「5 =作業中」と表示され、次のメニューオプション「11 =呼び出しスタックを表示」から選択します。アクティブなプログラムは、リストの最後に(またはその近くに)置く必要があります。

もちろん、プログラムを呼び出すことができる唯一の方法であることを保証するものではありません(ソースのスキャンや変更管理ユーティリティを使用しないとわからないようです)。

+0

こんにちはリチャード..ご指導をありがとう。 –

0

これをプログラムでチェックしたい場合は、プログラム呼び出しスタックエントリにプログラムメッセージを送信できます。

SNDPGMMSG MSG(' ') TOPGMQ(*SAME &PGMNAME) KEYVAR(&KEYVAR) 

CPF2469またはCPF2479メッセージを受け取った場合、プログラムはコールスタック上にありません。

エラーが発生しない場合、プログラムはコールスタックにあります。

KEYVAR変数&を使用すると、メッセージキューから送信したばかりのメッセージを削除できます。

2

QWVRCSTKのAPIをチェック:qwvrcstk API、それはJOB情報オプションここで11は=コールスタックを表示

例の等価です:RPGLE find Calling program name

+0

スタック全体が必要な場合は、現在実行中のプログラムのみで動作します。 'DSPPGMREF PGM(OBJLIB/* ALL)OUTPUT(* OUTFILE)OBJTYPE(* PGM * SRVPGM * MODULE)OUTFILE(YOURBIB/PGMREF) 'を呼び出し、YOURLIB/PGMREFで再帰的なSQLクエリを使用して、すべての呼び出し元/呼び出し元プログラムを取得します – Dam

関連する問題