...
En este caso se va a implementar una BAdI para cambiar el funcionamiento estándar de uno de sus métodos. Se va a modificar el valor del campo “Cupón” opcional “SystemInfo” que actualmente no aparece en el XML de una factura del monitor TBAI.
...
Para poder visualizar este campo acceder a, menú de ámbito de TBAI: /n/edge/tb_mn_01 y a la transacción /EDGE/FC_03
...
Filtrar por: “Facturas TBAI”, sociedad igual a BAI1 o BAI3, tipo de envío “alta” y clase de documento “DR”. (Como se muestra en las siguientes imágenes)
...
Seleccionar “Ver XML emisión Osatu” de una factura aceptada para ver el XML que contiene el campo que se va a modificar.
...
eInvoice Polonia.
Lo que se va a hacer mediante la implementación de la BAdI es cambiar el valor del campo cupón mediante una lógica de cliente, a continuación se detalla el procedimiento a seguir.
...
Se añadirá un valor del campo “SystemInfo” a través de una lógica de cliente mediante la implementación de la BAdI. A continuación se detalla el procedimiento a seguir.
Localización de la BAdI a implementar
Para encontrar la BAdI debemos buscar en la documentación del producto la sección que detalle el listado de ampliaciones o BAdIs.En nuestro caso, al tratarse de Tbai, la BAdI debe buscarse en la documentación de b+ TicketBAI, en el apartado de Ampliación TicketBAI de la Guía de parametrización. Para verlo, acceder al siguiente enlace:Ampliaciones+TicketBAI Ampliaciones de cliente (PL) .
En nuestro ejemplo necesitamos la BAdI /EDGEEINVO/PL_IF_BADI_TBISSUED_MAP_FE que se encuentra en el punto de ampliación: /EDGEEINVO/TBPL_ENH_ESPOTSPOT_MAPISSUED ( punto de ampliación para mapeo de datos en fichero XML)
...
Una vez la tenemos identificada pasamos a la implementación de la la BAdI con el código código que queremos que se ejecute en lugar del estándar.
...
En este apartado se va a desarrollar los pasos a seguir para la implementación de una BAdI . Como hemos visto el primer paso es identificar qué BAdIse BAdI se va a modificar. Una vez identificada podemos seguir los siguientes pasos.
...
Para la implementación de la nueva BAdI acceder a la transacción se19 y en la sección “Crear implementación”, rellenar el campo Punto de ampliación con el nombre del “Punto de ampliación” que contiene la BAdIque BAdI que queremos modificar. En este caso: /EDGEEINVO/TBPL_ENH_ESPOTSPOT_MAPISSUED.
...
A continuación añadimos un nombre y una descripción a la implementación. Seleccionamos crear.
...
...
Nos pedirá crear una entrada en el catalogo de objetos, guardamos como objeto local.
En la siguiente pantalla se establece nos pedirán el nombre de la implementación de la BAdI, el nombre de la clase implementación y la Definición definición de la BAdI. Y se selecciona crear.
El campo Definición BAdI es un desplegable que contiene todas las definiciones de BAdIs existentes en el punto de ampliación.
...
Se pasa a la pulsamos cancelar y crearemos la implantación mas adelante
...
En la siguiente pantalla de Implementación de mejoras de la BAdI , donde se van a implementar los cambios.
...
Se quiere cambiar el mapeo del método de la BAdI Get_otra_informacion. Para que se ejecute todo el resto del estándar y no de fallo, primero se va a heredar todo lo que hay edificio en la BAdI estándar y después se modificará lo que interese cambiar.
Para heredar el estándar de la BAdI, desplegar el el nombre de la implementación, acceder clase implementación y en el nombre de la clase que implementa hacer doble click.
...
pulsamos en crear e introducimos la definición BAdI y la implementación BAdI.
...
Vamos a la transacción SE24 y creamos la clase de implementación, en este caso se llamará ZCL_PL_PRUEBA_MAP.
Desde la pestaña Propiedades, seleccionar Superclase y en el campo “Hereda de”, introducir la clase de la que heredan los métodos estándar. Guardar y activar.Comprobar que los métodos no aparecen vacíos, ahora aparecen implementados.
...
De esta forma la BAdI va a ejecutar primero todo el estándar del programa a excepción de lo que se cambia en la BAdI z que estamos creando.
Para añadir el cambio que se quiera realizar, en este caso en el campo cupón, acceder al método Get_otra_informacion e implementar el cambio.
En este caso el campo cupón en el XML ahora va a ser siempre igual a ‘Nuevo cupón’.
...
...
Volvemos a la ventana de Implementación de mejoras de la BAdI. Desplegar el el nombre de la implementación, acceder a clase que implementación y en el nombre de la clase que implementa introducimos la clase creada anteriormente. Guardamos.
...
Realizamos doble clic sobre la clase. Pulsamos sobre el método que queramos implementar, GET_NAGLOWEK, y redefinimos.
...
Copiar y pegar el código estándar de GET_NAGLOWEK y modificamos lo que queramos. En este caso se añade el campo “SystemInfo”.
...