
1. Concepto General de Ampliaciones
Las ampliaciones son herramientas que ofrece SAP para realizar mejoras, modificaciones o agregados a programas estándar sin alterar el código fuente original.
• Funcionamiento: Se codifican en módulos aparte, permitiendo que la funcionalidad original permanezca intacta y facilitando las actualizaciones del sistema.
• Ventajas: Permiten adaptar el sistema a necesidades específicas de la empresa y sus cambios toman efecto simplemente transportando los nuevos objetos.
• Desventajas: Están limitadas a momentos y tareas específicas de la ejecución del programa predefinidas por SAP.
2. User Exits
Fueron las primeras herramientas de ampliación introducidas por SAP para permitir el agregado de lógica de usuario.
• Exclusividad: Son propios del módulo de SAP SD (Ventas y Distribución); no existen en otros módulos del sistema.
• Estructura: Están implementados como subrutinas (FORM - ENDFORM) que se encuentran "huecas" dentro de programas estándar.
• Nomenclatura: Siempre siguen el patrón USEREXIT_XXXXXXXX.
• Implementación: Se suelen encontrar en Includes específicos (como el MV45AFZZ para la transacción VA02) y no requieren una clave de acceso de SAP para ser modificados.
3. Customer Exits (Exits de Cliente)
Son puntos dentro de un programa estándar donde se invoca a un programa propio mediante un módulo de funciones.
• Identificación en el Código: Se reconocen por la sentencia CALL CUSTOMER-FUNCTION 'XXX', donde 'XXX' representa un número de tres dígitos.
• Nomenclatura de Funciones: Los módulos de funciones asociados siguen el formato EXIT_<nombre del programa>_<número de función> (ejemplo: EXIT_SAPMV45A_003).
• Almacenamiento Técnico: La tabla estándar MODSAP almacena todas las ampliaciones de este tipo en el sistema.
• Gestión de Proyectos:
â—¦ SMOD: Transacción para administrar y visualizar las ampliaciones y sus componentes.
â—¦ CMOD: Transacción para la gestión de proyectos de ampliación, donde se agrupan y activan los Exits para que tengan efecto.
• Desarrollo: El código del programador se inserta en un Include que típicamente comienza con ZX (ejemplo: ZXUSRU01). Es crucial activar tanto el include como el proyecto en la CMOD para que la ampliación funcione