Ampliaciones: ¿Qué diferencia a las BADIS de los CUSTOMER EXITS y otros métodos?
Qué diferencia a las BADIS de los CUSTOMER EXITS o de otros recursos de Enhancement para evitar modificar el código ABAP estándar?.
No importa cuán abarcativo sea un software de gestión, las necesidades particulares de cada cliente y los requisitos de los distintos escenarios de negocios, puede generar una necesidad de "customización" del software que excede la parametrización. Sin embargo, en un sistema de envergadura y misión crítica, ésto no debería llevarse a cabo de cualquier manera. En el caso particular de SAP, es sabido que no se permite modificar el código fuente de un programa ABAP standard.
Por ello, SAP proporciona recursos e instrumentos que permiten intromisiones "controladas" al código, a través del concepto de ampliaciones o Enhancements. La idea es expandir la funcionalidad dentro del sistema SAP para atender las necesidades adicionales del cliente, sin modificar el código fuente del programa standard.
Las sucesivas versiones de SAP fueron incoporando nuevos y mejores instrumentos para llevar a cabo esta tarea.
USER EXITS
La primera generación de ampliaciones se hacía a través de los USER EXITS.
Inicialmente los user-exits en ABAP eran el modo más usual de realizar ampliaciones en SAP. Los USER EXITS son como subrutinas vacías dentro de un programa estándar en las cuales se puede agregar código. (El nombre de las mismas comienza con USEREXIT). Este método utiliza módulos de función mediante los cuales se puede ingresar código ABAP. El sistema provee las funciones donde los user-exits son llamados y se cuenta con una interfaz definida y un programa Include. Es en este programa Include donde se agrega el código requerido.
Los user exits NO están definidos dentro de unproyecto de ampliación, directamente se modifica el código estándar.
Los user exits existen básicamente en el módulo de SD y se consideran técnicamente modificaciones, dado que hay que tocar programas includes de SAP, para lo cual se necesita clave de modificación de objeto (proporcionada por SAP).
CUSTOMER EXITS
Los CUSTOMER EXITS se definen dentro de un proyecto de ampliación, por lo tanto se gestionan con la transacción CMOD.
Permiten ampliar código fuente (function module exit), menúes (menu exit) y pantallas estándares (screen exit), y no permiten múltiples implementaciones.
BTE's
Con la versión 4.0, aparecieron también los llamados BTE (BUSINESS TRANSACTION EVENTS). Estas son ampliaciones que fueron desarrolladas para el módulo de Contabilidad Financiera (FI), que permiten agregar componentes adicionales en los programas estándares por medio de funciones (FUNCTION MODULES). Una característica común de las BTE, es que son independientes de mandante a diferencia de las ampliaciones denominadas “Customer Exits”. (Ver Tip BTE (Business transaction events V4.0))
BADIS
Luego, con la versión 4.6C, y de la mano de la orientación a objetos, apareció la tercera generación de recursos de ampliación, a través de las BADIS. Las BADI’s (Bussiness Add-ins) son las nuevas técnicas de ampliación del código estándar de SAP basadas en programación ABAP orientada a objetos. Usan instancias de ABAP Objects. Se invocan con CALL METHOD. Se crean con la transacción SE18 y se implementan con la transacción SE19. (Ver tip Cómo encontrar e implementar BADIS en programacion ABAP)
La frutilla de la torta: ENHANCEMENT FRAMEWORK
Finalmente, a partir de la versión 6.0 del ERP, SAP brinda un nuevo framework para el desarrollo de ampliaciones conocido como Enhancement Framework.
El Enhancement Framework es una nueva tecnología que brinda todas las técnicas de ampliación bajo un mismo techo.
Las diferentes técnicas son las siguientes:
- Ampliaciones de código (plug-ins)
- Ampliaciones de grupo de función
- Ampliaciones de clases
- Ampliaciones Kernel-BADI
Dentro de este Framework se diferencian las ampliaciones de tipo implícito, predefinidas y provistas por SAP en el código fuente, y las ampliaciones de tipo explícito que pueden implementarse en cualquier parte del código fuente a excepción de algunas áreas restringidas por SAP, a través de los ENHANCEMENT-POINTS y ENHANCEMENT-SECTION. Puede encontrar la explicación en detalle, con ejemplos de uso, en el Tip Ampliaciones (Enhancements) a programas ABAP en ERP 6.0
BADIS Vs. CUSTOMER EXITS
- Las BADIS, al igual que las BTE's, se pueden implementar más de una vez, a diferencia de los CUSTOMER EXITS, que sólo tienen una implementación.
- Las BADIS poseen una arquitectura Multicapa (SAP, partners, soluciones de clientes, localizaciones, soluciones específicas para industrias, etc), a diferencia de los CUSTOMER EXITS que son doble capa únicamente (SAP y soluciones de cliente).
- Las BADIS incluyen las ventajas de la programación orientada a objetos.
- Para conocer en detalle el manejo de BADIS sugerimos leer el tip: Cómo encontrar e implementar BADIS en programacion ABAP
Tips relacionados
Cómo encontrar e implementar BADIS en programacion ABAP
Ampliaciones (Enhancements) a programas ABAP en ERP 6.0
BTE (Business transaction events V4.0)
¿Qué recursos de ampliación al estándar se utilizan en su organización? ¿Han experimentado con BADIS ya?
IMPORTANTE
Copyright Agosto 2009. Teknoda S.A.
IMPORTANTE: “Notas técnicas de SAP ABAP" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes SAP. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. Teknoda es una organización de servicios de tecnología informática y NO comercializa hardware, software ni otros productos. |
FICHA TECNICA: Notas técnicas – Tips de SAP Netweaver ABAP ”Qué diferencia a las BADIS de los CUSTOMER EXITS o de otros recursos de Enhancement para evitar modificar el código ABAP estándar?"