指定端末でプログラム起動方法
メッセージキューの作成
| CRTMSGQ ライブラリー名/キュー名 |
| メッセージ・キューを端末単位に定義して下さい。 |
メッセージファイルを使用した場合
送信PG
| PGM PARM(&DEV) | |
| DCL VAR(&DEV ) TYPE(*CHAR) LEN(10) | |
| DCL VAR(&MSGKEY) TYPE(*CHAR) LEN(4) | |
| DCL VAR(&MSGQ ) TYPE(*CHAR) LEN(10) | |
| CHGVAR &MSGQ ('M' *TCAT %SST(&DEV 2 9)) | |
| SNDPGMMSG MSGID(TST0000) MSGF(HRMLIB/TESTMSGF) + | |
|
|
| KEYVAR(&MSGKEY) | |
| RCVMSG MSGTYPE(*RPY) MSGKEY(&MSGKEY) WAIT(120) | |
| ENDPGM |
受信PG
| BRKPGM: PGM (&MSGQ &MSGQLIB &MSGMRK) |
| DCL &MSGQ TYPE(*CHAR) LEN(10) |
| DCL &MSGQLIB TYPE(*CHAR) LEN(10) |
| DCL &MSGMRK TYPE(*CHAR) LEN(4) |
| DCL &MSGID TYPE(*CHAR) LEN(7) |
| RCVMSG MSGQ(&MSGQLIB/&MSGQ) MSGKEY(&MSGMRK) + |
| MSGID(&MSGID) |
| IF (&MSGID *EQ 'TST0000') + |
| DO |
| EDTCDE |
| MONMSG CPF0000 |
| SNDRPY MSGKEY(&MSGMRK) MSGQ(&MSGQLIB/&MSGQ) RPY(I) |
| MONMSG CPF0000 |
| ENDDO |
| /* OTHER MESSAGES REQUIRE USER INTERVENTION */ |
| ELSE CMD(DSPMSG MSGQ(&MSGQLIB/&MSGQ)) |
| ENDBRKPGM: ENDPGM |
メッセージ使用した場合
送信PG
| PGM PARM(&DEV) | |
| DCL VAR(&DEV ) TYPE(*CHAR) LEN(10) | |
| DCL VAR(&MSGKEY) TYPE(*CHAR) LEN(4) | |
| DCL VAR(&MSGQ ) TYPE(*CHAR) LEN(10) | |
| CHGVAR &MSGQ ('M' *TCAT %SST(&DEV 2 9)) | |
| SNDPGMMSG MSG(’EDTCDE’) + | |
| TOMSGQ(QGPL/&MSGQ) MSGTYPE(*INQ) + | |
|
|
| RCVMSG MSGTYPE(*RPY) MSGKEY(&MSGKEY) WAIT(120) | |
| ENDPGM |
受信PG
| BRKPGM: PGM (&MSGQ &MSGQLIB &MSGMRK) |
| DCL &MSGQ TYPE(*CHAR) LEN(10) |
| DCL &MSGQLIB TYPE(*CHAR) LEN(10) |
| DCL &MSGMRK TYPE(*CHAR) LEN(4) |
| DCL &MSGID TYPE(*CHAR) LEN(7) |
| DCL &MSG TYPE(*CHAR) LEN(6) |
| RCVMSG MSGQ(&MSGQLIB/&MSGQ) MSGKEY(&MSGMRK) + |
| MSGID(&MSGID) MSG(&MSG) |
| IF (&MSG *EQ 'EDTCDE') + |
| DO |
| EDTCDE |
| MONMSG CPF0000 |
| SNDRPY MSGKEY(&MSGMRK) MSGQ(&MSGQLIB/&MSGQ) RPY(I) |
| MONMSG CPF0000 |
| ENDDO |
| /* OTHER MESSAGES REQUIRE USER INTERVENTION */ |
| ELSE CMD(DSPMSG MSGQ(&MSGQLIB/&MSGQ)) |
| ENDBRKPGM: ENDPGM |