Message
Variante 1
Einfachste Variante und kürzeste Variante
REPORT ztest MESSAGE-ID
test.
...
MESSAGE e001.
Falls im Kurtext in der Tabelle T100 der Wer " & & & & " enthalten ist, dann wird der Text "Mein Name ist Regotz" angezeigt.
REPORT ztest MESSAGE-ID test.
...
MESSAGE i010 WITH 'Mein' 'Name' 'ist' 'Regotz'.
Es ist durch aus auch Möglich dass Sie auch direkt in den Klammer die MESSAGE-ID angeben.
MESSAGE i011(test) WITH 'Fehler' .
MESSAGE i000(vz) WITH 'Fehler' . " & & & &
Variante 2
Mann kann auch einen Text schreiben und dann für die MESSAGE eine TYPE angabe machen.
MESSAGE 'Meine Nachricht' TYPE 'I'.
Der Zusatz DISPLAY LIKE verändert nicht das Verhalten das durch den Nachritentyp erzielt werden soll, sondern nur die Art der Darstellung.
MESSAGE 'Meine Nachricht' TYPE 'I' DISPLAY LIKE 'W'.
Hier eine kurze Zusammenfassung der Nachrichtentypen
I - Information (Dialogfenster)
E - Fehlermeldung (Statuszeile)
W - Warnung (Statuszeile)
S - Erfolg / Statusmeldung (Statuszeile)
A - Abbruchmeldung (Dialogfenster)
X - Exit (Laufzeitfehler)
Nachrichtenklassen von SAP
Im Modul HR verwende ich sehr viel die Nachrichtenklasse PN von SAP
Messages mit einer Klasse erzeugen
"Erfolgs Meldung
IF gv_sent_to_all = mc_x.
"Variante1
MESSAGE S100(VZ) WITH 'Mail wurde gesendet'.
"Variante 2
DATA(gr_msg) = NEW zcl_hr_message( id = CONV #( `ZHR_PY_ENTGELT_MAIL` )
no = CONV #( `000` )
* v1 = `Email sent!!!`
).
"Mit Punkt am Schluss Nachrichten Text aus Nachrichtenklasse holen
DATA(result) = cl_message_helper=>get_longtext_for_message( gr_msg ).
"Ohne Punkt Nachrichten Text aus Nachrichtenklasse holen
DATA(result2) = cl_message_helper=>get_text_for_message( gr_msg ).
MESSAGE gr_msg TYPE 'S'.
"Variante 3
DATA(lf_s) = 'S'.
MESSAGE gr_msg TYPE lf_s.
"Variante 4
DATA(gr_msg) = NEW zcl_hr_message( id = CONV #( `ZHR_PY_ENTGELT_MAIL` )
no = CONV #( `000` )
).
MESSAGE gr_msg TYPE gr_msg->s.
"Variante 5
me->set_message( iv_id = CONV #( `ZHR_PY_ENTGELT_MAIL` )
iv_no = CONV #( `000` ) ).
MESSAGE me TYPE me->mc_s.
ELSE.
me->set_message( iv_id = CONV #( `ZHR_PY_ENTGELT_MAIL` )
iv_no = CONV #( `001` ) ).
MESSAGE me TYPE me->mc_e.
ENDIF.
Beispiel einer Klasse
public
final
create public .
public section.
interfaces IF_MESSAGE .
interfaces IF_T100_MESSAGE .
aliases GET_LONGTEXT
for IF_MESSAGE~GET_LONGTEXT .
aliases GET_TEXT
for IF_MESSAGE~GET_TEXT .
data:
mv_attr1 TYPE c LENGTH 50 .
data:
mv_attr2 TYPE c LENGTH 50 .
data:
mv_attr3 TYPE c LENGTH 50 .
data:
mv_attr4 TYPE c LENGTH 50 .
constants MC_S type MSGTY value 'S' ##NO_TEXT.
constants MC_W type MSGTY value 'W' ##NO_TEXT.
constants MC_E type MSGTY value 'E' ##NO_TEXT.
constants MC_I type MSGTY value 'I' ##NO_TEXT.
PROTECTED SECTION.
private section.
ENDCLASS.
CLASS ZCL_HR_ENTGELTNACHWEIS IMPLEMENTATION.
METHOD set_message.
if_t100_message~t100key-msgid = iv_id.
if_t100_message~t100key-msgno = iv_no.
if_t100_message~t100key-attr1 = 'MV_ATTR1'.
if_t100_message~t100key-attr2 = 'MV_ATTR2'.
if_t100_message~t100key-attr3 = 'MV_ATTR3'.
if_t100_message~t100key-attr4 = 'MV_ATTR4'.
mv_attr1 = iv_v1.
mv_attr2 = iv_v2.
mv_attr3 = iv_v3.
mv_attr4 = iv_v4.
ENDMETHOD.
ENDCLASS.