APBP--Find Unused Includes
REPORT zunusedincludes.
TYPES:
BEGIN OF t_all_includes,
prog LIKE d010sinf-prog,
END OF t_all_includes,
BEGIN OF t_used_includes,
include LIKE d010inc-include,
END OF t_used_includes.
DATA:
itab_all_includes TYPE STANDARD TABLE OF t_all_includes,
itab_used_includes TYPE STANDARD TABLE OF t_used_includes,
wa_all_includes TYPE t_all_includes,
wa_used_includes TYPE t_used_includes.
START-OF-SELECTION.
* get a list of all includes first
*(the appl ne 'S' removes classes* from the list)
SELECT prog
INTO TABLE itab_all_includes
FROM d010sinf
WHERE prog LIKE 'Z%'
AND subc = 'I'
AND appl NE 'S'.
SORT itab_all_includes BY prog.
* this table is a list of includes with parent program
SELECT include
INTO TABLE itab_used_includes
FROM d010inc
WHERE include LIKE 'Z%'.
SORT itab_used_includes BY include.
* now list the includes that are not in the above table
LOOP AT itab_all_includes INTO wa_all_includes.
READ TABLE itab_used_includes
WITH KEY include = wa_all_includes-prog
TRANSPORTING NO FIELDS
BINARY SEARCH.
IF sy-subrc NE 0.
WRITE:/
wa_all_includes-prog.
ENDIF.
ENDLOOP.