通过se38新建一个程序:ZFIND_USER_EXIT_AND_BADIS
    然后将以下代码复制到其中,保存->激活->执行,即可!

    1. **&--------------------------「程序说明-START」------------------------*
    2. *
    3. **& ReportName: ZFIND_USER_EXIT_AND_BADIS
    4. *
    5. **& Packet: $TMP
    6. *
    7. **& Author: Gjboy
    8. *
    9. **& CreatedDate: 14.04.2021 13:36:32
    10. *
    11. **& Intention : 寻找USER_EXIT用户出口和BADI增强点程序
    12. *
    13. ** Detail:
    14. *
    15. **
    16. *
    17. **&--------------------------「程序说明-END」--------------------------*
    18. REPORT zfind_user_exit_and_badis.
    19. ***********************************************************************
    20. **-------------------------- T A B L E S -----------------------------*
    21. ***********************************************************************
    22. TABLES:tstc,tadir,modsapt,modact,trdir,tfdir,enlfdir,sxs_attrt,tstct.
    23. ***********************************************************************
    24. **----------------------- V A R I A B L E S --------------------------*
    25. ***********************************************************************
    26. DATA:jtab LIKE tadir OCCURS 0 WITH HEADER LINE.
    27. DATA:wa_tadir TYPE tadir.
    28. DATA:v_devclass LIKE tadir-devclass.
    29. DATA:field1(30).
    30. *&--------------------------「选择屏幕声明」------------------------------*
    31. SELECTION-SCREEN BEGIN OF BLOCK blk WITH FRAME TITLE TEXT-001.
    32. PARAMETERS : p_tcode LIKE tstc-tcode,
    33. p_pgmna LIKE tstc-pgmna.
    34. SELECTION-SCREEN:BEGIN OF LINE,
    35. COMMENT 75(50) TEXT-c01,
    36. END OF LINE.
    37. SELECTION-SCREEN:BEGIN OF LINE,
    38. COMMENT 79(50) TEXT-c02,
    39. END OF LINE.
    40. SELECTION-SCREEN END OF BLOCK blk.
    41. START-OF-SELECTION.
    42. IF NOT p_tcode IS INITIAL.
    43. SELECT SINGLE * FROM tstc WHERE tcode EQ p_tcode.
    44. ELSEIF NOT p_pgmna IS INITIAL.
    45. tstc-pgmna = p_pgmna.
    46. ENDIF.
    47. IF sy-subrc EQ 0.
    48. SELECT SINGLE * FROM tadir
    49. WHERE pgmid = 'R3TR'
    50. AND object = 'PROG'
    51. AND obj_name = tstc-pgmna.
    52. MOVE : tadir-devclass TO v_devclass.
    53. IF sy-subrc NE 0.
    54. SELECT SINGLE * FROM trdir
    55. WHERE name = tstc-pgmna.
    56. IF trdir-subc EQ 'F'.
    57. SELECT SINGLE * FROM tfdir
    58. WHERE pname = tstc-pgmna.
    59. SELECT SINGLE * FROM enlfdir
    60. WHERE funcname = tfdir-funcname.
    61. SELECT SINGLE * FROM tadir
    62. WHERE pgmid = 'R3TR'
    63. AND object = 'FUGR'
    64. AND obj_name EQ enlfdir-area.
    65. MOVE : tadir-devclass TO v_devclass.
    66. ENDIF.
    67. ENDIF.
    68. SELECT * FROM tadir INTO TABLE jtab WHERE pgmid = 'R3TR' AND
    69. object IN ('SMOD', 'SXSD') AND
    70. devclass = v_devclass.
    71. SELECT SINGLE * FROM tstct WHERE sprsl EQ sy-langu AND
    72. tcode EQ p_tcode.
    73. FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
    74. WRITE:/(19) 'Transaction Code - ',
    75. 20(20) p_tcode,
    76. 45(50) tstct-ttext.
    77. SKIP.
    78. IF NOT jtab[] IS INITIAL.
    79. WRITE:/(105) sy-uline.
    80. FORMAT COLOR COL_HEADING INTENSIFIED ON.
    81. SORT jtab BY object.
    82. DATA : wf_txt(60) TYPE c,
    83. wf_smod TYPE i,
    84. wf_badi TYPE i,
    85. wf_object2(30) TYPE c.
    86. CLEAR : wf_smod, wf_badi , wf_object2.
    87. LOOP AT jtab INTO wa_tadir.
    88. AT FIRST.
    89. FORMAT COLOR COL_HEADING INTENSIFIED ON.
    90. WRITE:/1 sy-vline,
    91. 2 'Enhancement/ Business Add-in',
    92. 41 sy-vline ,
    93. 42 'Description',
    94. 105 sy-vline.
    95. WRITE:/(105) sy-uline.
    96. ENDAT.
    97. CLEAR wf_txt.
    98. AT NEW object.
    99. IF wa_tadir-object = 'SMOD'.
    100. wf_object2 = 'Enhancement' .
    101. ELSEIF wa_tadir-object = 'SXSD'.
    102. wf_object2 = ' Business Add-in'.
    103. ENDIF.
    104. FORMAT COLOR COL_GROUP INTENSIFIED ON.
    105. WRITE:/1 sy-vline,
    106. 2 wf_object2,
    107. 105 sy-vline.
    108. ENDAT.
    109. CASE wa_tadir-object.
    110. WHEN 'SMOD'.
    111. wf_smod = wf_smod + 1.
    112. SELECT SINGLE modtext INTO wf_txt
    113. FROM modsapt
    114. WHERE sprsl = sy-langu
    115. AND name = wa_tadir-obj_name.
    116. FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
    117. WHEN 'SXSD'.
    118. * For BADis
    119. wf_badi = wf_badi + 1 .
    120. SELECT SINGLE text INTO wf_txt
    121. FROM sxs_attrt
    122. WHERE sprsl = sy-langu
    123. AND exit_name = wa_tadir-obj_name.
    124. FORMAT COLOR COL_NORMAL INTENSIFIED ON.
    125. ENDCASE.
    126. WRITE:/1 sy-vline,
    127. 2 wa_tadir-obj_name HOTSPOT ON,
    128. 41 sy-vline ,
    129. 42 wf_txt,
    130. 105 sy-vline.
    131. AT END OF object.
    132. WRITE: /(105) sy-uline.
    133. ENDAT.
    134. ENDLOOP.
    135. WRITE:/(105) sy-uline.
    136. SKIP.
    137. FORMAT COLOR COL_TOTAL INTENSIFIED ON.
    138. WRITE:/ 'No.of Exits:' , wf_smod.
    139. WRITE:/ 'No.of BADis:' , wf_badi.
    140. ELSE.
    141. FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
    142. WRITE:/(105) 'No userexits or BADis exist'.
    143. ENDIF.
    144. ELSE.
    145. FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
    146. WRITE:/(105) 'Transaction does not exist'.
    147. ENDIF.
    148. AT LINE-SELECTION.
    149. DATA: wf_object TYPE tadir-object.
    150. CLEAR wf_object.
    151. GET CURSOR FIELD field1.
    152. CHECK field1(8) EQ 'WA_TADIR'.
    153. READ TABLE jtab WITH KEY obj_name = sy-lisel+1(20).
    154. MOVE jtab-object TO wf_object.
    155. CASE wf_object.
    156. WHEN 'SMOD'.
    157. SET PARAMETER ID 'MON' FIELD sy-lisel+1(10).
    158. CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
    159. WHEN 'SXSD'.
    160. SET PARAMETER ID 'EXN' FIELD sy-lisel+1(20).
    161. CALL TRANSACTION 'SE18' AND SKIP FIRST SCREEN.
    162. ENDCASE.
    163. *Text elements
    164. *----------------------------------------------------------
    165. * C01 备注:
    166. * C02 只需选择其中一项填写即可!
    167. *Selection texts
    168. *----------------------------------------------------------
    169. * P_PGMNA D .
    170. * P_TCODE D .