badi migo

5
La BADI a usar es la MB_MIGO_BADI, a ella se accede desde la transacción SE18 y se puede entrar por modificacion Una vez dentro tenemos que crear una implementación de esta BADI, para ello vamos a Implementation/create (En esta pantalla se puede observar que el nombre de la interface que usa esta BADI es IF_EX_MB_MIGO_BADI)

Upload: mmluzzi2941

Post on 27-Dec-2015

145 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: BADI MIGO

La BADI a usar es la MB_MIGO_BADI, a ella se accede desde la transacción SE18 y se puede entrar por modificacion

Una vez dentro tenemos que crear una implementación de esta BADI, para ello vamos a Implementation/create

(En esta pantalla se puede observar que el nombre de la interface que usa esta BADI es IF_EX_MB_MIGO_BADI)

Page 2: BADI MIGO

Indicamos un nombre para esta implementación, en el ejemplo Z_MIGO

Esto nos creara una implementación de la BADI y nos propondrá un nombre para la clase que vamos a crear (el cual se puede cambiar) y que usara la interface que utiliza la BADI (IF_EX_MB_MIGO_BADI).

A partir de este momento es donde podemos utilizar la clase Z_MIGO para hacer las modificaciones que necesitemos y que se usaran cada vez que se ejecute la MIGO.

Page 3: BADI MIGO

Los métodos donde haremos las modificaciones seran los métodos PBO_HEADER y POST_DOCUMENT.

En el método POST_DOCUMENT es donde nos llega la información de cabecera IS_MKPF y las posiciones del documento de material IT_MSEG.

En concreto el dato que necesitamos esta en la tabla IT_MSEG en el campo AUFNR.

En este método es donde haremos un EXPORT con una variable o una tabla (dependiendo si por definición solo habria una orden o varias se usaría una u otra opción), esto nos servirá para mandar a memoria el dato que necesitaremos después.

Page 4: BADI MIGO

El otro método a modificar es el PBO_HEADER

Por este método pasa varias veces antes y después de contabilizar pero solamente la sentencia los IMPORT recuperara valores después de la contabilización que es donde nos interesa recuperar el dato.

Con el IMPORT recuperamos el dato AUFNR que es el que necesitamos para realizar el proceso, para esto esta el IF NOT v_aufnr IS INITIAL (IF NOT it_aufnr[] IS INTIAL en el caso de que sean varios AUFNR), dentro de este IF es donde tendríamos que hacer todo el proceso y a lo ultimo hacer un FREE MEMORY de las variables de memoria que usamos para que no se vuelvan a leer las otras veces que pase por este lugar después de haber hecho lo que queremos.