Page History
[ |../../index.htm#lansa/abort_e.htm]
現在地:
...
7.1.2 ABORT の使用例
...
|
|---|
| Anchor | ||||
|---|---|---|---|---|
|
以下のコマンドは、ファンクションを打ち切ってエラー・メッセージを表示します。
ABORT MSGTXT('Unable to locate system definition record')
| Anchor | ||||
|---|---|---|---|---|
|
以下のサブルーチンは、ABORT コマンドによって表示されるエラー・メッセージを動的に構築します。
SUBROUTINE NAME(ABORT) PARMS((#MSGTXT1 *RECEIVED) (#MSGTXT2 *RECEIVED) (#MSGTXT3 *RECEIVED)) DEFINE FIELD(#MSGTXT1) TYPE(*CHAR) LENGTH(40) DECIMALS(0) DEFINE FIELD(#MSGTXT2) REFFLD(#MSGTXT1) DEFINE FIELD(#MSGTXT3) REFFLD(#MSGTXT1) DEFINE FIELD(#MSGDTA) TYPE(*CHAR) LENGTH(132) DECIMALS(0) USE BUILTIN(BCONCAT) WITH_ARGS(#MSGTXT1 #MSGTXT2 #MSGTXT3) TO_GET(#MSGDTA) ABORT MSGID(DCM9899) MSGF(DC@M01) MSGDTA(#MSGDTA) ENDROUTINE
これは、以下のような致命的エラー状況で使用できます。
EXECUTE SUBROUTINE(ABORT) WITH_PARMS('Employee' #EMPNO 'not found')
または、以下のような状況でも使用できます。
EXECUTE SUBROUTINE(ABORT) WITH_PARMS(#DEPTMENT 'is invalid' *BLANKS)
| Anchor | ||||
|---|---|---|---|---|
|
打ち切りメッセージの文言をメッセージ・ファイルで定義し、詳細を致命的エラーの発生時に変数として置換することもできます。例えば、MYMSGF というメッセージ・ファイルが作成され、ID が MSG0001 のメッセージ定義がこのファイルに追加されているとします。一次レベルのメッセージ・テキストは、'社員 &1 &2 &3 の給与額 &4 が高すぎるため、この税額計算操作に該当しません。'です。また、メッセージ・データ・フィールド形式は以下のように定義されています。
...