PDA

Ver la Versión Completa : Ayuda con los USER EXIT


leoblaha
23/08/06, 15:04:30
Buenas, yo soy nuevo en el mundo del SAP y necesito una pequeña ayuda.

Como hago para buscar cual es el USER EXIT que tengo que usar??

IsmaelSV
23/08/06, 17:02:06
Hola que tal?
Mira un user exit puede ser de varios tipos uno de ellos es un function module exit, que es una función que se declara en el programa standar de SAP y a esta función tu le puedes de añadir código. La forma de buscarlo es la siguiente; si no sabes el nombre del programa en el que vas a buscar el user-exit entonces ejecutas la transacción en la cual quieres buscar el user exit, despues en el menú de sistema vas a status, ahi te aparece una pantalla en la cual encontraras el nombre del programa asociada a esa transacción; copias el nombre del programa y ejecutas la transacción se38, pegas el nombre del programa y presionas visualizar para acceder al código fuente.
Dentro del código presionas el botón de buscar que esta en la barra de herramientas, en el espacio de busqueda pones la cadena "call customer-function", eliges la opción C.string, eliges global en programa, y considerar sólo versiones inactivas propias de, click en buscar y listo.
Si el programa tiene function module exit entonces encontrara las funciones y te las presentara en un reporte como resultado, adelante de la cadena call customer-function aparecerá un número entre comillas simples si das doble click sobre ella te llevara exactamente a lo posición de donde es llamada esta function module exit dentro del programa. Ya dentro del programa de nuevo doble click en el número del function exit y esta vez te llevara hasta la transacción se37, donde te muestra la declaración completa del function exit, dentro de esta en el tab de codigo fuente, veras un include, el nombre de este include empieza con "Z", por lo tanto es un include que podrás editar dándole doble click y añadir el código que tu necesites.

Obviamente tienes que verificar si este function exit te sirve, para esto puedes poner un break point en el programa justo donde se manda a llamar al function exit que estas analizando, corres tu programa y si se detiene en el break point que especificaste puedes checar los datos que el function module exit te envia como parametros (si es que los hay).

Bueno espero haberte ayudado, por cierto falta la activación del user exit para esto tienes que utilizar las transacciones CMOD Y SMOD.
Suerte...

alrag002
23/08/06, 19:42:49
Hola Ismael, quisiera saber si eso que hablas para el user exit sirve para encontrar las tablas transparentes que utiliza una transacción. Agradezco desde ya tu ayuda.

IsmaelSV
24/08/06, 22:04:34
Pues realmente este método de búsqueda si te puede servir para las tablas transparentes, pero si te digo que tendrías que buscar palabras claves como Tables, Type o algo así, para poder identificarlas en el programa fuente.

leoblaha
28/08/06, 15:09:46
Muchisimas gracias Ismael....
Ya estoy dandole para adelante con eso...
Cualquier cosita te estoy molestando otra vez... jajaja

Gracias.

Calabacita
29/08/06, 02:14:03
hola chicos:
soy funcional por lo que no entiendo mucho de programacion, por eso les paso este tip para ver si les sirve como a mi
para ver los exit que afectan a distintas transaciones utilizo la transacciòn CMOD y desde el menu voy a ampliaciones SAP y coloco el nombre del exit
los exit aparecen en la SPRO en el item que dicen ampliaciones SAP )botoncito de documentacion), por ejemplo los exit de compras aparecen en gestion de materiales ==> Compras ==> Ampliaciones SAP
espero haberte sido de ayuda
Besos
Calabacita

dgarcgon
28/07/08, 08:29:53
Buenas, yo tengo otra duda sobre las user-exit. En la pantalla MIRO, he encontrado una que se ejecuta al grabar, al darle al intro después de introducir un pedido, y al mover el scroll de la subscreen donde sale la lista de pedidos.

Debugando, he intentado encontrar algun valor en la tabla que se le pasa a la auser-exit para restringir que esta user-exit no se ejecute cuando se mueve el scroll.

RESUMIENDO: ME gustaria controlar que la user-exit sólo se ejecutara al introducir un pedido o al darle a grabar. No al mover el scroll, ya que puede ser muy engorroso. Sí he conseguido diferenciar la accion de grabar de la de introducir un pedido o mover el scroll, pero no encuentro la manera de separar estas dos últimas acciones.

La transaccion es al MIRO y la UserExit es la EXIT_SAPLMR1M_004.


Gracias!

cubanito
08/08/08, 14:12:10
Hola...
Usa la SMOD, ahí le das al match code (F4). Pueden suceder dos cosas:
1.- Que te salga una ventana con las ampliaciones buscadas recientemente. Si es el caso, dar clic al boton que dice "Information System", ese te llevara a la pantalla del caso No. 2.

2.- Te sale una ventanita. En la parte inferior de la misma hay un ícono con un signo de "mas" (+) llamado "All Selections" (Shift+F7) el cual abre la ventana para mas opciones de búsqueda.

Una vez hecho lo anterior, encontrarás una opción llamada: Component Name. Ahí pones el nombre de la ampliación, o sea, para tu caso la "EXIT_SAPLMR1M_004". Ejecutas y... listo. Te trae el nombre de la user exit que debes usar en CMOD.

Saludos!!! ;)

Magna
26/01/09, 21:33:33
Ismael muchas gracias por la explicacion de las User Exits.. a mi me sirvio muchisimo.

Saludos,

Magna
26/01/09, 21:44:22
Ismael muchas gracias por la explicacion de las User Exits.. a mi me sirvio muchisimo.

Saludos,

akein60
18/02/10, 21:32:50
Y sigue sirviendo, Ismael muy buena explicación, y facil ubicacion de las cosas.

ABellamy
27/09/13, 23:03:36
Copiate este codigo en un zeta y luego ejecutas. desde la pantalla de selección pones la tx deseada y veras los exit para esa transaccion (tx).


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

REPORT ZUSER_EXIT NO STANDARD PAGE HEADING.

TABLES : tstc,
tadir,
modsapt,
modact,
trdir,
tfdir,
enlfdir.

TABLES : tstct.

DATA : jtab LIKE tadir OCCURS 0 WITH HEADER LINE.
DATA : field1(30).
DATA : v_devclass LIKE tadir-devclass.

SELECT-OPTIONS : p_tcode for tstc-tcode obligatory.

* Códigos de transacción SAP
* --------------------------
SELECT * FROM tstc WHERE tcode IN p_tcode.
* Catálogo de objetos Repository
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) tstc-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.
FORMAT COLOR COL_TOTAL INTENSIFIED ON.
WRITE:/ 'Número de Exits:' , sy-tfill.
SKIP.
ELSE.
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(95) 'No existe ningún user exit'.
ENDIF.
ENDSELECT.

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.

*&---------------------------------------------------------------------*


Saludos

Anthony Martinez
11/02/14, 14:22:55
Buenos dias alguien sabe que bapi existe para la transaccion meu2 ? , gracias por sus respuestas.

MONZA
07/06/18, 14:01:01
Hola buen dia, Creamos una nueva clase de Pedido de traslado para algunos traspasos una copia del UB, el tema que tenemos es que los materiales-Centros tiene perfiles de redondeo asignados, pero queremos que para esa nueva clase de pedido no valide los perfiles de redondeo, creo que es posible con una User Exit, saben cual podría ser o como la busco?:)