TABLES : tstc, "SAP Transaction Codes(SAP 事务代码) tadir, "Directory of Repository Objects(资源库对象的目录) modsapt, "SAP Enhancements - Short Texts(SAP增强-短文件) 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. DATA : field1(30). DATA : v_devclass LIKE tadir-devclass. 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. 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 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:/(95) sy-uline. FORMAT COLOR COL_HEADING INTENSIFIED ON. WRITE:/1 sy-vline, 2 'Exit Name', 21 sy-vline , 22 'Description', 95 sy-vline. WRITE:/(95) sy-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, 2 jtab-obj_name HOTSPOT ON, 21 sy-vline , 22 modsapt-modtext, 95 sy-vline. ENDLOOP. WRITE:/(95) sy-uline. DESCRIBE TABLE jtab. SKIP. FORMAT COLOR COL_TOTAL INTENSIFIED ON. WRITE:/ '用户出口数量:' , sy-tfill. 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. CHECK field1(4) EQ 'JTAB'. SET PARAMETER ID 'MON' FIELD sy-lisel+1(10). CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN. ************************************************************************* 路漫漫其修远兮,吾将上下而求索。----Joi 版本更新V0.2(附加了根据程序名查询UserExit的功能),代码: ************************************************************************* SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L0S31 { font-style: italic; color: #808080; } .L0S32 { color: #3399FF; } .L0S33 { color: #4DA619; } .L0S52 { color: #0000FF; } *&---------------------------------------------------------------------* *& Report ZUSER_EXIT_JOI *&---------------------------------------------------------------------* *& V0.2 20121127 *&---------------------------------------------------------------------* REPORT ZUSER_EXIT_JOI. TABLES: TSTC, TADIR, MODSAPT, MODACT, TRDIR, TFDIR, ENLFDIR, SXS_ATTRT , TSTCT. PARAMETERS: P_TCODE LIKE TSTC-TCODE, "事务码 P_PGMNA LIKE TSTC-PGMNA. "程序名 DATA : JTAB LIKE TADIR OCCURS 0 WITH HEADER LINE. DATA : FIELD1(30). DATA : V_DEVCLASS LIKE TADIR-DEVCLASS. DATA : WA_TADIR TYPE TADIR. START-OF-SELECTION. IF NOT P_TCODE IS INITIAL. SELECT SINGLE * FROM TSTC WHERE TCODE EQ P_TCODE. ELSEIF NOT P_PGMNA IS INITIAL. TSTC-PGMNA = P_PGMNA. ENDIF. 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 IN ('SMOD', 'SXSD') 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(20) P_TCODE, 45(50) TSTCT-TTEXT. SKIP. IF NOT JTAB[] IS INITIAL. WRITE:/(105) SY-ULINE. FORMAT COLOR COL_HEADING INTENSIFIED ON. * Sorting the internal Table SORT JTAB BY OBJECT. DATA : WF_TXT(60) TYPE C, WF_SMOD TYPE I , WF_BADI TYPE I , WF_OBJECT2(30) TYPE C. CLEAR : WF_SMOD, WF_BADI , WF_OBJECT2. * Get the total SMOD. LOOP AT JTAB INTO WA_TADIR. AT FIRST. FORMAT COLOR COL_HEADING INTENSIFIED ON. WRITE:/1 SY-VLINE, 2 'Enhancement/ Business Add-in', 41 SY-VLINE , 42 'Description', 105 SY-VLINE. WRITE:/(105) SY-ULINE. ENDAT. CLEAR WF_TXT. AT NEW OBJECT. IF WA_TADIR-OBJECT = 'SMOD'. WF_OBJECT2 = 'Enhancement' . ELSEIF WA_TADIR-OBJECT = 'SXSD'. WF_OBJECT2 = ' Business Add-in'. ENDIF. FORMAT COLOR COL_GROUP INTENSIFIED ON. WRITE:/1 SY-VLINE, 2 WF_OBJECT2, 105 SY-VLINE. ENDAT. CASE WA_TADIR-OBJECT. WHEN 'SMOD'. WF_SMOD = WF_SMOD + 1. SELECT SINGLE MODTEXT INTO WF_TXT FROM MODSAPT WHERE SPRSL = SY-LANGU AND NAME = WA_TADIR-OBJ_NAME. FORMAT COLOR COL_NORMAL INTENSIFIED OFF. WHEN 'SXSD'. * For BADis WF_BADI = WF_BADI + 1 . SELECT SINGLE TEXT INTO WF_TXT FROM SXS_ATTRT WHERE SPRSL = SY-LANGU AND EXIT_NAME = WA_TADIR-OBJ_NAME. FORMAT COLOR COL_NORMAL INTENSIFIED ON. ENDCASE. WRITE:/1 SY-VLINE, 2 WA_TADIR-OBJ_NAME HOTSPOT ON, 41 SY-VLINE , 42 WF_TXT, 105 SY-VLINE. AT END OF OBJECT. WRITE : /(105) SY-ULINE. ENDAT. ENDLOOP. WRITE:/(105) SY-ULINE. SKIP. FORMAT COLOR COL_TOTAL INTENSIFIED ON. WRITE:/ 'No.of Exits:' , WF_SMOD. WRITE:/ 'No.of BADis:' , WF_BADI. ELSE. FORMAT COLOR COL_NEGATIVE INTENSIFIED ON. WRITE:/(105) 'No userexits or BADis exist'. ENDIF. ELSE. FORMAT COLOR COL_NEGATIVE INTENSIFIED ON. WRITE:/(105) 'Transaction does not exist'. ENDIF. AT LINE-SELECTION. DATA : WF_OBJECT TYPE TADIR-OBJECT. CLEAR WF_OBJECT. GET CURSOR FIELD FIELD1. CHECK FIELD1(8) EQ 'WA_TADIR'. READ TABLE JTAB WITH KEY OBJ_NAME = SY-LISEL+1(20). MOVE JTAB-OBJECT TO WF_OBJECT. CASE WF_OBJECT. WHEN 'SMOD'. SET PARAMETER ID 'MON' FIELD SY-LISEL+1(10). CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN. WHEN 'SXSD'. SET PARAMETER ID 'EXN' FIELD SY-LISEL+1(20). CALL TRANSACTION 'SE18' AND SKIP FIRST SCREEN. ENDCASE.
原创声明,本文系作者授权云+社区发表,未经许可,不得转载。
如有侵权,请联系 yunjia_community@tencent.com 删除。
我来说两句