|
#1
|
|||
|
|||
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. |
#2
|
|||
|
|||
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 |
#3
|
|||
|
|||
¿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
|
#4
|
|||
|
|||
Listado de user
Puedes pasarme la lista con las 10 user-exit, y te digo cual es?
|
#5
|
|||
|
|||
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
|
#6
|
|||
|
|||
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. |
#7
|
|||
|
|||
Te explico: Antes habia 2 tipos de imputacion de pedido (Cto.de coste y cliente) y ahora hay un tercer tipo (Mixto), pues lo que quiero hacer es que cuando el tipo de imputacion campo KNTTP de la tabla MEREQ3211GRID, obligue al usuario a rellenar los campos Contrato y Posicion de la pestaña Datos de cliente ( Contrato: ZICE-VBELN, Posicion: ZICE-VBELP)
Como te puedo mandar un pantallazo Estas son las user que me da el programa que me encuentra las user, por transaccion: 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 |
#8
|
|||
|
|||
Me he fijado que el programador anterior a mi (que por cierto no ha comentado nada de nada), las validaciones de los campos de la transaccion ME51N, las hace con los siguientes programas (creo que son badis):
ZCL_IM_ME_PROCESS_REQ_CUST====CM001 IF_EX_ME_PROCESS_REQ_CUST~INITIALIZE ZCL_IM_ME_PROCESS_REQ_CUST====CM002 IF_EX_ME_PROCESS_REQ_CUST~OPEN ZCL_IM_ME_PROCESS_REQ_CUST====CM003 IF_EX_ME_PROCESS_REQ_CUST~PROCESS_HEADER ZCL_IM_ME_PROCESS_REQ_CUST====CM004 IF_EX_ME_PROCESS_REQ_CUST~PROCESS_ITEM |
Herramientas | Buscar en Tema |
Desplegado | |
|
|