Ansicht
Dokumentation

CL_LAST_MESSAGE_INFO - Ermöglicht, Details über die letzte Nachricht zu erhalten

CL_LAST_MESSAGE_INFO - Ermöglicht, Details über die letzte Nachricht zu erhalten

ROGBILLS - Synchronize billing plans   Vendor Master (General Section)  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Diese Klasse dient dazu, nach der Ausgabe einer ABAP Nachricht weitere Informationen über die Nachricht, wie zum Beispiel den Ursprung der Nachricht im Quelltext zu bestimmen.

Dazu erzeugt man möglichst bald nach der Ausgabe einer Nachricht eine Klasseninstanz, wodurch im Konstruktor die Kernel-Methode abkm_get_last_msg_origin( ) aufgerufen wird und die Quelltextposition der letzten Nachricht im Instanzattribut source_pos gespeichert wird. Das Attribut source_pos kann dann zu einem späteren Zeitpunkt ausgelesen werden.

Wichtig: Die zurückgegebene Quelltextposition entspricht im Allgemeinen nicht der Position der Message Anweisung, die die letzte Nachricht zur Anzeige gebracht hat, sondern der Position, an der die Nachricht ihren Ursprung hat. Das kann zum Beispiel eine Anweisung wie MESSAGE ... INTO ... sein. Bei Ausnahmen wird die Position des ersten MESSAGE... RAISING bzw. des ersten RAISE EXCEPTION zurückgegeben, an der die Nachricht ihren Ursprung hat.

Das Attribut ORIGINAL_MESSAGE gibt die Klasse, die Nummer und die Variablen der ursprünglichen Nachricht an. Wenn zum Beispiel eine Nachricht mit MESSAGE ... INTO data(mtext) als Text gespeichert wurde und dann später dieser Text über MESSAGE mtext ausgegeben wird, können auf diese Weise dennoch die Klasse und Nummer der ursprünglichen Nachricht bestimmt werden.

Schließlich gibt das Attribut EXCEPTION_CLASS_NAME den Klassennamen der Ausnahme an, in der eine Nachricht ihren Ursprung hat. Falls keine Ausnahme existiert, hat das Attribut den Inhalt: NO_EXCEPTION_CLASS.

Ausnahmen

CX_MESSAGE_NO_SOURCE_FOUND: Tritt im Konstruktor auf, wenn die Quelltextposition der letzten Nachricht nicht ermittelt werden konnte.

Beispiel

Im Folgenden Beispiel wird das Objekt lo_last_message erzeugt, um die Quelltextposition der letzten Nachricht zu ermitteln.

try.
    data(lo_last_message) = new cl_last_message_info( ).
  catch cx_message_no_source_found into data(message_error).
    message message_error type 'S'.
endtry.

Die Quelltextposition kann dann zum Beispiel wie folgt genutzt werden, um das entsprechende Include im Editor zu öffnen und zur entsprechenden Zeile zu springen.

if lo_last_message is not initial.
  call function 'RS_TOOL_ACCESS'
    exporting
      operation           = 'SHOW'
      object_name         = lo_last_message->source_pos-include_name
      object_type         = 'PROG'
      position            = lo_last_message->source_pos-line_number
    exceptions
      not_executed        = 1
      invalid_object_type = 2
      others              = 3.
  if sy-subrc <> 0.
    message id sy-msgid type sy-msgty number sy-msgno
    with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  endif.
endif.






TXBHW - Original Tax Base Amount in Local Currency   SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 3978 Date: 20240425 Time: 165013     sap01-206 ( 69 ms )