物理ファイルのレコードを更新したジョブ名(装置名)をレコードに更新しておくことは
よくあるが、それではこのジョブ名を取得するのに CLP の中で
RTVJOBA でジョブ名を取得してそれを RPG へパラメータとして渡す、という方法が
時々見受けられる。
例えば、
PGM DCL VAR(&JOB) TYPE(*CHAR) LEN(10) RTVJOBA JOB(&JOB) CALL PGM(MYPGM) PARM(&JOB) ENDPGM
という感じである。
この方法だとほとんどの RPG がパラメータ受け取りを必要としてしまう。
RPG のプログラム状況データ構造( SDS )を使うと RPG の中でジョブ名を
取得することができるので RPG の実行に CLP を必要としない。
次のように SDS を定義するだけでよい。
D SDS D* ジョブ名 D JOB 244 253 D* ユーザー名 D USER 254 263 D* ジョブ番号 D JOBNBR 264 269