✒️ABAP Las Ampliaciones: los User Exits y los Customer Exits
ABAP Las Ampliaciones: los User Exits y los Customer Exits
1 Que es una Ampliación
Ampliaciones:
Son diferentes herramientas que presentan SAP para realizar mejoras, modificaciones o agregados a un programa estándar del sistema.
Algunos Programas estándar están preparados como para agregar funcionalidad nueva a la existente.
Algunos casos se pueden validar campos de alguna dynpro en particular; agregar campos a una pantalla con código que permita tratar esos datos nuevos; agregar una nueva opción dentro de un menú o agregar campos a tablas estándar.
Las ampliaciones se generan y codifican en módulos aparte del código estándar, como lo cual no se necesitan modificarlo, manteniendo la funcionalidad original y el buen funcionamiento.
Las Ventajas de las ampliaciones:
ü Permite Modificar Ciertos programas para adaptarlos a necesidades particulares de la empresa, agregando nuevas características a las existentes.
Desventajas de las ampliaciones
Tipos de ampliaciones
· User Exits
· Customer Exits o Exits de Cliente
· KeyWord Exits
· Field Exits o Exits de campo
· Estructura Append
· Badis
· Enhancements
· Menú Exits
2 User Exits
Es una subrutina definida de un programa estándar ABAP que esta hueca, es decir sin código, está allí para que el usuario ponga su propio código fuente que permita crear tareas especiales que no estén previstas por Sap.
Son las primeras ampliaciones que introdujo Sap.
Son propias del módulo de Sap SD de ventas y distribución, no existentes en otros módulos de Sap.
Esta implementada en la forma de subrutina.
Todos los User Exit están nombrados por Sap como USEREXIT_XXXXXXXX
FORM USEREXIT_XXXXXXXXX
…….
…
…
ENDFORM.
El principal problema que presenta está en encontrar el User Exit correcto. Una vez que lo encontremos deberemos verificar que el mismo sirva para el nuevo propósito.
El código Abap que se insertará dentro del user Exit pueda colocar dentro de un INCLUDE que comenzará con Z o sino suelto.
Sabías que: Para ingresar código Abap o modificar el código existente dentro de un User Exit, no se necesita una clave de acceso a SAP.
Transacción VA02
Utilizaremos la transacción estándar VA02 para modificar los pedidos de ventas
Reflexiones: Ciertas aplicaciones del módulo SD todavía utilizan este tipo de ampliaciones pero esta práctica no se está utilizando para nuevas extensiones al código SAP.
En su lugar se utilizan el resto de los tipos de ampliaciones disponibles, aunque vale tener en cuenta que los User Exist serán mantenidos por Sap en las nuevas versiones del sistema.
Audio Tips: Son huecos que genera Sap, en el sistema estándar, están en ligares determinados del sistema, es importante dejar claro que no es posible generar más huecos User Exit si no que tenemos que trabajar únicamente con los ya existentes. Si no encontramos un User Exit que se ajuste a nuestro requerimiento entonces debemos buscar otra alternativa de solución entras las demás soluciones existentes
3 Customer Exits:
También llamadas Exit de Cliente es un punto dentro de un programa en donde se puede llamar a un programa propio.
Se ejecuta desde un programa estándar haciendo una invocación a un módulo de función: Programa Abap creado en la tx se37 y puede ser llamado en cualquier programa.
Algunos programas estándar tiene dentro de su código, llamadas a módulos de funciones que pueden ser modificados por el programador.
Los Customer Exit son llamados dentro de los programas estándares a través de un número.
Este número es la terminación del nombre del módulo de función que está asociado al programa.
En la tabla MODSAP se encuentran todos los módulos de función que se utilizan en los Exist de cliente.
Tablas Útiles:
Tabla MODSAP
La table base de datos estándar MODSAP almacena todas las ampliaciones existentes en el sistema SAP.
De cada ampliación se guarda: el nombre de la ampliación, el tipo de componente que puede ser “E” para Exit de función, “S” para imágenes, “T” para tablas, “C” para código GUI y finalmente el nombre del objeto SAP (programa, módulo de función, etc) que se modifica.
Los módulos de función tienen una nomenclatura estándar.
EXIT_<nombre del programa>_<número de función>
Ejemplo: EXIT_SAPMV45A_003.
La llamada a un Exit de un módulo de función es implementada de la siguiente forma en un programa estándar de SAP.
CALL CUSTOMER-FUNCTION <3 digitos>
Cada uno de estos módulos es llamado por el proceso estándar en ciertos momentos y ellos tienen por defecto algunos parámetros que son los disponible dentro de la ampliación
Las ventajas de un Customer Exit:
ü El Customer Exit es una buena herramienta para agregar funcionalidad nueva a un programa estándar como puede ser una validación o la ejecución de rutinas de control sin modificar el código original
ü Para transportar y activar los Customer Exit es suficiente con el Include nuevo únicamente, sin tocar el programa original.
Las desventajas de un Customer Exit::
Ø No siempre se ejecuta el Customer Exit a las necesidades del programa ya que los objetos que importa o exporta son fijos y pueden no tener todos los objetos que se requieren.
Ø No existe una búsqueda de Customer Exit por programa con una aclaración amplia de su utilización, para buscarlos hay que realizar una búsqueda del Sting CALL CUSTOMER-FUNTION dentro del programa de control estándar y su funcionamiento se prueba sin saber exactamente si es el correcto para lo que se quiere hacer.
Transacciones para el trabajo del Customer Exit
SMOD: administra las aplicaciones
CMOD: Gestión de proyectos de ampliaciones.
Transacciones SMOD y CMOD
Utilizamos estas dos transacciones estándar para trabajar con los Exits de cliente
4. Pasos para realizar un Customer Exit
Vamos a analizar los pasos necesarios para implementar un Customer Exit.
Info: En las últimas versiones de SAP el Include comienza con ZX y si no se utilizó anteriormente deberemos crearlos ya que no existirá.
Audio Tips: tal como mencionamos en el Include ZXVVAU05 vamos a escribir el código Abap dentro del User Exit, en general el código que colocaremos en los User Exit será destinado para realizar validaciones en los campos de entrada
5 Como Probar un Customer Exit?
Un punto complicado en la utilización de Customer Exist es ubicado y conocer el momento del proceso en el que ocurren los mismos. Todo esto para determinar qué datos y que particular, se puede realizar en ese momento.
Para realizar la investigación, lo más efectivo será crear un proyecto de ampliación, asignar la ampliación, activarla y luego colocar un Breakpoint en el módulo de funciones, para determinar los datos con los que disponemos en ese momento y punto exacto del procesado en donde se encuentra.
 
 
 
Sobre el autor
Publicación académica de Jhon Deibys Cano Pineda, en su ámbito de estudios para la Carrera Consultor ABAP.
Jhon Deibys Cano Pineda
Profesión: Ingeniero de Sistemas - Colombia - Legajo: WZ11E
✒️Autor de: 118 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Jhon Cano Pineda