Badi O User Exit Migo
Hola a todos,
Alguién me podría decir alguna BADI o USER EXIT para la transacción MIGO, para poder grabar a parte de la tabla correspondiente en una tabla Z el número de documento generado y el documento al que hace referencia. Gracias de antemano y un saludo, |
Hola Buenos días,
Con el codigo que te pongo a continuacion tendras un programa que poniedole la transacción te dice las user que utiliza, seguro que te ayuda el ternelo siempre a mano: *&---------------------------------------------------------------------* *& Report ZUSER_EXIT *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT zuser_exit. 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. PARAMETERS : p_tcode LIKE tstc-tcode OBLIGATORY. 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 '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. ELSE. FORMAT COLOR COL_NEGATIVE INTENSIFIED ON. WRITE:/(95) 'Transaction code does not exist'. ENDIF. 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. |
Para la MIGO tienes la siguiente BADI: MB_MIGO_BADI
Para lo que quieres hacer puedes utilizar el método POST DOCUMENT Tienes como parámetros de entrada la cabecera y pos. del documento de material generado |
Muchísimas gracias me pondre ahora mismo a echarle un vistazo gracias
|
Buenos días ahora tengo otro problemilla, necesito recuperar el número de documento que introducimos en la cabecera para hacer el movimiento correspondiente en la MIGO, y guardarlo en una tabla Z, como puedo llamar al método donde se encuentra dicho numero desde el de POST_DOCUMENT Y no lo consigo.
En espera de vuestras respuestas muchas gracias de antemano y un saludo, |
Si te refieres al doc. de compra en la MSEG tienes los campos EBELN y EBELP
|
A lo que me refiero es al documento que introducimos en pantalla esta guardado en la la MSEG¿? es el que metemos en cabecera para luego dar posición OK a las posiciones que nos trae y luego nos genera el nuevo documento de entrada de mercancia.
|
Sip, se guarda en las posiciones, en la tabla MSEG que la tienes como parametro de entrada en POST_DOCUMENT tienes los campo
EBELN Número de pedido EBELP Número de posición del documento de compras LFBNR Número de documento de un doc.de referencia LFPOS Posición de un documento de referencia SMBLN Número de documento material SMBLP Posición en documento de material Y muchos mas, mira en la SE11 -> MSEG |
Muchas gracias, ya esta.
UN saludo |
Tengo un problema no me lo guarda en la tabla z que tengo destinado a ella. Voy a debuguear y directamente se me va de ahi a hacer todo lo de la mseg. que puede ser¿? muchas gracias
|
Hola a ver si alguien me peude ayudar nos me inserta los datos en mi tabla Z tengo que hacer una funcion o algo y que se llame y ahí haga lo coreespondiente????
|
Da mas información, o pega el código que estas usando, mi bola de cristal tiene interferencias ultimamente
|
Hola Paola.
Efectivamente para el manejo de la BADI tienes que crear un Gr.Func. con los módulos de func. correspondientes según las necesidades de tu desarrollo. En este caso la actualización de tu ZTABLA debes hacerla a través de dicha función. P.ejemplo: METHOD IF_EX_MB_MIGO_BADI~POST_DOCUMENT. "...si tienes que chequear algo previo a la grabación "Llamada a la función para actualizar la ztabla. CALL FUNCTION 'ZMIGO_BADI_UPD_ZTABLA' IN UPDATE TASK EXPORTING I_MBLNR = IS_MKPF-MBLNR I_MJAHR = IS_MKPF-MJAHR IS_MIGO_BADI_HEADER_FIELDS = G_EXDATA_ZTABLA_WA. ENDMETHOD. Espero te sirva. |
BADI en MIGO
Estimados.
Perdon que moleste con un tema viejo. Pero tengo que hacer exactamente lo mismo, alimentar una tabla Z al momento de "Contabilizar" por la MIGO. Es la primera vez que veo tel tema BADI. Como es el tema ? Tengo que crear una BADI para hacer lo que menciona Melandry ?.. o O modificar alguna existente, o algun método existente ? Que trx debo usar para tal efecto ? SE18 y SE19 ? Desde ya muchas gracias. |
para mas datos.
en CL_EX_MB_MIGO_BADI Methos IF_EX_MB_MIGO_BADI~POST_DOCUMENT antes o desp del codigo CALL BADI l_badi->POST_DOCUMENT EXPORTING IT_MSEG = IT_MSEG IS_MKPF = IS_MKPF. deberia poner la llamada a la funcion que cree el registro en la tabla Z pasandole los parametros correspondientes. Pero. como pongo codigo ahi ? Desde ya muchas gracias. |
Hola.
Te deberías crear una Zimplementación nueva para esa BADI, indicando que usa el interface IF_EX_MB_MIGO_BADI y poniendo el nombre de la Zclase que va a implemantar(aquí ya podrás tocar el método deseado, esta clase la creas tú también). Saludos. |
Badi
Melandry:
Muchas gracias por tu respuesta. Como tuve que resolverlo rapido lo hice con un Enhancement Point y anda perfecto. Pero voy a verlo luego con mas tiempo a eso que me dijiste. Pasa que nunca trabaje con Badi - Clases - implementaciones aun.. No sabes donde puedo conseguir un manual con ejemplos practicos sobre el tema ?. Muchisimas Gracias y Saludos |
Re: Badi O User Exit Migo
Hola!
Te paso un articulo que les puede ser de utilidad para resolver este problema: https://abap.ar/obtener-todos-los-elementos-de-linea-del-metodo-check_item-en-badi-mb_migo_badi/ Saludos! |
Re: Badi O User Exit Migo
Un sitio bastante fascinante, pero ultimamente es bastante dificil encontrar un buen sitio que te ayude a ganar dinero. Pero hace poco me encontre con un sitio util https://betwinner.lat/betwinner-bonus/ . Alli hay mucha informacion util sobre bonos y formas de ganar dinero facil. Sigue el enlace y empieza a disfrutar de los juegos.
|
Husos Horarios son GMT. La hora en este momento es 00:27:03. |
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web