SAP NetWeaver AS ABAP Release 752, ©Copyright 2017 SAP AG. All rights reserved.
ABAP - Keyword Documentation → ABAP - Reference → Text Repositories → Messages → MESSAGE →
MESSAGE - msg
Syntax
... { tn }
| { tn(id) }
| { ID mid TYPE mtype NUMBER num }
| { oref [TYPE mtype] } ...
Alternatives:
1. ... tn ...
2. ... tn(id) ...
3. ... ID mid TYPE mtype NUMBER num ...
4. ... oref [TYPE mtype] ...
Effect
msg specifies a message from the database table T100 either by specifying id and n directly or by using the content of the data objects mid and num for the message class and the message number. Alternatively, an object reference variable oref is specified whose dynamic type implements the interface IF_T100_MESSAGE. One of the possible message types "A", "E", "I", "S", "W", or "X" must be specified, either by specifying t directly or as content of the data object mtype. This controls the behavior of the message. An invalid type produces a syntax error or runtime error.
If the specified message is not found for the logon language of the current user, a search is made in the secondary language in AS ABAP and then in English. If it is still not found, the specified message type, message class, and message number are used as short text in uppercase letters and separated by a colon ":".
The system fields of the statement MESSAGE are always supplied with the specified values.
Notes
... tn ...
Effect
t and n are used to specify the single-character message type and the three-digit message number directly in a row (static short form). The message class must be specified with the addition MESSAGE-ID in the statement that introduces the program.
Example
Displays the short text of the message with the number 014 from the message class SABAPDOCU as an information message.
REPORT rep MESSAGE-ID sabapdemos.
...
MESSAGE i014.
... tn(id) ...
Effect
The same applies to t and n as to the static short form. In the static long form, the message class is specified directly in parentheses using id.
Notes
Example
As in the example for alternative 1, with the message class specified explicity.
REPORT ...
...
MESSAGE i014(sabapdemos).
... ID mid TYPE mtype NUMBER num ...
Effect
The message class, the message type, and the message number are specified as content of the data objects mid, mtype, and num (dynamic form). mid and mtype expect character-like data objects that must contain the message class or the message type in uppercase letters. Invalid message types raise a non-handleable exception. num expects a data object of the type n and length 3.
Note
Specifying the message class explicitly overrides the addition MESSAGE-ID of the statement that introduces the program.
Example
As in the example for alternative 2, with the message and the message type specified dynamically.
DATA: mid TYPE sy-msgid VALUE 'SABAPDEMOS',
mtype TYPE sy-msgty VALUE 'I',
num TYPE sy-msgno VALUE '014'.
MESSAGE ID mid TYPE mtype NUMBER num.
... oref [TYPE mtype] ...
Effect
For oref, an object reference variable can be specified which, when the statement MESSAGE is executed, points to an object whose class implements the system interface IF_T100_MESSAGE. This in turn contains the component interface IF_MESSAGE. oref is a functional operand position. If oref is specified, the addition WITH and the variant with INTO are not allowed.
The statement MESSAGE analyzes the components of the structured attribute T100KEY of the interface IF_T100_MESSAGE in the referenced object:
The message type is either specified explicitly or determined implicitly.
Notes
Example
Sends a messages using an object of the class cls created using the instance operator NEW that includes the system interface IF_T100_DYN_MSG. The message is specified in full by interface attributes of the object.
CLASS cls DEFINITION.
PUBLIC SECTION.
INTERFACES if_t100_dyn_msg.
ALIASES:
t100_key FOR if_t100_message~t100key,
msgty FOR if_t100_dyn_msg~msgty.
METHODS constructor
IMPORTING msgid TYPE symsgid
msgno TYPE symsgno
msgty TYPE symsgty.
ENDCLASS.
CLASS cls IMPLEMENTATION.
METHOD constructor.
me->t100_key-msgid = msgid.
me->t100_key-msgno = msgno.
me->msgty = msgty.
ENDMETHOD.
METHOD if_message~get_text.
result = cl_message_helper=>get_text_for_message( me ).
ENDMETHOD.
METHOD if_message~get_longtext.
result = cl_message_helper=>get_longtext_for_message( me ).
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
MESSAGE NEW cls( msgid = 'SABAPDEMOS'
msgno = '001'
msgty = 'I' ).
Executable Examples