Code: Alles auswählen.
TRY.
my_meth().
CATCH zcx_my_exc INTO DATA(lo_error).
DATA(lo_previous) = lo_error->previous.
DO.
IF lo_previous->previous IS NOT BOUND.
EXIT.
ENDIF.
lo_previous = lo_previous->previous.
ENDDO.
ct_error = VALUE #( ( [...]
status = 'O'
msgid = ???
msgno = ???
text = lo_previous->get_text( ) ) ).
cv_xerror = abap_true.
RETURN.
ENDTRY.
Code: Alles auswählen.
CASE TYPE OF lo_previous.
WHEN TYPE zcx_rm_base INTO DATA(lr_base).
...
ENDCASE.
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
19KnarfRed81
Das geht aber nur wenn das Interface in der Klasse wirklich verwendet wird. Laut den Screenshots ist das aber nicht der Fall, da MESSAGE_ID, MESSAGE_TYPE usw. zwar PUBLIC definiert aber nicht Teil von IF_T100_MESSAGE sind.gtoXX hat geschrieben: ↑05.06.2024 14:54Es geht noch anders. Schau dir mal die SAP Klasse CL_MESSAGE_HELPER an.
Wenn du die Nachrichten ID brauchst ist dein Code nicht nötig.
GET_TEXT_PARAMS liefert dir die Parameter und ihre Werte.
CHECK_MSG_KIND liefert dir auch den T100KEY.
Oder caste auf IF_T100_MESSAGE. Im Attribut T100KEY steht alles drin.