
lección "Las Ampliaciones: los User Exits y los Customer Exits"
Introducción a las Ampliaciones
• Descripción General de las Ampliaciones: Las ampliaciones en SAP son herramientas que permiten agregar funcionalidad nueva a programas estándar sin modificar su código original, asegurando su buen funcionamiento. Esto permite insertar validaciones, nuevos campos con su lógica, opciones de menú, o campos en tablas de base de datos estándar en lugares preparados por SAP.
· â—¦ Ventajas de las Ampliaciones: Permiten adaptar programas a necesidades específicas de la empresa y realizar mejoras sin modificar el código original, con cambios que se activan al transportar nuevos objetos.
· â—¦ Desventajas de las Ampliaciones: No siempre permiten todas las modificaciones deseadas, ya que están diseñadas para tareas y momentos específicos, y no todos los programas estándar soportan todos los tipos de ampliaciones.
· â—¦ Tipos de Ampliaciones: Existen varios tipos como User Exits, Customer Exits, Keyword Exits, Field Exits, Estructuras Append, Badis, Enhancements y Menú Exits, cada uno con sus particularidades.
1 | ¿Qué es una Ampliación?
• Descripción: Las ampliaciones son herramientas de SAP que posibilitan mejoras, modificaciones o adiciones a programas estándar del sistema.
2 | Los User Exits
• Descripción: Un User Exit es una subrutina "hueca" o sin código dentro de un programa ABAP estándar, diseñada para que el usuario inserte su lógica personalizada.
â—¦ Características de los User Exits: Fueron las primeras ampliaciones de SAP, son exclusivas del módulo SD, se implementan como subrutinas y siempre siguen la nomenclatura USEREXIT_XXXXXXXX.
â—¦ Problemas de los User Exits: El desafío principal es encontrar el User Exit adecuado y verificar su utilidad para el propósito específico, insertando el código ABAP en un INCLUDE que suele comenzar con Z.
â—¦ Transacción VA02: Esta transacción estándar se usa para modificar pedidos de ventas, y aunque algunos módulos SD aún los utilizan, las nuevas extensiones de código SAP emplean otros tipos de ampliaciones.
3 | Los Customer Exits
• Descripción: Un Customer Exit (o Exit de Cliente) es un punto en un programa estándar desde el cual se puede invocar un programa propio.
o â—¦ Características de los Customer Exits: Son invocados en programas estándar a través de módulos de funciones nombrados con una terminación numérica (ej. EXIT_SAPMV45A_003) y listados en la tabla MODSAP.
o â—¦ Tabla MODSAP: Es una tabla de base de datos estándar que almacena todas las ampliaciones del sistema SAP, detallando su nombre, tipo de componente y el objeto SAP modificado.
o â—¦ Ventajas de los Customer Exits: Permiten añadir funcionalidad a programas estándar, como validaciones o rutinas de control, sin modificar el código original, y su transporte requiere solo la activación del nuevo Include.
o â—¦ Desventajas de los Customer Exits: Sus objetos de importación/exportación son fijos y pueden no cubrir todas las necesidades, y la búsqueda por programa no es intuitiva, lo que dificulta determinar el Exit correcto.
o â—¦ Transacciones SMOD y CMOD: SMOD se utiliza para la administración de las ampliaciones, mientras que CMOD se usa para la gestión de proyectos de ampliaciones.
4 | Los pasos para implementar un Customer Exit
• Primer paso (buscar nombre de ampliación): Se comienza en la transacción SMOD, pero si se desconoce el nombre de la ampliación, se puede buscar en la tabla MODSAP (transacción SE16) o directamente en el código del programa estándar buscando "CALL CUSTOMER-FUNCTION 'XXX'".
• Visualizar componentes de la ampliación: Después de obtener el nombre de la ampliación, se visualiza en SMOD y se accede a sus componentes para ver los módulos de funciones asociados.
• Crear e introducir código en el Include: Dentro del módulo de funciones, en la solapa de código fuente, se encuentra un Include (Z o ZX), que se debe crear si no existe, para insertar el código ABAP personalizado.
• Crear y activar un proyecto de ampliación: Una vez finalizada la codificación, la ampliación debe integrarse en un proyecto Z creado en la transacción CMOD, el cual agrupa y controla múltiples ampliaciones, activándose para que los cambios tengan efecto.
5 | ¿Cómo probar un Customer Exit?
• Método para probar un Customer Exit: Para entender su comportamiento y los datos disponibles, se recomienda crear un proyecto de ampliación, activarlo y establecer un Breakpoint en el módulo de funciones para depurar el proceso.