メッセージファイルに登録したメッセージをCOBOLで使用する方法
-
メッセージファイル(SYS@MSG)に登録したメッセージをCOBOLプログラムから使用する方法を説明します。
メッセージファイルにメッセージを登録する方法は、ここで説明しています。ここでは既にメッセージファイルにキー値”A000”にメッセージが登録されているものとして説明します。
-
以下のプログラムは、メッセージファイルのキー値”A000”のメッセージを表示するサンプルプログラムです。
21行目と26行目でメッセージファイルを利用してメッセージの画面表示を行っています。
8桁の英数字項目のデータ‘MSG=xxxx’を1つの出力項目とします。xxxxの部分は、メッセージファイルに登録したメッセージのキー値を記述します。
000010 IDENTIFICATION DIVISION. 000020************************************** 000030** SYS@MSG TEST PROGRAM ** 000040** ** 000050** あらかじめMSG=A000を ** 000060** SYS@MSGに設定しておく ** 000070************************************** 000080 PROGRAM-ID. MSGOUT. 000090** 000100 ENVIRONMENT DIVISION. 000110** 000120 DATA DIVISION. 000130 WORKING-STORAGE SECTION. 000140 SCREEN SECTION. 000150 SD GAMEN 000160 END STATUS IS ENDSTS. 000170** メッセージを設定 000180** MSG=の次に出力したいメッセージのキーを指定(合計8文字) 000190 01 TEST1-DSP. 000200 05 LINE 10. 000210 10 COLUMN 8 PIC X(08) VALUE "MSG=A000". 000220***************** 命令部 ********************** 000230 PROCEDURE DIVISION. 000240 MPRG. 000250** ここでメッセージを画面出力する 000260 DISPLAY TEST1-DSP. 000270 STOP RUN.
下の画面が実際に実行してみたところです。
メッセージを登録する時に「表示後にリセットキー入力待ちになる」ように指定したので、リセットキー入力待ちになっています。メッセージ表示後の動きはある程度指定できます。選択できる「メッセージ表示後の動き」にぴったりのものがあればよいのですが、もし無い場合はちょっと使いづらいかもしれません。
ちなみに、SYS@MSG上に指定のキーがなかった場合は、下の画面のようなエラーメッセージが表示されます。
文章の最後の「C1F0F0F0」はキー値を表し、キャラクタでは「A000」となります。