[ABAP] Inhalt eines Spoolauftrages auslesen

* Spoolauftrag
PARAMETERS: p_spool TYPE tsp01-rqident DEFAULT '12345' OBLIGATORY.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_spool.

  SELECT rqident, rqtitle, rqdest, rqpaper, rqdoctype
    INTO TABLE @DATA(it_spool)
    FROM tsp01
    ORDER BY rqident.

  DATA: it_return TYPE TABLE OF ddshretval.

* eigene Suchhilfe für Auswahl der Spooljobs anzeigen
  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield        = 'RQIDENT'     " Spalte der internen Tabelle bei value_tab
      dynpprog        = sy-repid
      dynpnr          = sy-dynnr
      dynprofield     = 'P_SPOOL'     " Name des Dynpro-Feldes für die automatische Werterückgabe
      value_org       = 'S'           " Werteübergabe: C: zellenweise, S: strukturiert
      window_title    = 'Auswahl'
    TABLES
      value_tab       = it_spool      " Übergabe-Tabelle mit Werten für die Anzeige und Auswahl
      return_tab      = it_return     " Rückgabe-Tabelle mit den ausgewählten (geklickten) Elementen
    EXCEPTIONS
      parameter_error = 1
      no_values_found = 2
      OTHERS          = 3.

  IF sy-subrc = 0.
    IF lines( it_return ) > 0.
      MESSAGE it_return[ 1 ]-fieldval TYPE 'S'.
    ENDIF.
  ENDIF.

START-OF-SELECTION.

  SELECT SINGLE FROM tsp01
    FIELDS *
    WHERE rqident = @p_spool
    INTO @DATA(lv_tsp01).

  IF sy-subrc = 0.
* TSP01 mit SYSID
    DATA(lv_spool) = CORRESPONDING tsp01sys( lv_tsp01 ).
    lv_spool-sys = sy-sysid.

    DATA: it_data TYPE STANDARD TABLE OF rspo_ds WITH DEFAULT KEY.
    DATA: it_output TYPE STANDARD TABLE OF rspo_index WITH DEFAULT KEY.

* Rohdaten eines Spool-Auftrags zurückliefern
    CALL FUNCTION 'RSPO_IRETURN_RAW_DATA'
      EXPORTING
        rq          = lv_spool
      TABLES
        line_buffer = it_data
        page_index  = it_output
      EXCEPTIONS
        error       = 1
        OTHERS      = 2.

    IF sy-subrc = 0.
* Hier Objekte für die Ausgabe hinzufügen
      cl_demo_output=>write_data( lv_spool ).
      cl_demo_output=>write_data( it_data ).
      cl_demo_output=>write_data( it_output ).

*       HTML-Code vom Demo-Output holen
      DATA(lv_html) = cl_demo_output=>get( ).

*       Daten im Inline-Browser im SAP-Fenster anzeigen
      cl_abap_browser=>show_html( EXPORTING
                                    title        = 'Daten'
                                    html_string  = lv_html
                                    container    = cl_gui_container=>default_screen ).

*       cl_gui_container=>default_screen erzwingen
      WRITE: space.
    ENDIF.
  ENDIF.