Code: Alles auswählen.
MODULE ARTDAT_LESEN INPUT.
TRY.
TRY .
PERFORM ARTDAT_LESEN CHANGING zxx_ARTIKEL.
*CATCH ZCX_XX_EXCEPTION INTO g_excref.
CATCH ZCX_XX_EXCEPTION INTO g_excref.
* sy-msgid = 'ZXX_ARTIKELM'.
* imp_msg-msgid = 'ZXX_ARTIKELM'.
* imp_msg-msgty = 'E'.
* imp_msg-msgno = 001.
MESSAGE ID 'ZXX_ARTIKEL' TYPE 'E' NUMBER 001 WITH zxx_artikel-art_nr INTO imp_msg-msgv1.
g_excref->set_msg( EXPORTING im_msg = imp_msg ).
G_EXCREF->get_msg( ).
err_text = g_excref->get_text( ).
MESSAGE err_text TYPE 'E'.
ENDTRY.
CATCH CX_ROOT INTO g_cx_root.
err_text = g_cx_root->get_text( ).
WRITE / err_text.
ENDTRY.
Der Form ARTDAT_LESEN:
FORM ARTDAT_LESEN CHANGING ZXX_ARTIKEL TYPE ZXX_ARTIKEL RAISING ZCX_XX_EXCEPTION.
data: kl_objekt TYPE REF TO ZCX_XX_EXCEPTION.
IF NOT ZXX_ARTIKEL-ART_NR IS INITIAL.
SELECT SINGLE *
FROM ZXX_ARTIKEL
INTO ZXX_ARTIKEL
WHERE ART_NR = ZXX_ARTIKEL-ART_NR.
ENDIF.
IF SY-SUBRC <> 0.
RAISE EXCEPTION TYPE zcx_xx_exception.
kl_objekt->get_msg( ).
ENDIF.
ENDFORM. " ARTDAT_LESEN
GET_MSG und SET_MSG Methode:
method SET_MSG.
create object g_cl_msg EXPORTING im_msg = im_msg.
endmethod.
method GET_MSG.
DATA: iv_art_nr TYPE z_xx_art_nr.
ex_cl_msg = g_cl_msg.
ex_cl_msg->show_msg( EXPORTING iv_art_nr = iv_art_nr ).
endmethod.
Und ich kriege diese Meldung, wenn ich den Artikelnummer in einem Field eingebe.
Der Artikel mit Atzikelnummer 0000 existiert nicht.
Anstatatt 0000 sollte von dem Benutzer eingebenene Nummer erscheinen.
Folgende Benutzer bedankten sich beim Autor sapnup für den Beitrag:
melindareiz
Code: Alles auswählen.
ex_cl_msg->Show_msg( EXPORTING iv_art_nr = zxx_artikel-art_nr ).