2018.04.26
 

ILE RPGを用いて、プログラム状況データ構造から、ユーザー名を取得する

Question

弊社ではWindows端末からFTPのリモートコマンドで、RPGⅢのプログラムをCALLしています。 プログラムの中で、プログラム状況データ構造からユーザー名(254桁~263桁)を取得し、どのFTPサイン・オンユーザーが更新を行ったか、タイムスタンプを取得しています。 今回、プログラムをILE RPGに刷新するに当たり、同様のプログラムをILEに変換しコンパイルしたところ、どのユーザーが実施しても、ユーザー名がQTCPとなってしまいました。 RPGⅢとILE RPGで動きが違うのでしょうか。

Answer

お客様ご懸念の通り、RPGⅢとILE RPGではプログラム状況データ構造の動作が異なります。ILE RPGは機能拡張により、RPGⅢでは取得できなかった値が取得できるようになっています。

RPGⅢでは「現行ユーザー・プロファイル名」のみ取得できました。これが254桁目~263桁目に該当します。

ILE RPGでは、「現行ユーザー・プロファイル名」とは別に「ユーザー・プロファイルからのユーザー名」が取得できるようになりました。「ユーザー・プロファイルからのユーザー名」はWRKACTJOBでジョブの現行ユーザーに表示されている値と考えていただければよろしいかと存じます。(名前から混同しやすいですが「現行ユーザー・プロファイル名」は、今回の場合FTPでサイン・オンしているユーザーを指します)

ILE RPGでは「現行ユーザー・プロファイル名」は358桁目~367桁目まで、「ユーザー・プロファイルからのユーザー名」が254桁目~263桁目までとなりますので、手間が掛かってしまいますが、ソースからSDS範囲を変更する必要がございます。

参考:
IBM Knowledge Center

ページトップ

ボタン