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


Husos Horarios son GMT. La hora en este momento es 22:27:55.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web