Using this program we can find the includes within a standard table like VBAK, etc. This helps in checking
*&---------------------------------------------------------------------*
*& Report ZGB_TABLE_INC
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zgb_table_inc.
PARAMETERS: pa_tab TYPE tabname OBLIGATORY.
DATA: lt_dd03p TYPE STANDARD TABLE OF dd03p.
DATA:
ls_objtype TYPE vrs_rng_objtype,
lt_objtype TYPE vrs_rngtab_objtype.
DATA: ls_obj_name TYPE /pm0/abr_plib_whitelist,
lt_obj_name TYPE STANDARD TABLE OF /pm0/abr_plib_whitelist.
ls_objtype-sign = 'I'.
ls_objtype-option = 'EQ'.
ls_objtype-low = 'TABL'.
APPEND ls_objtype TO lt_objtype.
ls_objtype-low = 'TABD'.
APPEND ls_objtype TO lt_objtype.
CALL FUNCTION 'DDIF_TABL_GET'
EXPORTING
name = pa_tab
* STATE = 'A'
* LANGU = ' '
* IMPORTING
* GOTSTATE =
* DD02V_WA =
* DD09L_WA =
TABLES
dd03p_tab = lt_dd03p
* DD05M_TAB =
* DD08V_TAB =
* DD12V_TAB =
* DD17V_TAB =
* DD35V_TAB =
* DD36M_TAB =
* EXCEPTIONS
* ILLEGAL_INPUT = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
*WRITE:/ 'Test'.
*
*LOOP AT lt_dd03p ASSIGNING FIELD-SYMBOL(<lfs_dd03p>).
* IF <lfs_dd03p>-fieldname(1) EQ '.'.
* WRITE:/ <lfs_dd03p>-tabname, <lfs_dd03p>-fieldname, <lfs_dd03p>-precfield.
* endif.
*ENDLOOP.
*WRITE:/ 'Test 2'.
DELETE lt_dd03p WHERE fieldname(1) NE '.'.
*LOOP AT lt_dd03p ASSIGNING FIELD-SYMBOL(<lfs_dd03p>).
* WRITE:/ <lfs_dd03p>-tabname, <lfs_dd03p>-fieldname, <lfs_dd03p>-precfield.
*ENDLOOP.
*WRITE:/ 'Test 3'.
IF lt_dd03p[] IS NOT INITIAL.
SELECT *
FROM dd02l
INTO TABLE @DATA(lt_dd02l)
FOR ALL ENTRIES IN @lt_dd03p
WHERE tabname = @lt_dd03p-precfield.
IF sy-subrc EQ 0.
SORT lt_dd02l BY as4date DESCENDING.
LOOP AT lt_dd02l ASSIGNING FIELD-SYMBOL(<lfs_dd02l>).
* WRITE:/ <lfs_dd02l>-tabname, <lfs_dd02l>-as4date, <lfs_dd02l>-as4time, <lfs_dd02l>-as4user.
ls_obj_name-sign = 'I'.
ls_obj_name-option = 'EQ'.
ls_obj_name-low = <lfs_dd02l>-tabname.
APPEND ls_obj_name TO lt_obj_name.
ENDLOOP.
ls_obj_name-sign = 'I'.
ls_obj_name-option = 'EQ'.
ls_obj_name-low = pa_tab.
APPEND ls_obj_name TO lt_obj_name.
SORT lt_obj_name.
DELETE ADJACENT DUPLICATES FROM lt_obj_name.
SELECT e071~obj_name, e070~trkorr, e070~as4date, e070~as4time
FROM e070
INNER JOIN e071
ON e070~trkorr = e071~trkorr
INTO TABLE @DATA(lt_trlog)
* FOR ALL ENTRIES IN @lt_obj_name
WHERE e071~obj_name IN @lt_obj_name.
*sort lt_trlog by as4time DESCENDING.
SORT lt_trlog BY obj_name DESCENDING as4date DESCENDING as4time DESCENDING.
DELETE ADJACENT DUPLICATES FROM lt_trlog COMPARING obj_name.
SORT lt_trlog BY as4date DESCENDING.
WRITE:/ 'Table/Include/Append Transport Request TR ChDt TR ChTm User ID'.
LOOP AT lt_trlog ASSIGNING FIELD-SYMBOL(<lfs_trlog>).
READ TABLE lt_dd02l ASSIGNING <lfs_dd02l> WITH KEY tabname = <lfs_trlog>-obj_name.
WRITE:/ <lfs_trlog>-obj_name(60), <lfs_trlog>-trkorr, <lfs_trlog>-as4date, <lfs_trlog>-as4time, <lfs_dd02l>-as4user.
ENDLOOP.
ENDIF.
ENDIF.
Output
No comments:
Post a Comment