![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP Las Badis
ABAP Las Badis
![ABAP Las Badis ABAP Las Badis](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/26.jpg)
BADIS:
Son un nuevo tipo de extensión al sistema SAP, Basado en la utilización de objetos ABAP para la implementación de validaciones y ampliaciones al código estándar de SAP, sin tener que modificar el código estándar.
Mediante las Badis podemos realizar modificaciones al estándar de modo de poder satisfacer los requerimientos del cliente.
Utilizando Badis podremos 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 ampliaciones de SAP es importante saber que únicamente se implementan en el código estándar de SAP y no en el código de Z pues este código que creamos como programadores ya que estos si podemos modificarlo cuando sea necesario.
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.
v Vistas de una BADI.
Las Badis tienen dos vistas: las vistas de definición y la vista de implementación.
Definición de una BADI.
Mediante la transacción SE18 accedemos a la vista de definición de las Badis.
Transacción SE18. Utilizada para visualizar la definición de una Badis.
Punto de ampliación o Enhancement Spot. En la pestaña Definiciones elem.punto ampl. veremos las configuraciones generales de la Badi.
En la pestaña Enhancem. Implementations veremos si la Badi esta implementada.
Si se hace doble clic en Interface veremos cuál 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.
Si ingresamos en los Métodos, Podremos ver la lógica asociada a ellos, por lo tanto se podrá elegir entre dicha lógica estándar o crear una nueva.
Las grandes ventajas que presentan las BADIS es la posibilidad de tener diferentes implementaciones de la misma Badis en base a los valores de los filtros, pues si se desea implementar una Badis que tiene en relación con un proceso contable en una empresa multinacional el cual es diferente en el país donde nos encontremos, por lo tanto podríamos crear un filtro por código de país y asignar el desarrollo de cada implementación a un país determinado.
La tabla de Valores de filtro está 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 debemos desactivarla.
Para encontrar los lugares donde existe una Badi, se puede usar el siguiente método:
Ponemos un Breackpoint de sesión dentro del método GET_INSTANCE de la clase CL_EXITHANDLER.
Para acceder a una clase utilizaremos 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 estamos 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.
· Pueden existir varias implementaciones activas en el mismo sistema de una Badi pero solo una de un Customer Exit.
· Mientras que los Customer Exits utilizan módulos de funciones, las Badis utilizan métodos de objetos que se disparan en determinaos 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 Exits son sobre capa únicamente (SAP y soluciones de cliente).
 
 
 
Sobre el autor
Publicación académica de Carlos Alberto Carreira, en su ámbito de estudios para la Carrera Consultor ABAP.
Carlos Alberto Carreira
Profesión: Consultor Técnico en Jde W.s. - Argentina - Legajo: KC15G
✒️Autor de: 92 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Inicial
🎓Egresado de los módulos:
Certificación Académica de Carlos Carreira