Ir al final de los metadatos
Ir al inicio de los metadatos

Estás viendo una versión antigua de esta página. Ve a la versión actual.

Comparar con el actual View Version History

« Anterior Versión 2 Siguiente »

En este documento se detalla el procedimiento a seguir para implementar una BAdI de producto.

Se realizará un ejemplo concreto de implementacion Z.

Introducción

Esto es una guía para facilitar al cliente la implementación de BAdIs de b+. En este documento se realizará una demostración de cómo realizar este procedimiento.

Caso de uso

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” que 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.

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.

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.

En nuestro ejemplo necesitamos la BAdI /EDGE/BADI_TB_MAP_FE que se encuentra en el punto de ampliación: /EDGE/TB_ESPOT_MAP (   punto de ampliación para mapeo de datos en fichero XML)

Una vez la tenemos identificada pasamos a la implementación de la  BAdI con el código  que queremos que se ejecute en lugar del estándar.

Implementación de la BAdI

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 va a modificar. Una vez identificada podemos seguir los siguientes pasos.

Pasos implementación BAdI:

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 queremos modificar. En este caso:  /EDGE/TB_ESPOT_MAP

A continuación añadimos un nombre y una descripción a la implementación. Seleccionamos crear.

En la siguiente pantalla se establece el nombre de la implementación de la BAdI, el nombre de la clase implementación y  la 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 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. 

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’.

  • Sin etiquetas