✒️ABAP POO / Las Badis Por Jeferson Pena Curvelo
ABAP Las Badis

Las Badis (Business Adds-Ins):
Son un nuevo tipo de extensión al sistema SAP, basado en la utilizacion de objetos ABAP para la implementacion de validaciones y ampliaciones al codigo estandar de SAP, sin tener que modificar el codigo estandar.
Utilizando Badis se podrá definir filtros para la ejecución de forma tal de poder tener diferentes procesos para, por ejemplo, países diferentes. Esto le permite a SAP poder utilizar las Badis para realizar localizaciones del sistema; por eso es que el sistema estándar ya incluye varias implementaciones de Badis.
Mediante las implementaciones de las Badis se pueden hacer aplicaciones para negocios específicos como petroleras, papeleras, químicas, etc. Esto hace que las badis sean muy útiles debido a que poseen una arquitectura multicapa (SAP, partners, soluciones de clientes, localizaciones, soluciones específicas para industrias, etc.)
Dado que las badis son un tipo de ampliación de SAP. Es importante dejar claro que únicamente se implementan en el código estándar de SAP, ya que el código Z es decir el código que como programadores creamos el cual no es estándar puede ser modificado sin ningún inconveniente por nosotros o por cualquier programador.
Tipos de Badis:
- Badis Clásicas son las primeras que existieron
- Badis Nuevas: también conocidas como Puntos de ampliación o Enhancement Spot que incorporan las últimas tecnologías de SAP.
Vistas de una Badi:
La definición de las badis viene definida en el sistema estándar y muy pocas veces será necesario crear una nueva definición.
Vista de definición: Mediante la transacción SE18 accedemos a la vista de definición de las Badis. (visualización).
En la solapa Definiciones elem.punto ampl. Se podrá visualizar la configuración correspondiente a un Punto de ampliación o Enhancement Spot.
Si se hace doble clic en Interface se podrá visualizar cual es la interface asociada a la badi y cuales métodos están asociados a la definición de la Badi.
Si hacemos doble clic en un método veremos los parámetros de entrada y salida del método.
Implementación de una Badi.
Para acceder a la implantación de las badis debe realizarse a través de la transacción SE19. donde se podrá visualizar los métodos disponibles en la implementación. Y si se hace doble clic en los métodos se podrá ver la lógica asociada a ellos, por lo tanto se podrá elegir entre utilizar dicha lógica estándar o crear una nueva.
El paso a paso en la creación de una implementación:
Transacción FI02: es utilizada para la modificación de los datos de los bancos existentes en el sistema SAP. Esta transacción pertenece al módulo de finanzas FI.
Acceder a la transacción SE19 --> Badi Clásico --> Nombre de la definición y presionar el botón Crear Implementación.
Ingresar el nombre de la implementación y en la siguiente pantalla ingresar el texto breve para la implementación. También se podrá generar los filtros con los cuales se va a ejecutar la Badi.
Las ventajas de las Badis es la posibilidad de tener diferentes implementaciones de la misma badi en base a los valores de los filtros.
Para ello se agrega una nueva entrada en la sección Valores de Filtro.
La tabla de valores de filtro esta habilitada debido a que en la implementación de la badi esta tildada la opción dependiente filtro.
Para modificar la implementación de una badi activa primero debe ser desactivada.
Método para encontrar una Badi: se debe poner un BREAKPOINT de sesión dentro del método GET_INSTANCE de la clase CL_EXITHANDLER.
Para acceder a una clase, se debe utilizar el Class Builder que es la transacción SE24.
Luego se ejecuta la transacción o programa que queremos verificar y el programa se detendrá en el BREAKPOINT, en la variable EXIT_NAME se mostraran los nombres de las badis que implementa el programa.
Este método puede resultar un poco engorroso ya que se detiene muchas veces la ejecución, pero nos aseguramos que si una badi existe se detendrá en ese punto.
Lo que se está haciendo es poner un BREAKPOINT en el momento en que SAP verifica si una definición de Badi tiene alguna implementación activa; por lo tanto, aunque no exista ninguna implementación activa para esa Badi particular el método detectara que existe una Badi en ese punto.
Diferencias entre las Badis y los Customer Exits
- Pueden existir varias implementaciones activas en el mismo sistema de una badi pero solo una de un customer exit.
- Mientras que los Customer Exit utilizan módulos de funciones, las badis utilizan métodos de objetos que se disparan en determinados momentos de los procesos.
- Las badis poseen una arquitectura multicapa (SAP, Partners, soluciones de clientes, localizaciones, soluciones específicas para industrias, etc.) mientras que los Customer Exit son doble capa únicamente (SAP y soluciones de cliente).
 
 
 
Sobre el autor
Publicación académica de Jeferson Jos Pena Curvelo, en su ámbito de estudios para el Master ABAP Orientado a Objetos.
Jeferson Jos Pena Curvelo
Chile - Legajo: PD49W
✒️Autor de: 180 Publicaciones Académicas
🎓Egresado de los módulos:
- Master ABAP Orientado a Objetos
- Master ABAP for HANA
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime
























