如何通过Tcode查找SAP各事务码对应的增强出口清单
操作步骤如下
12步骤 点击激活,会进入如下界面,点击V后返回上面界面 ,继续执行13步骤.
第9步骤粘贴代码如下:
*&---------------------------------------------------------------------*
*& Report ZBB_FIND_EXIT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZBB_FIND_EXIT
NO STANDARD PAGE HEADING LINE-SIZE 255.
TABLES : TSTC, "SAP Transaction Codes(SAP 事务代码)
TADIR, "Directory of Repository Objects(资源库对象的目录)
MODSAPT, "SAP Enhancements - Short Texts(SAP增强-短文件)
SXS_ATTRT,"Exit: Definition side: Attributes, Text table
MODACT, "Modifications(修正)
TRDIR, "System table TRDIR(系统表 TRDIR)
TFDIR, "Function Module(功能模块)
ENLFDIR, "Additional Attributes for Function Modules(功能模块的附加属性)
TSTCT. "Transaction Code Texts(事务代码文本)
DATA : JTAB LIKE TADIR OCCURS 0 WITH HEADER LINE. "SMOD
DATA : ITAB LIKE TADIR OCCURS 0 WITH HEADER LINE. "SE18-BADI
DATA : KTAB LIKE TADIR OCCURS 0 WITH HEADER LINE. "Enhancement implementation-ENHO
DATA : LTAB LIKE TADIR OCCURS 0 WITH HEADER LINE. "Enhancement Spot-ENHS
DATA : MTAB LIKE TADIR OCCURS 0 WITH HEADER LINE. "Composite Enhancement implementation-ENHC
DATA : FIELD1(30).
DATA : V_DEVCLASS LIKE TADIR-DEVCLASS.
DATA : T_COUNT LIKE SY-TFILL.
DATA: BDCDATA_WA TYPE BDCDATA,
BDCDATA_TAB TYPE TABLE OF BDCDATA.
DATA OPT TYPE CTU_PARAMS.
SELECTION-SCREEN BEGIN OF BLOCK A01 WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN SKIP.
PARAMETERS : P_TCODE LIKE TSTC-TCODE OBLIGATORY.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN END OF BLOCK A01.
START-OF-SELECTION.
CLEAR: ITAB,JTAB.
REFRESH:ITAB,JTAB.
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 = 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 * FROM TADIR
INTO TABLE ITAB
WHERE PGMID = 'R3TR'
AND OBJECT = 'SXSD'
AND DEVCLASS = V_DEVCLASS.
SELECT * FROM TADIR
INTO TABLE KTAB
WHERE PGMID = 'R3TR'
AND OBJECT = 'ENHO'
AND DEVCLASS = V_DEVCLASS.
SELECT * FROM TADIR
INTO TABLE LTAB
WHERE PGMID = 'R3TR'
AND OBJECT = 'ENHS'
AND DEVCLASS = V_DEVCLASS.
SELECT * FROM TADIR
INTO TABLE MTAB
WHERE PGMID = 'R3TR'
AND OBJECT = 'ENHC'
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:/(12) '事务代码 - ',
13(20) P_TCODE,
34(10) '功能 - ' ,
45(50) TSTCT-TTEXT.
SKIP.
IF NOT JTAB[] IS INITIAL.
WRITE:/(117) SY-ULINE.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
WRITE:/1 SY-VLINE,
2 'Exit Name',
43 SY-VLINE ,
44 'Description',
117 SY-VLINE.
WRITE:/(117) SY-ULINE.
LOOP AT JTAB.
CLEAR MODSAPT.
SELECT SINGLE * FROM MODSAPT
WHERE SPRSL = SY-LANGU AND
NAME = JTAB-OBJ_NAME.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
WRITE:/1 SY-VLINE,
2 JTAB-OBJ_NAME HOTSPOT ON,
43 SY-VLINE ,
44 MODSAPT-MODTEXT,
117 SY-VLINE.
ENDLOOP.
WRITE:/(117) SY-ULINE.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
WRITE:/1 SY-VLINE,
2 'Badi Name(definition)',
43 SY-VLINE ,
44 'Description',
117 SY-VLINE.
WRITE:/(117) SY-ULINE.
LOOP AT ITAB.
CLEAR SXS_ATTRT.
SELECT SINGLE * FROM SXS_ATTRT
WHERE SPRSL = SY-LANGU AND
EXIT_NAME = ITAB-OBJ_NAME.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
WRITE:/1 SY-VLINE,
2 ITAB-OBJ_NAME HOTSPOT ON,
43 SY-VLINE ,
44 SXS_ATTRT-TEXT,
117 SY-VLINE.
ENDLOOP.
WRITE:/(117) SY-ULINE.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
WRITE:/1 SY-VLINE,
2 'Enhancement Implementation',
43 SY-VLINE ,
44 'Description',
117 SY-VLINE.
WRITE:/(117) SY-ULINE.
LOOP AT KTAB.
CLEAR SXS_ATTRT.
SELECT SINGLE * FROM SXS_ATTRT
WHERE SPRSL = SY-LANGU AND
EXIT_NAME = KTAB-OBJ_NAME.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
WRITE:/1 SY-VLINE,
2 KTAB-OBJ_NAME HOTSPOT ON,
43 SY-VLINE ,
44 SXS_ATTRT-TEXT,
117 SY-VLINE.
ENDLOOP.
WRITE:/(117) SY-ULINE.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
WRITE:/1 SY-VLINE,
2 'Enhancement Spot',
43 SY-VLINE ,
44 'Description',
117 SY-VLINE.
WRITE:/(117) SY-ULINE.
LOOP AT LTAB.
CLEAR SXS_ATTRT.
SELECT SINGLE * FROM SXS_ATTRT
WHERE SPRSL = SY-LANGU AND
EXIT_NAME = LTAB-OBJ_NAME.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
WRITE:/1 SY-VLINE,
2 LTAB-OBJ_NAME HOTSPOT ON,
43 SY-VLINE ,
44 SXS_ATTRT-TEXT,
117 SY-VLINE.
ENDLOOP.
WRITE:/(117) SY-ULINE.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
WRITE:/1 SY-VLINE,
2 'Composite Enhancement Implementation',
43 SY-VLINE ,
44 'Description',
117 SY-VLINE.
WRITE:/(117) SY-ULINE.
LOOP AT MTAB.
CLEAR SXS_ATTRT.
SELECT SINGLE * FROM SXS_ATTRT
WHERE SPRSL = SY-LANGU AND
EXIT_NAME = MTAB-OBJ_NAME.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
WRITE:/1 SY-VLINE,
2 MTAB-OBJ_NAME HOTSPOT ON,
43 SY-VLINE ,
44 SXS_ATTRT-TEXT,
117 SY-VLINE.
ENDLOOP.
WRITE:/(117) SY-ULINE.
CLEAR T_COUNT.
DESCRIBE TABLE JTAB.
T_COUNT = SY-TFILL.
DESCRIBE TABLE ITAB.
T_COUNT = T_COUNT + SY-TFILL.
DESCRIBE TABLE KTAB.
T_COUNT = T_COUNT + SY-TFILL.
DESCRIBE TABLE LTAB.
T_COUNT = T_COUNT + SY-TFILL.
DESCRIBE TABLE MTAB.
T_COUNT = T_COUNT + SY-TFILL.
SKIP.
FORMAT COLOR COL_TOTAL INTENSIFIED ON.
WRITE:/ '用户出口数量:' , T_COUNT.
ELSE.
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(95) '此TCode没有用户出口!'.
ENDIF.
ELSE.
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(95) '事务代码不存在!'.
ENDIF.
AT LINE-SELECTION.
GET CURSOR FIELD FIELD1.
IF FIELD1(4) EQ 'JTAB'.
SET PARAMETER ID 'MON' FIELD SY-LISEL+1(10).
CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
ELSEIF FIELD1(4) EQ 'ITAB'.
* SET PARAMETER ID 'EXN' FIELD sy-lisel+1(40).
* CALL TRANSACTION 'SE18' AND SKIP FIRST SCREEN.
CLEAR BDCDATA_WA.
BDCDATA_WA-PROGRAM = 'SAPLSEXO'.
BDCDATA_WA-DYNPRO = '0100'.
BDCDATA_WA-DYNBEGIN = 'X'.
APPEND BDCDATA_WA TO BDCDATA_TAB.
CLEAR BDCDATA_WA.
BDCDATA_WA-FNAM = 'BDC_CURSOR'.
BDCDATA_WA-FVAL = 'G_ENHSPOTNAME'.
APPEND BDCDATA_WA TO BDCDATA_TAB.
CLEAR BDCDATA_WA.
BDCDATA_WA-FNAM = 'G_IS_BADI'.
BDCDATA_WA-FVAL = 'X'.
APPEND BDCDATA_WA TO BDCDATA_TAB.
CLEAR BDCDATA_WA.
BDCDATA_WA-FNAM = 'BDC_OKCODE'.
BDCDATA_WA-FVAL = '=ISSPOT'.
APPEND BDCDATA_WA TO BDCDATA_TAB.
CLEAR BDCDATA_WA.
BDCDATA_WA-PROGRAM = 'SAPLSEXO'.
BDCDATA_WA-DYNPRO = '0100'.
BDCDATA_WA-DYNBEGIN = 'X'.
APPEND BDCDATA_WA TO BDCDATA_TAB.
CLEAR BDCDATA_WA.
BDCDATA_WA-FNAM = 'BDC_CURSOR'.
BDCDATA_WA-FVAL = 'G_BADINAME'.
APPEND BDCDATA_WA TO BDCDATA_TAB.
CLEAR BDCDATA_WA.
BDCDATA_WA-FNAM = 'G_BADINAME'.
BDCDATA_WA-FVAL = SY-LISEL+1(40).
APPEND BDCDATA_WA TO BDCDATA_TAB.
OPT-DISMODE = 'E'.
OPT-DEFSIZE = 'X'.
CALL TRANSACTION 'SE18' USING BDCDATA_TAB OPTIONS FROM OPT.
REFRESH BDCDATA_TAB.
ELSEIF FIELD1(4) EQ 'KTAB'.
* SET PARAMETER ID 'IMN_BADI' FIELD sy-lisel+1(40).
* CALL TRANSACTION 'SE19' AND SKIP FIRST SCREEN.
CLEAR BDCDATA_WA.
BDCDATA_WA-PROGRAM = 'SAPLENHANCEMENTS'.
BDCDATA_WA-DYNPRO = '0100'.
BDCDATA_WA-DYNBEGIN = 'X'.
APPEND BDCDATA_WA TO BDCDATA_TAB.
CLEAR BDCDATA_WA.
BDCDATA_WA-FNAM = 'BDC_CURSOR'.
BDCDATA_WA-FVAL = 'RSEUX-CXH_VALUE'.
APPEND BDCDATA_WA TO BDCDATA_TAB.
CLEAR BDCDATA_WA.
BDCDATA_WA-FNAM = 'RSEUX-CXH'.
BDCDATA_WA-FVAL = 'X'.
APPEND BDCDATA_WA TO BDCDATA_TAB.
CLEAR BDCDATA_WA.
BDCDATA_WA-FNAM = 'RSEUX-CXH_VALUE'.
BDCDATA_WA-FVAL = SY-LISEL+1(40).
APPEND BDCDATA_WA TO BDCDATA_TAB.
* CLEAR bdcdata_wa.
* bdcdata_wa-fnam = 'BDC_OKCODE'.
* bdcdata_wa-fval = '/00'.
* APPEND bdcdata_wa TO bdcdata_tab.
OPT-DISMODE = 'E'.
OPT-DEFSIZE = 'X'.
CALL TRANSACTION 'SE20' USING BDCDATA_TAB OPTIONS FROM OPT.
REFRESH BDCDATA_TAB.
ELSEIF FIELD1(4) EQ 'LTAB'.
* SET PARAMETER ID 'ENHSPOT' FIELD sy-lisel+1(40).
* CALL TRANSACTION 'SE18' AND SKIP FIRST SCREEN.
CLEAR BDCDATA_WA.
BDCDATA_WA-PROGRAM = 'SAPLENHANCEMENTS'.
BDCDATA_WA-DYNPRO = '0100'.
BDCDATA_WA-DYNBEGIN = 'X'.
APPEND BDCDATA_WA TO BDCDATA_TAB.
CLEAR BDCDATA_WA.
BDCDATA_WA-FNAM = 'BDC_CURSOR'.
BDCDATA_WA-FVAL = 'RSEUX-C_XS_VALUE'.
APPEND BDCDATA_WA TO BDCDATA_TAB.
CLEAR BDCDATA_WA.
BDCDATA_WA-FNAM = 'RSEUX-C_XS'.
BDCDATA_WA-FVAL = 'X'.
APPEND BDCDATA_WA TO BDCDATA_TAB.
CLEAR BDCDATA_WA.
BDCDATA_WA-FNAM = 'RSEUX-C_XS_VALUE'.
BDCDATA_WA-FVAL = SY-LISEL+1(40).
APPEND BDCDATA_WA TO BDCDATA_TAB.
* CLEAR bdcdata_wa.
* bdcdata_wa-fnam = 'BDC_OKCODE'.
* bdcdata_wa-fval = '/00'.
* APPEND bdcdata_wa TO bdcdata_tab.
OPT-DISMODE = 'E'.
OPT-DEFSIZE = 'X'.
CALL TRANSACTION 'SE20' USING BDCDATA_TAB OPTIONS FROM OPT.
REFRESH BDCDATA_TAB.
ELSEIF FIELD1(4) EQ 'MTAB'.
* SET PARAMETER ID 'IMN_BADI' FIELD sy-lisel+1(40).
CLEAR BDCDATA_WA.
BDCDATA_WA-PROGRAM = 'SAPLENHANCEMENTS'.
BDCDATA_WA-DYNPRO = '0100'.
BDCDATA_WA-DYNBEGIN = 'X'.
APPEND BDCDATA_WA TO BDCDATA_TAB.
CLEAR BDCDATA_WA.
BDCDATA_WA-FNAM = 'BDC_CURSOR'.
BDCDATA_WA-FVAL = 'RSEUX-CXT_VALUE'.
APPEND BDCDATA_WA TO BDCDATA_TAB.
CLEAR BDCDATA_WA.
BDCDATA_WA-FNAM = 'RSEUX-CXT'.
BDCDATA_WA-FVAL = 'X'.
APPEND BDCDATA_WA TO BDCDATA_TAB.
CLEAR BDCDATA_WA.
BDCDATA_WA-FNAM = 'RSEUX-CXT_VALUE'.
BDCDATA_WA-FVAL = SY-LISEL+1(40).
APPEND BDCDATA_WA TO BDCDATA_TAB.
CLEAR BDCDATA_WA.
BDCDATA_WA-FNAM = 'BDC_OKCODE'.
BDCDATA_WA-FVAL = '/00'.
APPEND BDCDATA_WA TO BDCDATA_TAB.
OPT-DISMODE = 'E'.
OPT-DEFSIZE = 'X'.
CALL TRANSACTION 'SE20' USING BDCDATA_TAB OPTIONS FROM OPT.
REFRESH BDCDATA_TAB.
ENDIF.
以上代码来自互联网转载,原作者无法确定,所以未申明出处和原作者,如有冒犯请谅解!
本人已在S4和ECC版本测试,程序可用.
第13步骤点击测试运行进入如下界面
运行代码,查找该事物码对应增强点清单
以MIGO为例
运行程序后进入界面
执行后显示如下
以上清单包含一代至四代所有增强点 ,具体业务用到那个,需要根据增强描述说明,然后自己打断点测试了.