サポートチーム便り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範囲を変更する必要がございます。
by 大熊猫橋