[ABAP] Varianten eines Reports lesen

* Suchhilfe PROGNAME einbinden
PARAMETERS: p_report TYPE varid-report MATCHCODE OBJECT progname DEFAULT sy-repid.
PARAMETERS: p_langu TYPE t002-spras DEFAULT sy-langu.

START-OF-SELECTION.

* Varianten des Reports in den Tabellen VARID (Variantenkatalog) und VARIT (Variantentexte) suchen
* die gefundenen Tabelleninhalte werden in der Ausgabetabelle it_variants als getrennte
* Strukturen V und VT gespeichert
  SELECT FROM varid AS v
    INNER JOIN varit AS vt ON ( v~report EQ vt~report AND v~variant EQ vt~variant )
    FIELDS v~*, vt~*
    WHERE v~mlangu = @p_langu
      AND vt~langu = @p_langu
      AND v~report = @p_report
    INTO TABLE @DATA(it_variants).

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

* 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       = |Varianten des Reports { p_report }|
                                          html_string = lv_html
                                          container   = cl_gui_container=>default_screen ).

* cl_gui_container=>default_screen erzwingen
    WRITE: space.
  ELSE.
    WRITE: / |Keine Varianten zu Report { p_report } gefunden.|.
  ENDIF.

[ABAP] SE80: Tricks für den ABAP-Editor

Groß-/Kleinschreibung umschalten

  • Text markieren
  • toggle: STRG + K
  • upper case: STRG + U
  • lower case: STRG + L

Blockselektion mit Maus

  • Blockbeginn selektieren
  • Blockende mit ALT + Mausklick

Blockselektion mit Tasten

  • Horizontale Auswahl: SHIFT + CRSR
  • Vertikale Auswahl der darunter liegenden Zeilen: SHIFT + ALT + CRSR

Schnelle Typdefinition im Code

  • TYPES im ABAP-Editor eingeben
  • STRG + SPACE drücken
  • Doppelklick auf TYPES
  • Typnamen im Popup eingeben
  • Button „Preview TYPE“ klicken
  • gewünschte Felder wählen
  • Button “Weiter” klicken

ABAP-Code als Datei (*.abap) speichern

  • STRG + SHIFT + S

Links

[ABAP] Alle SAP-Objekttypen + Texte auflisten

DATA: it_types_in TYPE STANDARD TABLE OF KO105 WITH DEFAULT KEY.
DATA: it_types_out TYPE STANDARD TABLE OF KO100 WITH DEFAULT KEY.

* Intern: Tabelle mit allen Objekttypen inklusive Texten
CALL FUNCTION 'TRINT_OBJECT_TABLE'
  EXPORTING
    iv_complete  = abap_true
  TABLES
    tt_types_in  = it_types_in
    tt_types_out = it_types_out.

cl_demo_output=>write_data( it_types_in ).
cl_demo_output=>write_data( it_types_out ).
* 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       = 'SAP-Objekttypen'
                                      html_string = lv_html
                                      container   = cl_gui_container=>default_screen ).

* cl_gui_container=>default_screen erzwingen
WRITE: space.

[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] Unterpakete zu einem Paket holen

TRY.
    cl_pak_package_queries=>get_all_subpackages( EXPORTING im_package                  = 'Z_PACKAGE_NAME'
                                                 IMPORTING et_subpackages              = DATA(it_sub_packages)
                                                           et_subpackages_with_details = DATA(it_sub_packages_details) ).

    cl_demo_output=>write_data( it_sub_packages ).
    cl_demo_output=>write_data( it_sub_packages_details ).

* 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       = 'Übersicht Unterpakete'
                                          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] Leeren Transportauftrag anlegen

* TRFUNCTION
*  K  Workbench-Auftrag
*  W  Customizing-Auftrag
*  C  Umzug von Objekten ohne Paketwechsel
*  O  Umzug von Objekten mit Paketwechsel
*  E  Umzug eines kompletten Pakets
*  T  Transport von Kopien
*  S  Entwicklung/Korrektur
*  R  Reparatur
*  X  Unklassifizierte Aufgabe
*  Q  Customizing-Aufgabe
*  G  Stückliste für CTS-Projekt
*  M  Auftrag für Mandantentransport
*  P  Stückliste für Upgrade
*  D  Stückliste für Patch
*  F  Stückliste
*  L  Löschtransport
TRY.
    cl_adt_cts_management=>create_empty_request( EXPORTING iv_type           = 'K'
                                                           iv_text           = 'Text für Transportauftrag'
*                                                           iv_owner          =
*                                                           it_users          =
*                                                           iv_target         =
                                                 IMPORTING es_request_header = DATA(lv_request_header) ).

    cl_demo_output=>write_data( lv_request_header ).

* 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       = 'Übersicht Unterpakete'
                                          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] F4-Hilfe für Transportaufträge und Transportaufgaben

* Siehe Typgruppe SCTSC (Konstanten CTS)
DATA: lv_tkorr TYPE e070-trkorr.
DATA: lv_korr_head TYPE trwbo_request_header.

* F4-Hilfe für Aufträge/Aufgaben
CALL FUNCTION 'TR_F4_REQUESTS'
  EXPORTING
    iv_username             = sy-uname
    iv_client               = sy-mandt
    iv_trfunctions          = 'KW'     "TRFUNCTION: Workbench - K, Customizing - W"
    iv_trstatus             = 'DLRO'   "TRSTATUS: Änderbar - D, Geschützt - L, Freigabe gestartet - O, Freigegeben - R"
    iv_via_selection_screen = abap_true
    iv_complete_requests    = abap_true
  IMPORTING
    ev_selected_request     = lv_tkorr
    es_selected_request     = lv_korr_head.

cl_demo_output=>write_data( lv_tkorr ).
cl_demo_output=>write_data( lv_korr_head ).
cl_demo_output=>display( ).