✒️ABAP Las Ampliaciones: los User Exits y los Customer Exits
ABAP Las Ampliaciones: los User Exits y los Customer Exits
Lección 1: Ampliaciones: User Exits y Customer Exist.
1.-Que es una Ampliación?
Son diferentes herramientas que presenta SAP para realizar mejoras, modificaciones o agregados a un programa estándar del sistema.
Las Ampliaciones se generan y codifican en módulos aparte del código estándar, con lo cual no se necesita modificarlo, manteniendo la funcionalidad original y el buen funcionamiento.
Principales ventajas que presentan las ampliaciones:
· Permiten modificar ciertos programas para adaptarlos a necesidades particulares de la empresa, agregando nuevas características a las ya existentes.
· Permiten realizar mejoras a un programa sin modificar el código original, manteniendo el buen funcionamiento y las características que tenía.
· Los cambios toman efecto con solo transportar los nuevos objetos.
Principales desventajas que presentas las ampliaciones:
· No siempre se pueden hacer todas las modificaciones de manera satisfactoria, ya que la mayoría de las ampliaciones están preparadas para una determinada tarea y momento dentro de la ejecución de un programa.
· No todos los programas estándares están preparados para agregar todos los tipos de ampliaciones.
Existen varios tipos de ampliaciones, las más importantes:
· User Exits
· Customer Exits o Exits de Cliente
· KeyWord Exits
· Field Exits o Exits de Campo
· Estructuras Append
· Badis
· Enhancements
· Menú Exits
2.-User Exits.
Es una subrutina definida dentro de un programa estándar ABAP que está hueca, es decir sin código, está allí para que el usuario ponga su propio código fuente que le permita realizar tareas especificas que no están previstas por SAP.
Son propias del módulo de SAP SD de Ventas y Distribución. Están implementados en la forma de subrutinas. Todos los User Exits están nombrados por SAP como USEREXIT_XXXXXXX.
FORM USEREXIT_XXXXXXX.
…
..
ENDFORM.
El principal problema que presentan es encontrar el User Exit correcto.
El código ABAP que se insertará dentro del User Exit puede colocarse dentro de un INCLUDE que comenzará con Z o sino, suelto.
NOTA: Para ingresar código ABAP o modificar el código existente dentro de un User Exit, no se necesita una clave de acceso de SAP.
Ejemplo: En el programa estándar MV45AFZZ se encuentra el siguiente User Exit que es utilizado por la TX VA02 cada vez que lee un documento. FORM USEREXIT_READ_DOCUMENT
NOTA: Utilizaremos la transacción estándar VA02 para modificar los pedidos de ventas.
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 Exits serán mantenidos por SAP en las nuevas versiones del sistema.
Los User Exit son “Huecos” que genera SAP. No se pueden generar nuevos “Huecos”, con lo que si no nos son útiles, debemos buscar otra solución.
3.-Customer Exits.
También llamado Exit de Cliente, es un punto dentro de un programa en donde se puede llamar a un programa propio.
Se ejecutan desde un programa estándar haciendo una invocación a un módulo de función.
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 Exits de cliente.
NOTA: Tabla 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 funciones, “S” para Imágenes, “T” para Tablas y “C” para Código GUI y finalmente el nombre del objeto SAP (Programa, Módulo de función, etc.) que se modifica.
EXIT_<nombre_de_programa>_<número_de_función>
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 CUSTMER-FUNCTION <3 dígitos>
CALL CUSTOMER-FUNCTION ‘100’
EXPORTING
I_meth = ld_meth
I_catnr = ld_catnr
I_data = ld_data_line
TABLES
It_catalogo = it_catalog
It_catalog1 = it_catalog1
It_catalog2 = it_catalog2
It_catalog3 = it_catalog3
It_split = it_split
It_error = it_error
It_changes = it_changes
CHANGING
C_upload = it_upload
Ventajas de un Customer Exit:
· Es una buena herramienta para agregar funcionalidad nueva a un programa estándar como puede ser la 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.
Desventajas :
· No siempre se ajusta el Customer Exit a las necesidades del programador, 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 Customers Exit por programa con una aclaración amplia de su utilización. Hay que buscar el string CALL CUSTOMER-FUNCTION dentro del programa de control estándar, y hay que probar que hace exact
 
 
 
Sobre el autor
Publicación académica de Juan Hernández, en su ámbito de estudios para la Carrera Consultor ABAP.
Juan Hernández
Profesión: Programador Informático - España - Legajo: XQ15K
✒️Autor de: 125 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: PartTime
Certificación Académica de Juan Hernández