Programmnachrichten im Dialog auslesen

Autor: Özkan Adigüzel | Veröffentlicht: 20.08.2019

Im Laufe der Zeit werden im System etliche Reports implementiert (mit ALV Grid), dessen Funktionen fortan auch im Dialog benötigt werden. Der einfachste Weg hierbei ist es, den Report im Code per „SUBMIT Reportname AND RETURN“ auszuführen. Um aber im Dialog eine ergebnisorientierte Steuerung zu ermöglichen, ist es zwingend notwendig die Nachrichten aus dem Report auslesen zu können.

Für Reports mit ALV Grid lässt sich diese Notwendigkeit ganz einfach anhand der Klasse „CL_SALV_BS_RUNTIME_INFO“ in wenigen Schritte realisieren.

  • 1. Initiieren
    CL_SALV_BS_RUNTIME_INFO=>SET(EXPORTING DISPLAY = ABAP_FALSE
    METADATA = ABAP_FALSE
    DATA = ABAP_TRUE )

  • 2. Programm ausführen
    SUBMIT Z_SUBMIT_DEMO AND RETURN

  • 3. ALV Nachrichten auslesen
    CL_SALV_BS_RUNTIME_INFO=>GET_DATA_REF( IMPORTING R_DATA = LR_DATA)

  • 4. Puffer zurücksetzen

    CL_SALV_BS_RUNTIME_INFO=>CLEAR_ALL( )

Im folgenden Beispiel verfügt die ALV Struktur im Programm Z_SUBMIT_DEMO lediglich über die Felder MESSAGE_TYPE und MESSAGE.