MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Badi O User Exit Migo (foro/showthread.php?t=46682)

Paola79 16/11/11 07:24:57

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,

tunante 16/11/11 07:46:31

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.

crounly 16/11/11 07:55:04

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

Paola79 16/11/11 08:26:18

Muchísimas gracias me pondre ahora mismo a echarle un vistazo gracias

Paola79 17/11/11 07:39:15

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,

crounly 17/11/11 08:38:08

Si te refieres al doc. de compra en la MSEG tienes los campos EBELN y EBELP

Paola79 17/11/11 08:41:23

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.

crounly 17/11/11 08:49:08

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

Paola79 17/11/11 09:12:49

Muchas gracias, ya esta.

UN saludo

Paola79 17/11/11 11:27:25

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

Paola79 18/11/11 09:13:26

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????

crounly 18/11/11 10:36:30

Da mas información, o pega el código que estas usando, mi bola de cristal tiene interferencias ultimamente

Melandry 21/11/11 14:28:52

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.

Ariel-StaFe 25/03/14 16:11:55

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.

Ariel-StaFe 25/03/14 17:01:42

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.

Melandry 26/03/14 15:19:02

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.

Ariel-StaFe 27/03/14 10:36:52

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

elhichu2 21/04/22 20:00:35

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!

kiloosmaladsa 10/07/22 08:41:45

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