
After an extensive search for a suitable program to effectively display program tables, I decided to take matters into my own hands. Through careful planning and execution, I've developed a small custom solution that streamlines the process of identifying tables necessary for generating tailored reports to meet the unique needs of each customer. I welcome any further suggestions or feedback on this endeavor.
Code listing for: ZCUST_TCODE_TO_TABLES
Description: Program to get TABLES used in a TCODE
*&---------------------------------------------------------------------* *& Report ZCUST_TCODE_TO_TABLES *&---------------------------------------------------------------------* *& Owner : Surendra Karma *& Note : This is just a test program. I'm writing as per my *& understanding. This can not guarantee that all the *& tables are captured. Suggestions are always Appreciated! *&---------------------------------------------------------------------* REPORT zcust_tcode_to_tables. DATA: lv_tcode TYPE tstc-tcode. SELECT-OPTIONS: s_tcode FOR lv_tcode NO INTERVALS OBLIGATORY. PARAMETERS : c_transp AS CHECKBOX, c_inttab AS CHECKBOX, c_view AS CHECKBOX, c_append AS CHECKBOX, c_all AS CHECKBOX DEFAULT abap_true. AT SELECTION-SCREEN OUTPUT. IF s_tcode IS NOT INITIAL. SELECT COUNT( * ) FROM tstc UP TO 1 ROWS WHERE tcode IN @s_tcode. IF sy-subrc <> 0. MESSAGE 'Please enter a valid t-code' TYPE 'I' DISPLAY LIKE 'E'. ENDIF. ENDIF. START-OF-SELECTION. SELECT tstc~tcode, tstct~ttext, tstc~pgmna, d010tab~tabname, dd02l~tabclass, dd02l~sqltab, dd02t~ddtext FROM tstc AS tstc INNER JOIN tstct AS tstct ON tstct~tcode = tstc~tcode INNER JOIN d010tab AS d010tab ON d010tab~master = tstc~pgmna INNER JOIN dd02l AS dd02l ON dd02l~tabname = d010tab~tabname INNER JOIN dd02t AS dd02t ON dd02t~tabname = d010tab~tabname INTO TABLE @DATA(lt_data) WHERE tstc~tcode IN @s_tcode AND dd02t~ddlanguage = 'E' AND tstct~sprsl = 'E'. IF sy-subrc = 0. SORT lt_data BY tcode tabclass tabname DESCENDING. IF c_all IS INITIAL. IF c_transp IS INITIAL. DELETE lt_data WHERE tabclass = 'TRANSP'. ENDIF. IF c_inttab IS INITIAL. DELETE lt_data WHERE tabclass = 'INTTAB'. ENDIF. IF c_view IS INITIAL. DELETE lt_data WHERE tabclass = 'VIEW'. ENDIF. IF c_append IS INITIAL. DELETE lt_data WHERE tabclass = 'APPEND'. ENDIF. ENDIF. ENDIF. DATA lo_salv TYPE REF TO cl_salv_table. TRY. cl_salv_table=>factory( IMPORTING r_salv_table = lo_salv CHANGING t_table = lt_data ). CATCH cx_salv_msg INTO DATA(lo_excp). " ALV: General Error Class with Message
MESSAGE lo_excp TYPE 'E' DISPLAY-LIKE 'I'. ENDTRY. lo_salv->get_functions( )->set_all( abap_true ). lo_salv->get_display_settings( )->set_striped_pattern( abap_true ). lo_salv->get_columns( )->set_optimize( abap_true ). lo_salv->get_selections( )->set_selection_mode( if_salv_c_selection_mode=>row_column ). lo_salv->display( ). *Selection texts *---------------------------------------------------------- * C_ALL All tables/structure * C_APPEND Append structures * C_INTTAB Internal tables/Structures * C_TRANSP Transparent tables * C_VIEW Views * S_TCODE Transaction Codes *Messages *---------------------------------------------------------- * Message class: Hard coded
Extracted by Direct Download Enterprise version 1.3.1 - E.G.Mellodew. 1998-2005 UK. Sap Release 757
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
4 | |
3 | |
2 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |