Transaktionen
SU01 (Benutzerpflege)
PFCG (Pflege von Rollen)
Tabellen
TOBJ (Berechtigungsobjekte)
TOBJT (Kurztexte zu Berechtigungsobjekten)
DATA: lv_gui_codepage TYPE tcp00-cpcodepage. DATA: lv_gui_uses_utf8 TYPE rststype-sel_ok. * Ermittle, ob das Frontend mit UTF-8 arbeitet CALL FUNCTION 'SCP_GUI_USES_UTF8' IMPORTING gui_codepage = lv_gui_codepage gui_uses_utf8 = lv_gui_uses_utf8. WRITE: / lv_gui_codepage. WRITE: / lv_gui_uses_utf8.
TRY. DATA(o_cats) = cl_sui_tm_cat_reader=>get_instance( ). DATA(it_catalog) = VALUE if_sui_tm_cat_reader=>t_catalog( ). o_cats->get_all_catalogs( IMPORTING et_catalog = it_catalog ). * Hier Objekte für die Ausgabe hinzufügen cl_demo_output=>write_data( it_catalog ). * 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 = 'Technische Kataloge' 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.
PARAMETERS: p_cat TYPE /ui2/ad_mm_cat_id MATCHCODE OBJECT sui_tm_mm_cat. START-OF-SELECTION. TRY. DATA(o_cats) = cl_sui_tm_cat_reader=>get_instance( ). DATA(lv_cat_detail) = o_cats->get_details_of_catalog( iv_id = p_cat ). * Hier Objekte für die Ausgabe hinzufügen cl_demo_output=>write_data( lv_cat_detail ). * 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 = 'Details technischer Katalog' 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.
PARAMETERS: p_rfc TYPE rscat-rfcdest. START-OF-SELECTION. DATA: lv_rfc_subrc TYPE sy-subrc. DATA: lv_msg1 TYPE sy-msgv1. DATA: lv_msg2 TYPE sy-msgv2. * CATT: Prüfen einer RFC Destination auf Definition und Ping CALL FUNCTION 'CAT_CHECK_RFC_DESTINATION' EXPORTING rfcdestination = p_rfc IMPORTING msgv1 = lv_msg1 msgv2 = lv_msg2 rfc_subrc = lv_rfc_subrc. * Hier Objekte für die Ausgabe hinzufügen cl_demo_output=>write_data( lv_msg1 ). cl_demo_output=>write_data( lv_msg2 ). cl_demo_output=>write_data( lv_rfc_subrc ). * 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 = 'RFC' html_string = lv_html container = cl_gui_container=>default_screen ). * cl_gui_container=>default_screen erzwingen WRITE: space.
* Demoprogramm: DEMO_GTT * globale temporäre Tabelle DEMO_GTT hat Auslieferungsklasse "L" * zwei Datensätze einfügen INSERT demo_gtt FROM TABLE @( VALUE #( ( id = 'A' col = 111 ) ( id = 'B' col = 222 ) ) ). * Daten holen und anzeigen SELECT FROM demo_gtt FIELDS * INTO TABLE @DATA(it_gtt). LOOP AT it_gtt ASSIGNING FIELD-SYMBOL(<f>). WRITE: / <f>-id, <f>-col. ENDLOOP. * Am Ende immer Daten aus der GTT löschen, * sonst Exception COMMIT_GTT_ERROR (Implizites Datenbank-Commit wurde abgebrochen wegen nicht leerer GTTs) DELETE FROM demo_gtt.
* einfaches, generisches Beispiel für die Ausgabe mit Hilfe von Stringspalten TYPES: BEGIN OF ty_s_stringtab, col1 TYPE string, col2 TYPE string, col3 TYPE string, END OF ty_s_stringtab. TYPES: ty_it_stringtab TYPE STANDARD TABLE OF ty_s_stringtab WITH DEFAULT KEY. ********************************************************************** * Selektionsbild ********************************************************************** PARAMETERS: p_fname TYPE file_table-filename OBLIGATORY. * wenn die F4-Hilfe für den Dateinamen aufgerufen wird AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname. DATA: lv_rc TYPE i. DATA: it_files TYPE filetable. DATA: lv_action TYPE i. * File-Tabelle leeren, da hier noch alte Einträge von vorherigen Aufrufen drin stehen können CLEAR it_files. * FileOpen-Dialog aufrufen TRY. cl_gui_frontend_services=>file_open_dialog( EXPORTING file_filter = |xlsx (*.xlsx)\|*.xlsx\|{ cl_gui_frontend_services=>filetype_all }| multiselection = abap_false CHANGING file_table = it_files rc = lv_rc user_action = lv_action ). IF lv_action = cl_gui_frontend_services=>action_ok. * wenn Datei ausgewählt wurde IF lines( it_files ) > 0. * ersten Tabelleneintrag lesen p_fname = it_files[ 1 ]-filename. ENDIF. ENDIF. CATCH cx_root INTO DATA(e_text). MESSAGE e_text->get_text( ) TYPE 'I'. ENDTRY. ********************************************************************** * START-OF-SELECTION ********************************************************************** START-OF-SELECTION. DATA: it_stringtab TYPE ty_it_stringtab. TRY. * Reader-Objekt erzeugen DATA(o_reader) = CAST zif_excel_reader( NEW zcl_excel_reader_2007( ) ). DATA(o_excel) = o_reader->load_file( p_fname ). * Worksheet mit Index 1 DATA(o_worksheet) = o_excel->get_worksheet_by_index( iv_index = 1 ). * Inhalt der Worksheet in iTab mappen * Voraussetzung ist die korrekte Abbildung der Ausgabedaten in der itab (Datentypen, Anzahl Spalten) * falls es hier zu Konvertierungsfehlern kommt (float-Werte usw.), dann bricht die Funktion ab o_worksheet->get_table( EXPORTING iv_skip_bottom_empty_rows = abap_true IMPORTING et_table = it_stringtab ). cl_demo_output=>write_data( it_stringtab ). * 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. CATCH cx_root INTO DATA(e_txt). WRITE: / e_txt->get_text( ). ENDTRY.