Hier ein Programm, um strukturiert
- Menü und TCodes
- Menüs
- Menü und spezifische TCodes
auszugeben.
*&---------------------------------------------------------------------*
*& Report ZHST_TEST01
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZHST_TEST01.
*&---------------------------------------------------------------------*
*& Report Z_SAP_FAVORITE_EXPORT
*&---------------------------------------------------------------------*
*& Demo program to export data from a user favorite menu
*Selection Options
*so_tcode Transaktion
*so_par Parent ID für Menübaum
*p_nurmen X Nur Menüs
*
*Ausgabe
*TR Transaction
*Ausgabe Bsp
*Analyse Favoriten
*
* 1 00001 01 00010 00004 TR SCUG
*Benutzerübernahme
* 1 00001 01 00020 00003 TR SCUA
*Zentrale Benutzerverwaltung
* 1 00001 01 00030 00002 TR SCUL
*Protokolle Zentrales Benutzermang.
*&---------------------------------------------------------------------*
*REPORT z_sap_favorite_export2.
TABLES smen_buffc.
*TYPES: gtt_smen_c TYPE TABLE OF smen_buffc.
DATA: gt_smen_c TYPE TABLE OF smen_buffc,
gv_smen_c LIKE LINE OF gt_smen_c.
DATA: char50 TYPE char50.
SELECT-OPTIONS so_tcode FOR char50. "DEFAULT 'MMBE'.
DATA: menu_num_5 TYPE menu_num_5.
SELECT-OPTIONS so_par FOR menu_num_5. "Parent_id
parameter p_nurmen as checkbox default ' '. "Nur Menüs
select-options so_uname for syst-uname.
SELECT * FROM smen_buffc INTO TABLE gt_smen_c
"WHERE uname = sy-uname
WHERE uname in so_uname
AND parent_id IN so_par
ORDER BY parent_id menu_level sort_order.
CHECK sy-subrc EQ 0.
DATA level TYPE i.
level = 1.
PERFORM anzeigen USING '00001' level.
FORM anzeigen USING lv_parent_id lv_level.
DATA lv_level_new TYPE i.
lv_level_new = lv_level + 1.
LOOP AT gt_smen_c INTO gv_smen_c WHERE parent_id = lv_parent_id.
if p_nurmen = 'X'.
if gv_smen_c-reporttype eq ' '.
WRITE:/
lv_level,
gv_smen_c-parent_id,
gv_smen_c-menu_level,
gv_smen_c-sort_order,
gv_smen_c-object_id,
gv_smen_c-reporttype,
gv_smen_c-report,
gv_smen_c-text.
endif.
else.
IF "Reporttype ' ' für Menü, TR für TCode, OT für Url etc.
"Kein Menü und kein TCode ausgewählt.
( gv_smen_c-reporttype ne ' ' AND so_tcode IS INITIAL )
OR
"Kein Menü und TCode ausgewählt
( gv_smen_c-reporttype ne ' ' AND so_tcode IS NOT INITIAL AND gv_smen_c-report IN so_tcode )
OR
"Menu
( gv_smen_c-reporttype eq ' ' ).
WRITE:/
lv_level,
gv_smen_c-parent_id,
gv_smen_c-menu_level,
gv_smen_c-sort_order,
gv_smen_c-object_id,
gv_smen_c-reporttype,
gv_smen_c-report,
gv_smen_c-text.
ENDIF.
endif.
IF gv_smen_c-reporttype NE 'TR'.
PERFORM anzeigen USING gv_smen_c-object_id lv_level_new.
ENDIF.
ENDLOOP.
ENDFORM.