APBPFind 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. 

原文地址:https://www.cnblogs.com/xiaomaohai/p/6157338.html