✒️ABAP / Las Ampliaciones: los User Exits y los Customer Exits Por Oscar Aravena Muller
ABAP Las Ampliaciones: los User Exits y los Customer Exits

Introducción: Las ampliaciones son herramientas clave en SAP que permiten adaptar y mejorar los programas estándar sin modificar su código original, garantizando su estabilidad y funcionamiento.
Teoría Esencial: ¿Qué son las Ampliaciones?
-
Definición: Son herramientas que permiten realizar mejoras, modificaciones o agregados a un programa estándar de SAP.
-
Objetivo Principal: Adaptar el sistema a las necesidades específicas de una empresa sin alterar el código base de SAP.
-
Principio Fundamental: El código personalizado se escribe en módulos separados, por lo que la funcionalidad original permanece intacta.
Ventajas Clave:
-
Personalizan programas sin tocar el código estándar.
-
Mantienen el buen funcionamiento del sistema.
-
Los cambios se activan fácilmente mediante transporte de objetos.
Desventajas:
-
No todos los programas permiten todo tipo de ampliaciones.
-
Están limitadas a tareas y momentos específicos dentro de la ejecución de un programa.
Tipos de Ampliaciones Más Importantes
El texto describe varios tipos. Estos son los principales:
| User Exits | Subrutinas huecas dentro de programas estándar. | SD (Ventas) |
| Customer Exits | Módulos de función llamados por el programa estándar. | Múltiples |
| BADIs | Objetos de negocio más modernos y flexibles. | Múltiples |
| Enhancements | Puntos de mejora dentro del código. | Múltiples |
| Appends | Agregar campos a tablas estándar. | Múltiples |
User Exits: Los Pioneros
-
¿Qué son? Subrutinas predefinidas por SAP dentro de un programa, pero sin código (huecas), listas para que el usuario añada su lógica.
-
Características:
-
Su nomenclatura siempre comienza con USEREXIT_.
-
Son propios del módulo SD (Ventas y Distribución).
-
No requieren clave de acceso para modificar su código.
-
-
¿Sabías que? Aunque SAP los mantendrá, ya no se usan para nuevas extensiones; se prefieren opciones más modernas como los BADIs.
Customer Exits (Exits de Cliente): Los Más Utilizados
-
¿Qué son? Puntos dentro de un programa estándar desde donde se llama a un módulo de función personalizable.
-
¿Cómo se llaman? El programa hace una llamada CALL CUSTOMER-FUNCTION 'XXX', donde 'XXX' es un número de 3 dígitos.
-
Nomenclatura: Los módulos se nombran EXIT_SAP[NombrePrograma]_[Número] (ej: EXIT_SAPMV45A_003).
-
Registro: Todos los Customer Exits están registrados en la tabla estándar MODSAP.
Guía Paso a Paso: Cómo Implementar un Customer Exit
-
Encontrar el Exit Correcto:
-
Usa la transacción SE80 o SE24 para analizar el programa estándar y buscar la cadena CALL CUSTOMER-FUNCTION.
-
Usa la tabla MODSAP (vía transacción SE16) para buscar el módulo de función.
-
-
Explorar la Ampliación:
-
En la transacción SMOD, ingresa el nombre de la ampliación (ej: V45A0003).
-
Haz clic en "Componentes" para ver los módulos de función disponibles.
-
-
Codificar:
-
Al hacer doble clic en el módulo, se abre el editor. Aquí encontrarás un Include que comienza con ZX....
-
Este es el lugar donde debes escribir tu código ABAP, usando los parámetros de importación/exportación que proporciona el exit.
-
-
Activar la Ampliación:
-
La activación y el transporte se gestionan mediante Proyectos de Mejora.
-
Ve a la transacción CMOD y crea un nuevo proyecto (el nombre debe empezar por Z).
-
Asigna la ampliación a tu proyecto y actívalo. ¡El color verde indica que está activo!
-
Consejos Rápidos y Errores Comunes
-
¿Sabías que? La mejor forma de probar un exit y ver qué datos están disponibles en un momento exacto es poner un breakpoint en el módulo de función después de activar el proyecto en CMOD.
-
Error Común: No activar el proyecto en CMOD. Si el proyecto no está activo (verde), tu código no se ejecutará, aunque esté perfectamente escrito.
-
Recuerda: Siempre usa includes que comiencen con Z para tu código personalizado. Si no existe, el sistema te pedirá que crees una orden de transporte para generarlo.
Conclusión:
Takeaway principal: Las ampliaciones, especialmente los Customer Exits, son la forma segura y oficial de personalizar SAP. Usa SMOD para explorar y CMOD para activar y gestionar tus proyectos.
Advertencia final: No confíes solo en los User Exits, están quedando obsoletos. Enfócate en dominar los Customer Exits y los BADIs para desarrollos modernos.
Términos Clave
-
Ampliación (Enhancement): Herramienta para modificar o agregar funcionalidad a un programa estándar de SAP sin cambiar su código original.
-
Código Estándar: El código fuente original de SAP, que no debe ser modificado directamente.
-
User Exit: Una subrutina predefinida y "hueca" dentro de un programa estándar (especialmente del módulo SD) donde se puede insertar código personalizado. Su nombre siempre comienza con USEREXIT_.
-
Customer Exit (Exit de Cliente): Un punto predefinido en un programa estándar desde donde se llama a un módulo de función (FUNCTION MODULE) que puede ser personalizado por el usuario.
-
Módulo de Función (Function Module): Un programa reutilizable en ABAP que realiza una función específica. Los de Customer Exits siguen la nomenclatura EXIT_SAP<Programa>_<Número>.
-
Tabla MODSAP: La tabla maestra de SAP donde se registran todas las ampliaciones existentes en el sistema.
-
SMOD: Transacción para explorar y administrar las ampliaciones existentes y sus componentes.
-
CMOD: Transacción para crear y gestionar Proyectos de Mejora, que se utilizan para agrupar, activar y transportar una o más ampliaciones.
-
Proyecto de Mejora (Enhancement Project): Un contenedor (que debe empezar con Z) que agrupa varias ampliaciones para su gestión y activación conjunta.
-
Include ZX...: El programa include donde se escribe el código ABAP personalizado para un Customer Exit. Es generado automáticamente por el sistema.
-
BADI (Business Add-In): Una técnica de ampliación más moderna y orientada a objetos que reemplaza gradualmente a los Exits tradicionales.
-
Estructura Append: Una forma de agregar campos personalizados a una tabla estándar de SAP sin modificar la estructura original de la tabla.
 
 
 
Sobre el autor
Publicación académica de Oscar Aravena Muller, en su ámbito de estudios para el Curso SAP ABAP Avanzado.
Oscar Aravena Muller
Profesión: Futuro Analista Programador - Chile - Legajo: ZT54U
✒️Autor de: 90 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
























