Me enviaron este código para identificar los user-exits que tenga una transacción estandar de SAP. Ni idea de quien será el autor.
*&---------------------------------------------------------------------*
*& Report ZBC_USER_EXIT *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT ZBC_USER_EXIT NO STANDARD PAGE HEADING.
*-----------------------------------------------------------------------
* TABLES
*-----------------------------------------------------------------------
TABLES :
TSTC, " SAP Transaction Codes
TADIR, " Directory of Repository Objects
MODSAPT, " SAP Enhancements - Short Texts
MODACT, " Modifications
TRDIR, " System Table TRDIR
TFDIR, " Function Module
ENLFDIR. " Additional Attributes for Function Modules
TABLES : TSTCT.
*-----------------------------------------------------------------------
* VARIABLES
*-----------------------------------------------------------------------
DATA : JTAB LIKE TADIR OCCURS 0 WITH HEADER LINE.
DATA : FIELD1(30).
DATA : V_DEVCLASS LIKE TADIR-DEVCLASS.
*-----------------------------------------------------------------------
* PARAMETERS
*-----------------------------------------------------------------------
PARAMETERS : P_TCODE LIKE TSTC-TCODE OBLIGATORY.
*-----------------------------------------------------------------------
* MAIN PROCESS
*-----------------------------------------------------------------------
START-OF-SELECTION .
PERFORM PRINT_PROJECTS .
END-OF-SELECTION .
*-----------------------------------------------------------------------
* USER COMMANDS
*-----------------------------------------------------------------------
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.
*-----------------------------------------------------------------------
* SUBROUTINES
*-----------------------------------------------------------------------
*&---------------------------------------------------------------------*
*& Form print_projects
*&---------------------------------------------------------------------*
FORM PRINT_PROJECTS .
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(20) P_TCODE,
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 'Nombre Exit',
21 SY-VLINE ,
22 'Descripcion',
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:/ 'Numero de User Exits:' , SY-TFILL.
ELSE.
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(95) 'No existe ningun User Exit'.
ENDIF.
ELSE.
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(95) 'El codigo de transaccion no existe'.
ENDIF.
ENDFORM. " print_projects
I use this format for temporary and log filenames...
option explicit
dim vlNomArch
vlNomArch = year(Date) & "-" & _
right("0" & month(date), 2) & "-" & _
right("0" & day(date), 2) & " " & _
right("0" & hour(time), 2) & ":" & _
right("0" & minute(time), 2) & ":" & _
right("0" & second(time), 2)
msgbox vlNomArch
Suscribirse a
Entradas [Atom]