Tabla donde SAP guarda los Nombres de los Meses
T015M
MANDT MANDT CLNT 3 0 Mandante
SPRAS SPRAS LANG 1 0 Clave de idioma
MONUM MONUM NUMC 2 0 Número de mes
MONAM MONAM CHAR 10 0 Nombre del mes
Programa para buscar USER EXIT's
REPORT YTEST.
TABLES: tstc, tadir, modsapt, modact,
trdir, tfdir, enlfdir, tstct.
DATA : jtab LIKE tadir OCCURS 0 WITH HEADER LINE.
DATA : hotspot(30).
* Definicion de screen para captura de rango de valores.
SELECTION-SCREEN BEGIN OF BLOCK 1400 WITH FRAME TITLE text-001.
PARAMETERS : p_tcode LIKE tstc-tcode OBLIGATORY.
SELECTION-SCREEN END OF BLOCK 1400.
AT LINE-SELECTION.
GET CURSOR FIELD hotspot.
CHECK hotspot(4) EQ 'JTAB'.
SET PARAMETER ID 'MON' FIELD sy-lisel+1(10).
CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
START-OF-SELECTION.
PERFORM get_data.
PERFORM write_list.
*---------------------------------------------------------------------*
* FORM get_data *
*---------------------------------------------------------------------*
FORM get_data.
SELECT SINGLE * FROM tstc
WHERE tcode EQ p_tcode.
CHECK sy-subrc EQ 0.
SELECT SINGLE * FROM tadir
WHERE pgmid = 'R3TR'
AND object = 'PROG'
AND obj_name = tstc-pgmna.
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.
ENDIF.
ENDIF.
SELECT * FROM tadir INTO TABLE jtab
WHERE pgmid = 'R3TR'
AND object = 'SMOD'
AND devclass = tadir-devclass.
SELECT SINGLE * FROM tstct
WHERE sprsl EQ sy-langu
AND tcode EQ p_tcode.
ENDFORM. "get_data
FORM write_list.
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 '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:/ 'No of Exits:' , sy-tfill.
ELSE.
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(95) 'No User Exit exists'.
ENDIF.
ENDFORM. "write_list
TABLES: tstc, tadir, modsapt, modact,
trdir, tfdir, enlfdir, tstct.
DATA : jtab LIKE tadir OCCURS 0 WITH HEADER LINE.
DATA : hotspot(30).
* Definicion de screen para captura de rango de valores.
SELECTION-SCREEN BEGIN OF BLOCK 1400 WITH FRAME TITLE text-001.
PARAMETERS : p_tcode LIKE tstc-tcode OBLIGATORY.
SELECTION-SCREEN END OF BLOCK 1400.
AT LINE-SELECTION.
GET CURSOR FIELD hotspot.
CHECK hotspot(4) EQ 'JTAB'.
SET PARAMETER ID 'MON' FIELD sy-lisel+1(10).
CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
START-OF-SELECTION.
PERFORM get_data.
PERFORM write_list.
*---------------------------------------------------------------------*
* FORM get_data *
*---------------------------------------------------------------------*
FORM get_data.
SELECT SINGLE * FROM tstc
WHERE tcode EQ p_tcode.
CHECK sy-subrc EQ 0.
SELECT SINGLE * FROM tadir
WHERE pgmid = 'R3TR'
AND object = 'PROG'
AND obj_name = tstc-pgmna.
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.
ENDIF.
ENDIF.
SELECT * FROM tadir INTO TABLE jtab
WHERE pgmid = 'R3TR'
AND object = 'SMOD'
AND devclass = tadir-devclass.
SELECT SINGLE * FROM tstct
WHERE sprsl EQ sy-langu
AND tcode EQ p_tcode.
ENDFORM. "get_data
FORM write_list.
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 '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:/ 'No of Exits:' , sy-tfill.
ELSE.
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(95) 'No User Exit exists'.
ENDIF.
ENDFORM. "write_list
Activación de USER EXIT
1- Ejecutar programa en modo debugging: Buscar CALL CUSTOMER-FUNCTION
2- En SE37 buscar funciones: EXIT_PROGRAMA_*
Resultado: EXIT_PROGRAMA_001
EXIT_PROGRAMA_002
EXIT_PROGRAMA_XXX ...
3- Buscar en Tabla MODSAP
MODSAP-MEMBER = EXIT_PROGRAMA_XXX
en MODSAP-NAME tenemos el nombre de la extensión o ampliacion.
4- En transaccion: CMOD se crea un proyecto ZMIPROYECTO
Se añade la ampliación buscada en punto 3.
En componentes: se activa la exit EXIT_PROGRAMA_XXX
Popup Debugger
- Crear un archivo de texto: popupdebugger.txt, que contenga las siguientes lineas de código:
[FUNCTION]
Command=/H
Title=Debugger
Type=SystemCommand
Command=/H
Title=Debugger
Type=SystemCommand
- Para utilizarlo, arrastar el archivo popupdebugger.txt desde el administrador de archivos hasta la ventana del sapgui que queramos analizar.
Tabla donde SAP guarda las Cifras y números en palabras
T015Z
Estructura
MANDT MANDT CLNT 3 0 Mandante
SPRAS SPRAS LANG 1 0 Clave de idioma
EINH EINH_D CHAR 1 0 Unidad
ZIFF DZIFF CHAR 1 0 Cifra
WORT WORT CHAR 25 0 Cifra expresada en palabras
Estructura
MANDT MANDT CLNT 3 0 Mandante
SPRAS SPRAS LANG 1 0 Clave de idioma
EINH EINH_D CHAR 1 0 Unidad
ZIFF DZIFF CHAR 1 0 Cifra
WORT WORT CHAR 25 0 Cifra expresada en palabras
Como saltarme los permisos en transacciones SAP
- Desde la transaccion SE37 (Funciones ABAP)
- ejecutar el módulo de funciones RS_HDSYS_CALL_TC_VARIANT.
- Introducir la transacción a la que queremos acceder en el parámetro TCODE y limpiar el parámetro AUTHORITY-CHECK.
- Presionar F8 para ejecutar la transacción.
- Nota: Esto te servirá para evitar los permisos a nivel de transaccion, si en el programa hay más AUTHORITY-CHECK's, se tendrán que evitar por otros medios.
Suscribirse a:
Entradas (Atom)