RPG

269. RPGでのジョブ名の取得の方法

物理ファイルのレコードを更新したジョブ名(装置名)をレコードに更新しておくことは
よくあるが、それではこのジョブ名を取得するのに CLP の中で
RTVJOBA でジョブ名を取得してそれを RPG へパラメータとして渡す、という方法が
時々見受けられる。
例えば、

【CLP】
         
             PGM
             DCL        VAR(&JOB) TYPE(*CHAR) LEN(10)
             RTVJOBA    JOB(&JOB)
                    
             CALL       PGM(MYPGM) PARM(&JOB)
             ENDPGM

という感じである。

この方法だとほとんどの RPG がパラメータ受け取りを必要としてしまう。
RPG のプログラム状況データ構造( SDS )を使うと RPG の中でジョブ名を
取得することができるので RPG の実行に CLP を必要としない。
次のように SDS を定義するだけでよい。

【RPG】
     
     D                SDS 
     D* ジョブ名                        
     D  JOB                  244    253 
     D* ユーザー名                        
     D  USER                 254    263 
     D* ジョブ番号                      
     D  JOBNBR               264    269