sap 根据TOCE找 USER_EXIT

*&---------------------------------------------------------------------*
*& Report  ZUSER_EXIT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

"REPORT  ZUSER_EXIT.
REPORT zfind_userexit NO STANDARD PAGE HEADING.

TABLES tstctadirmodsaptmodacttrdirtfdirenlfdir.
TABLES tstct.
DATA jtab LIKE tadir OCCURS WITH HEADER LINE.
DATA field1(30).
DATA v_devclass LIKE tadir-devclass.
PARAMETERS p_tcode LIKE tstc-tcode OBLIGATORY.

SELECT SINGLE FROM tstc WHERE tcode EQ p_tcode.
IF sy-subrc EQ 0.
  SELECT SINGLE FROM tadir WHERE pgmid 'R3TR'
  AND object 'PROG'
  AND obj_name tstc-pgmna.
  MOVE tadir-devclass TO v_devclass.
  IF sy-subrc NE 0.
    SELECT SINGLE FROM trdir WHERE name tstc-pgmna.
    IF trdir-subc EQ 'F'.
      SELECT SINGLE FROM tfdir WHERE pname tstc-pgmna.
      SELECT SINGLE FROM enlfdir WHERE funcname =
      tfdir-funcname.
      SELECT SINGLE FROM tadir WHERE pgmid 'R3TR'
      AND object 'FUGR'
      AND obj_name EQ enlfdir-area.

      MOVE tadir-devclass TO v_devclass.
    ENDIF.
  ENDIF.
  SELECT FROM tadir INTO TABLE jtab
  WHERE pgmid 'R3TR'
  AND object 'SMOD'
  AND devclass v_devclass.
  SELECT SINGLE FROM tstct WHERE sprsl EQ sy-langu AND
  tcode EQ p_tcode.
  FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
  WRITE:/(19'Transaction Code - ',
  20(20p_tcode,
  45(50tstct-ttext.
  SKIP.
  IF NOT jtab[] IS INITIAL.
    WRITE:/(95sy-uline.
    FORMAT COLOR COL_HEADING INTENSIFIED ON.
    WRITE:/1 sy-vline,
    'Exit Name',
    21 sy-vline ,
    22 'Description',
    95 sy-vline.
    WRITE:/(95sy-uline.
    LOOP AT jtab.
      SELECT SINGLE FROM modsapt
      WHERE sprsl sy-langu AND
      name jtab-obj_name.
      FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
      WRITE:/1 sy-vline,
      jtab-obj_name HOTSPOT ON,
      21 sy-vline ,
      22 modsapt-modtext,
      95 sy-vline.
    ENDLOOP.
    WRITE:/(95sy-uline.
    DESCRIBE TABLE jtab.
    SKIP.
    FORMAT COLOR COL_TOTAL INTENSIFIED ON.
    WRITE:'No of Exits:' sy-tfill.
  ELSE.
    FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
    WRITE:/(95'No User Exit exists'.
  ENDIF.
ELSE.
  FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
  WRITE:/(95'Transaction Code Does Not Exist'.
ENDIF.

AT LINE-SELECTION.
  GET CURSOR FIELD field1.
  CHECK field1(4EQ 'JTAB'.
  SET PARAMETER ID 'MON' FIELD sy-lisel+1(10).
  CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.

原文地址:https://www.cnblogs.com/goodsmith/p/3316968.html