MESSAGE (ABAP Keyword)

MESSAGE is a keyword used in SAP ABAP programming.
This tutorial covers its introduction & syntax details.

MESSAGE

Variants

1. MESSAGE xnnn.
2. MESSAGE ID mid TYPE mtyp NUMBER mnr.

Variant 1
MESSAGE xnnn.

Additions

1. … WITH f1 … f4
2. … RAISING exception

Effect
Outputs
the message no. nnn for the MESSAGE-ID specified in the REPORT
statement with the message type x. Dialog control recognizes the
following message types:
I – Info : Press ENTER to continue W –
Warning : Correction possible E – Error : Correction required A – Abend
: Transaction terminated X – Exit : Transaction terminated with short
dump
MESSAGE_TYPE_X S – Success : Message on next screen

Notes
In list processing (see LEAVE TO LIST-PROCESSING ), the effect of the message types differs in some respects:

With type E messages, the processing leaves any details list which has been started and returns to the previous list level.
Type W messages are always output as error messages (like type E).
During generation of the basic list, type W and type E messages result in termination (like type A).

Example

MESSAGE I121.

Notes
You edit messages by selecting Tools -> ABAP/4 Workbench -> Development -> Programming environ. -> Messages .
You can specify a different MESSAGE-ID in parentheses after the error number, e.g. MESSAGE I121(44) .
When executing the statement, the following system variables are set:

* SY-MSGID (message ID)
* SY-MSGTY (message type)
* SY-MSGNO (message number)

Addition 1
… WITH f1 … f4

Effect
Inserts
the contents of a field fi in the message instead of in the variables
&i. If unnumbered variables (&) are used in a message text,
these are replaced consecutively by the fields f1 to f4 .
To aid conversion, only numbered variables (&1 to &4) are to be used in future if several fields are involved.
If a “&” is supposed to appear in the message at runtime, you must enter “&&”.
In the long text of a message, the symbol &Vi& is replaced by the field contents of fi .
After WITH , you can specify 1 to 4 fields.

Note
You can output up to 50 characters per field. If the field contains more characters, these are ignored.

Example

MESSAGE E010 WITH ‘Example’ SY-UNAME.

Note
When
executing the statement, the contents of the fields f1 to f4 are
assigned to the system fields SY-MSGV1 , SY-MSGV2 , SY-MSGV3 and
SY-MSGV4 .

Addition 2
… RAISING except.

Effect
Only possible within a function module (see FUNCTION ):

Triggers the exception except.

If
the program calling the function module handles the exception itself,
control returns immediately to that program (see CALL FUNCTION ). In
this case, the export parameters of the function module are ignored.
However, the calling program can refer to the system field values (see
above).

If the calling program does not handle the exception itself, the message is output (see RAISE ).

Example

MESSAGE E777 RAISING NOT_FOUND.

Variant 2
MESSAGE ID mid TYPE mtyp NUMBER mnr.

Effect
As for variant 1, where you can set the following message components dnyamically:
ID Message ID TYPE Message type NUMBER Number
You can also use all the other additions as with the basic form.

Example

MESSAGE ID ‘XX’ TYPE ‘E’ NUMBER ‘001’
WITH ‘Text’.

Outputs
the message with the number 001 and MESSAGE-ID XX (see above) as an E
(Error) message and replaces the first variable (&) with ‘Text’.

Example

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

Constructs
the message dynamically from the contents of the system fields SY-MSGID
, SY-MSGTY , SY-MSGNR and SY-MSGV1-4 . These may, for example, be set
by an exception after CALL FUNCTION or CALL TRANSACTION … USING .

Note
Runtime errors

MESSAGE_TYPE_UNKNOWN : Message type unknown
MESSAGE_TYPE_X : Conscious triggering of termination with short dump