#1
|
|||
|
|||
User Exit??
Buenos dias a todos, mi problema es el siguiente:
La consultora de MM de mi empresa, ha añadido un nuevo tipo de imputacion, para las solicitudes de pedido (ME51N), y quiere que cuando se utilice esta imputacion nueva, obligue a los usuarios a rellenar 2 campos en una pestaña de los detalles de posicion. Para ello, creo que lo mas sencillo seria hacer un "warrnig", que no les dejara grabar la solicitud, mediante una user exit de la transaccion, pero el problema es que soy algo novato en esto de las user exit, y ando un poco perdido. Muchas gracias a todos de antemano. |
#2
|
|||
|
|||
User exit
Puedes hacer una user-exit, pero en la transacción de pedidos yo haria una validación, transaccion ggb0, en donde indicas el nombre de la transacción sobre la que quieres validar y el mensaje que quieras, warning o error, si tienes dudas, es facil, me comentas
|
#3
|
|||
|
|||
usa esta exit
MEREQ001
EXIT_SAPLMEREQ_001 EXIT_SAPLMEREQ_002 EXIT_SAPLMEREQ_003 EXIT_SAPLMEREQ_004 EXIT_SAPLMEREQ_005 EXIT_SAPLMEREQ_006 EXIT_SAPLMEREQ_007 EXIT_SAPLMEREQ_008 EXIT_SAPLMEREQ_009 EXIT_SAPLMEREQ_010 espero que te sirva!! |
#4
|
|||
|
|||
gracias
Muchas gracias, por las respuestas, pero no me han servido de mucho, ya que al ser novato en las user, no se que userexit usar.
Y en cuano a la tx ggb0, tampoco se como meter los datos. |
#5
|
|||
|
|||
Copia y pega este programa, te busca las user por transaccion
*&---------------------------------------------------------------------*
*& Modulpool ZBC_USER_EXIT * *& * *&---------------------------------------------------------------------* *& * *& * *&---------------------------------------------------------------------* PROGRAM zbc_user_exit NO STANDARD PAGE HEADING. INCLUDE zbc_user_exit_top. " *& Parameters PARAMETERS: p_tcode LIKE tstc-tcode OBLIGATORY. INCLUDE zbc_user_exit_f01. *& 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. *----------------------------------------------------------------------* * INCLUDE ZBC_USER_EXIT_F01 * *----------------------------------------------------------------------* *&---------------------------------------------------------------------* *& Form print_projects *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* 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 *&---------------------------------------------------------------------* *& Include ZBC_USER_EXIT_TOP * *& * *&---------------------------------------------------------------------* *& 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. |
#6
|
|||
|
|||
User
Hasta aqui bien, tengo un programa muy parecido para encontrar las user exit, por transaccion, el problema que tengo es que la transaccion ME51N, tiene 10 user, y no se en cual de ellas tengo que meter el codigo.
Muchas gracias |
#7
|
|||
|
|||
¿Que user exit usar?
Quieres modificar el tipo de imputacion cierto?, vale pues por el nombre del campo se puede sacar cual es, sino ponle un break point, pero por el menu, no break-point por sentencia, y ves donde se para y si tiene la estructura con el campo que tu quieres modificar, sino me dices y te lo hago yo
|
#8
|
|||
|
|||
Listado de user
Puedes pasarme la lista con las 10 user-exit, y te digo cual es?
|
#9
|
|||
|
|||
Encontre una
A mi solo me encuentra esta MEREQ001, y puede servirte pero si me pasas las 10 que te salen te puedo decir cual es y como se hace
|
#10
|
|||
|
|||
dentro de la user que te envie, el primer modulo de funciones que aparece doble click, pinchas sobre el Z que te aparece, lo creas, y mira este codigo no es lo mismo que tienes que hacer porque cambia el campo pero te puede servir, porque te dice a que estructura va cuando grabas la solicitud del pedido,
* Obtener modo CALL METHOD im_req_item->get_activity RECEIVING re_aktvt = gv_trtyp_11. CLEAR: gv_idimpexp. CONCATENATE gc_modo_ejec sy-uname INTO gv_idimpexp. EXPORT gv_trtyp FROM gv_trtyp_11 TO MEMORY ID gv_idimpexp. *se recupera datos de la solicitud CALL METHOD im_req_item->get_data receiving re_data = gs_mereq_item . CALL METHOD im_req_item->get_persistent_data receiving re_data = gs_eban_11 . *Al grabar la solicitud los datos estarán en la estructura gs_eban_11 CLEAR gv_idimpexp. CONCATENATE gc_eban sy-uname INTO gv_idimpexp. EXPORT gv_banfn FROM gs_eban_11-banfn TO MEMORY ID gv_idimpexp. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|