[ABAP] Tabelleninhalt in Transportauftrag übernehmen

DATA: lv_result TYPE cts_result.
DATA: lv_messages TYPE cts_messages.
DATA: lv_request TYPE cts_request.
DATA: lv_object_locks TYPE cts_object_locks.
DATA: lv_trkorr TYPE trkorr.

TRY.
    cl_adt_cts_management=>insert_objects_in_wb_request( EXPORTING pgmid        = 'R3TR'
                                                                   object       = 'TABU'
                                                                   obj_name     = CONV #( 'Z_TABLE_NAME' )
                                                                   as4text      = 'Neuer Transportauftrag für Tabelleninhalt'
                                                         IMPORTING result       = lv_result
                                                                   messages     = lv_messages
                                                                   request      = lv_request
                                                                   object_locks = lv_object_locks
                                                         CHANGING  trkorr       = lv_trkorr ).

    cl_demo_output=>write_data( lv_trkorr ).
    cl_demo_output=>write_data( lv_result ).
    cl_demo_output=>write_data( lv_messages ).
    cl_demo_output=>write_data( lv_request ).
    cl_demo_output=>write_data( lv_object_locks ).

* 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       = 'Transport Info'
                                          html_string = lv_html
                                          container   = cl_gui_container=>default_screen ).

* cl_gui_container=>default_screen erzwingen
    WRITE: space.
  CATCH cx_root INTO DATA(e_txt).
    WRITE: / e_txt->get_text( ).
ENDTRY.

[ABAP] SAP-Anwendungskomponente zu Paket oder Entwicklungsobjekt suchen

Variante 1 (über Paketnamen)

PARAMETERS: p_paket TYPE tdevc-devclass DEFAULT 'ME'.

START-OF-SELECTION.

  SELECT d~devclass,
         d~component,
         l~as4local,
         l~ps_posid,
         t~name
    INTO TABLE @DATA(it_comp)
    FROM tdevc AS d
    INNER JOIN df14l AS l ON d~component = l~fctr_id
    INNER JOIN df14t AS t ON d~component = t~fctr_id
    WHERE d~devclass = @p_paket
      AND t~langu    = @sy-langu.

  cl_demo_output=>display( it_comp ).

Variante 2 (über Objekt)

DATA: lv_paket TYPE tadir-devclass.
SELECT-OPTIONS: so_paket FOR lv_paket.

DATA: lv_pgmid TYPE tadir-pgmid.
SELECT-OPTIONS: so_pgmid FOR lv_pgmid.

DATA: lv_object TYPE tadir-object.
SELECT-OPTIONS: so_obj FOR lv_object.

DATA: lv_obj_name TYPE tadir-obj_name.
SELECT-OPTIONS: so_name FOR lv_obj_name.

INITIALIZATION.

* Paket
  so_paket[] = VALUE #( ( sign   = 'I'
                          option = 'EQ'
                          low    = 'ME'
                          high   = '' ) ).

  so_pgmid[] = VALUE #( ( sign   = 'I'
                          option = 'EQ'
                          low    = 'R3TR'
                          high   = '' ) ).

* Typ Transaktion
  so_obj[] = VALUE #( ( sign   = 'I'
                        option = 'EQ'
                        low    = 'TRAN'
                        high   = '' ) ).

* Objektname 'ME23N'
  so_name[] = VALUE #( ( sign   = 'I'
                         option = 'EQ'
                         low    = 'ME23N'
                         high   = '' ) ).

START-OF-SELECTION.

  SELECT d~pgmid,
         d~object,
         d~obj_name,
         d~devclass,
         c~component,
         l~as4local,
         l~ps_posid,
         t~name
    INTO TABLE @DATA(it_comp)
    FROM tadir AS d
    INNER JOIN tdevc AS c ON d~devclass = c~devclass
    INNER JOIN df14l AS l ON c~component = l~fctr_id
    INNER JOIN df14t AS t ON c~component = t~fctr_id
    WHERE d~devclass IN @so_paket
      AND d~pgmid IN @so_pgmid
      AND d~object IN @so_obj
      AND d~obj_name IN @so_name
      AND t~langu = @sy-langu.

  cl_demo_output=>display( it_comp ).