
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:
Tipos de Ampliaciones Más Importantes
El texto describe varios tipos. Estos son los principales:
Tipo de Ampliación Breve Descripción Módulo Principal
| 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:
-
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.