Tuesday, May 12, 2026

Report for Checking Table and Includes for Changes

 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.

PARAMETERSpa_tab TYPE tabname OBLIGATORY.

DATAlt_dd03p TYPE STANDARD TABLE OF dd03p.

DATA:
  ls_objtype TYPE vrs_rng_objtype,
  lt_objtype TYPE vrs_rngtab_objtype.

DATAls_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(1NE '.'.

*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_namee070~trkorre070~as4datee070~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

Search SAPMV45A includes for Constants and Statics

 This report can find CONSTANTS and STATICS in SAPMV45A Z-includes. We know that Constants and Statics consume global variables so identifyi...