9.108 GET_MESSAGE
RDMLファンクションのプログラム待ち行列から、この次のメッセージの詳細を取得します。
通常、戻されたメッセージの詳細は、RDMLファンクションにより標準的ではない方法で処理または印刷されます。
通常、RDMLファンクションのプログラム待ち行列のメッセージは、ユーザーに次に表示される画面の22/24行目に表示され、その後自動的にクリア/削除されます。
メッセージは、オペレーティング・システム・コマンド、組み込み関数、無効なI/O要求および/またはMESSAGE、VALUECHECKなどのRDMLコマンドによってプログラム・メッセージ待ち行列に入れられている可能性があります。
移植性に関する考慮事項 |
この組み込み関数がLANSAスーパーサーバーで実行される場合は、メッセージ・ファイルとメッセージID番号を取得しません。後述の例の注を参照してください。 |
各製品の対応
LANSA/AD |
使用可 |
Visual LANSA for Windows |
使用可 |
Visual LANSA for Linux |
使用可 |
引数
番号 |
タイプ |
必須/任意 |
記述 |
最小長 |
最大長 |
最小小数桁数 |
最大小数桁数 |
---|---|---|---|---|---|---|---|
1 |
A |
任意 |
待ち行列からメッセージを削除します。 Y - メッセージは削除される N - メッセージは削除されない デフォルトはYです。 |
1 |
1 |
戻り値
番号 |
タイプ |
必須/任意 |
記述 |
最小長 |
最大長 |
最小小数桁数 |
最大小数桁数 |
---|---|---|---|---|---|---|---|
1 |
A |
必須 |
メッセージ戻りコード OK = メッセージが戻された NO = メッセージが見つからなかった |
2 |
2 |
||
2 |
A |
任意 |
メッセージ・テキスト |
1 |
132 |
||
3 |
A |
任意 |
メッセージ番号 |
1 |
7 |
||
4 |
A |
任意 |
メッセージ・ファイル名 |
1 |
10 |
||
5 |
A |
任意 |
メッセージ・ファイル・ライブラリ |
1 |
10 |
||
6 |
A |
任意 |
メッセージ代替変数 |
1 |
132 |
例
バッチ・プログラムでNAMESファイルに新しい名前と住所を挿入します。エラーが発生した場合、例外レポートに名前や住所の詳細と共に関連のエラー・メッセージをすべて印刷します。
DEFINE FIELD(#ERRTXT) TYPE(*CHAR) LENGTH(100)
LABEL('Error :')
DEF_LINE NAME(#NAME) FIELDS(#CUSTNO #ADDRESS1
#ADDRESS2 #ZIPCODE)
DEF_LINE NAME(#ERROR) FIELDS(#ERRTXT) IDENTIFY(*LABEL)
INSERT FIELDS(#NAME) TO_FILE(NAMES) VAL_ERROR(*NEXT)
IF_STATUS IS_NOT(*OKAY)
PRINT LINE(#NAME)
USE BUILTIN(GET_MESSAGE) TO_GET(#RETCODE #ERRTXT)
DOWHILE COND('#RETCODE = OK')
PRINT LINE(#ERROR)
USE BUILTIN(GET_MESSAGE)
TO_GET(#RETCODE #ERRTXT)
ENDWHILE
ENDIF
注:
同じプログラムをIBM
iで実行した場合とLANSAスーパーサーバー・モードで実行した場合では異なるメッセージが作成されます。
IBM
iでこのBIFを使用して取得したメッセージは以下のように表示されます。
Message text: Record to be updated has been changed by another job/user
Message number: IOM0017
Message file name: DC@M01
(IBM iに対して) LANSAスーパーサーバー・モードで実行した場合は以下のように表示されます。
Message text: Record to be updated has been changed by another job/user
Message number: *STCMSG
Message file name: 2
これは設計検討事項ですが、技術的に複雑なため短期的には変更されることはありません。