IBM i V7.6でSTRSDAを使わないメニュー画面のメンテナンス
Question
IBM i (AS400)V7R6以降ではADTSがサポート終了という事でメニューを作成する機能「STRSDA」が使えなくなるようです。
実はメニュー画面のメンテナンスに使用していました。
「STRSDA」が使用できなった場合、どのようにメンテナンスをすればいいでしょうか。
Answer
ご存じの通り、V7R6以降では「STRSDA」の機能自体がなくなっています。
ですがこの機能、非常に便利でしたよね。私もそう思います。この機能がなくなってしまうのは私も残念に思っています。
ここでは、STRSDAを使用しない、メニュー画面のメンテナンス方法についてご案内いたします。
(あくまで既存のメニューのメンテナンスとなります)
メニュー画面には、以下3つのオブジェクトが使用されます。
- 画面ファイル(DSPF)
- メニューオブジェクト(*MENU)
- メッセージファイル
コマンド「STRSDA」を使用して作成している場合、これら3つのオブジェクトはすべて同じ名前になります。
これらをそれぞれメンテナンスしていく形となります。
ここでは、ライブラリー「TESTY」、各オブジェクト名「SDAMNU」を例としてご紹介していきます。
メニュー画面そのもののメンテナンス
コマンド「STRSDA」を使用して作成されたこれらのオブジェクトは、ソースファイル上「MNUDDS」というメンバータイプで作成されますので、このソースをメンテナンスしていただきます。
メンテナンス後はコンパイルが必要です。以下の手順にてコンパイルを行ってください。
画面ファイルのコンパイル
例:
CRTDSPF FILE(TESTY/SDAMNU) SRCFILE(TESTY/QSRC)メニューオブジェクトのコンパイル
例:
CRTMNU MENU(TESTY/SDAMNU) TYPE(*DSPF) DSPF(TESTY/SDAMNU) MSGF(TESTY/SDAMNU)
これでコンパイルは完了しました。
実行されるコマンド(プログラム)のメンテナンス
「1)」ではあくまでメニューオブジェクトを作成したまでで、メニューから実行できるコマンドまたはプログラムというのはまだ変更されていません。
メニュー画面にて実行できるコマンドまたはプログラムは、メッセージファイルで管理されます。
コマンド「WRKMSGF」の実行後、「12=メッセージ記述の処理」を選択することで、中の項目を確認することができます。
追加したい場合は「F6=追加」、変更したい場合は「2=変更」にてメンテナンスを行ってください。
※メニュー画面では内部的に「USR + 4桁の番号」のメッセージIDが使用されます。
メニュー番号「1」を登録したい場合はメッセージID「USR0001」で登録してください。
これであれば、V7R6環境でもメニュー画面のメンテナンスができそうな気がしますね。
V7R5以下の環境でも、今後のV7R6以降へのバージョンアップ等に備え、SDAに頼らないメンテナンスを試してみてはいかがでしょうか。
by . かんぴょう木綿さん
