MESSAGES

Messages in ABAP

Messages are usually used to tell the user what is going on. The following types of messages are available in ABAP.
A Termination The message appears in a dialog box, and the program terminates. When the user has confirmed the message, control returns to the next-highest area menu.
E Error Depending on the program context, an error dialog appears or the program terminates.
I Status The message appears in a dialog box. Once the user has confirmed the message, the program continues immediately after the MESSAGE statement.
S Error The program continues normally after the MESSAGE statement, and the message is displayed in the status bar of the next screen.
W Warning Depending on the program context, an error dialog appears or the program terminates.
X Exit No message is displayed, and the program terminates with a short dump. Program terminations with a short dump normally only occur when a runtime error occurs.
The syntax for issuing a message is as follows.
MESSAGE <message> TYPE <message type>.
We can issue a status message as follows. Status message will be displayed in the status bar. After the message is displayed the program continues after the MESSAGE statement.
MESSAGE 'This is a status message' TYPE 'S'.
status-message
Information message will be displayed in a dialog box. Once the user has confirmed the message, the program continues immediately after the MESSAGE statement.
MESSAGE 'This is an information message' TYPE 'I'.
info-message
Error message in report programs will be displayed in the status bar and when the user press enter, the program terminates.
MESSAGE 'This is an error message' TYPE 'E'.
error-message
Warning message behaves similar to error message in report programs.
Exit Message – No message is displayed, and the program terminates with a short dump. Short dumps can be viewed in t-code ST22.
MESSAGE 'This produces short dump' TYPE 'X'.
short-dump-message
Termination Message appears in a dialog box, and the program terminates. When the user has confirmed the message, control returns to the next-highest area menu.
MESSAGE 'This is termination message' TYPE 'A'.
termination-message
Instead of hardcode the message text in the program we can maintain the message text in text symbols. In order to maintain text symbols use the menu path Goto->Text Elements->Text Symbols in ABAP editor.
text-symbols-messages-1
In the text symbols screen we can maintain the messages with a 3 character identifier.
text-symbols-messages-2
Then use the following message statement.
MESSAGE text-001 TYPE 'I'.
text-symbols-messages-3

SAP Message Class

We know that we can use MESSAGE statement to issue a message in ABAP. What if we want to issue the same message in more than one program? Do we need to hard code the same message text or maintain the same text symbols in all the programs? The answer is NO. Instead of maintaining the same message text in all the programs maintain the message in a Message class and use it in all the programs.
What is a Message Class?
Message Class is a like a container which holds a number of different messages. Each message in the message class is identified with unique message number. So when you call a message in a ABAP program, you need to specify the message class and message number.
How to create a Message Class?
First go to t-code SE91 i.e. Message Maintenance, enter the name of the message class and click on create button.
create-message-class-1
Maintain the required  message texts with message numbers. Then save the entries and assign it to proper development class and transport request. Once the message class is saved we can use it in our ABAP programs.
create-message-class-2
Messages can be issued as follows.
MESSAGE s000(ztest).
Output
create-message-class-3
In the above code, the message number, message class and message type are specified in the MESSAGE statement. We can also specify the message class in the REPORT statement as shown below, so that we can skip the message class in the MESSAGE statements of the program.
REPORT zmessages
MESSAGE-ID ztest
.

MESSAGE s000.
We can also maintain placeholders for variables in messages.
create-message-class-4
In the above message “&” is the placeholder. At runtime the placeholders (&) will be replaced by the variable values specified in the MESSAGE statement.
REPORT zmessages MESSAGE-ID ztest.

MESSAGE s001
WITH ‘XYZ’ ’1000′
.
Output
create-message-class-5
The values “XYZ” and “1000” replaces the placeholders in the actual message.

No comments:

Post a Comment