!--a11y-->

メッセージは、ABAP 命令 MESSAGE を使用して送信します。命令で、メッセージクラス、メッセージ番号、およびメッセージタイプが指定されます。
メッセージクラスとメッセージ番号は、テーブル T100 でメッセージを識別するために使用されます。メッセージタイプは A 、E 、I 、S 、W 、または X のいずれかで、ABAP 実行時におけるメッセージの処理方法を定義します。
メッセージは、モーダルダイアログボックスに表示されるか、画面のステータスバーに表示されます。メッセージの処理方法は、メッセージタイプと MESSAGE 命令が発生するコンテキストによって決まります。
MESSAGE 命令には、3 つのバリアントといくつかのオプションがあります。
プログラムの冒頭命令に以下のオプションが含まれているとします。
... MESSAGE-ID <id>.
この場合にメッセージクラス <id> がテーブル T100 に含まれている場合、以下のようにMESSAGE 命令を使用することができます。
MESSAGE <t><num> [WITH <f1> ...<f4>] [RAISING <exc>].
ここで、<t> は単一文字のメッセージタイプで、<nnn> は 3 桁のメッセージ番号です。冒頭命令で指定されたメッセージクラスに対して対応するメッセージテキストがテーブル T100 からリトリーブされ、表示されます。この表示は、メッセージタイプとそのメッセージが送信されるコンテキストによって決まります。
メッセージクラス、メッセージ番号、およびメッセージタイプを静的に指定するには、以下のような形式の MESSAGE 命令を使用します。
MESSAGE <t><nnn>(<id>) [WITH <f1> ...<f4>] [RAISING <exc>].
この命令は最初のバリアントに似ていますが、ここでは命令内でメッセージクラス <id> を指定します。この指定は、プログラムの先頭で指定したすべてのメッセージクラスを上書きします。
メッセージクラス、メッセージ番号、およびメッセージタイプを動的に指定するには、以下のような形式の MESSAGE 命令を使用します。
MESSAGE ID <id> TYPE <t> NUMBER <n> [WITH <f1> ...<f4>] [RAISING <exc>].
ここで、<id> 、<t> 、および<n> はそれぞれメッセージクラス、メッセージ番号、およびメッセージタイプを含む項目です。これらの項目内容を使用して、テーブル T100 から適切なメッセージが読み込まれ、メッセージコンテキストに応じて表示されます。
テーブル T100 のメッセージテキストには、プレースホルダとして最大 4 つのアンパサンドを含めることができます。これらのプレースホルダは、実行時に MESSAGE 命令で WITH オプションを指定して置換することができます。
MESSAGE ...WITH <f1> ...<f4>.
これにより、項目 <f1> から <f4> の内容がメッセージテキストのプレースホルダの位置に順次挿入されます。
汎用モジュールとメソッド内で、MESSAGE 命令で RAISING オプションを使用して例外をトリガすることができます。
MESSAGE.....RAISING <exc>.
呼出元プログラムが例外 <exc> を処理しない場合は、メッセージが表示され、プログラムはメッセージタイプとコンテキストに応じた適切な方法で処理を続行します。呼出元プログラムが例外を処理する場合は、メッセージは表示されず、例外がトリガされます。この場合、メッセージクラス、メッセージ番号、メッセージタイプ、およびプレースホルダの値は、呼出元プログラムのシステム項目SY-MSGID 、SY-MSGNO 、SY-MSGTY 、および SY-MSGV1 に入力されます。

REPORT DEMO_MESSAGES_SIMPLE MESSAGE-ID SABAPDOCU.
MESSAGE I014.
MESSAGE S015.
WRITE text-001.
この単純なメッセージは、モーダルダイアログボックスに情報メッセージを表示します。
そして、次画面 ( この場合は一覧) のステータスバーに成功メッセージを表示します。