✒️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?
Son diferentes herramientas que presenta SAP para realizar mejoras, modificaciones o agregados a un programa estándar del sistema.
Algunos programas estándares están preparados como para agregarles funcionalidad nueva a la existente.
En algunos casos se puede validar campos de alguna dynpro en particular, agregar campos a una pantalla con código que permita tratar esos datos nuevos, agregar una nueva opcion dentro de un menú o agregar campos a tablas estándares
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
La principales ventajas que presentan las aplicaciones son:
>Permiten modificar ciertos programas para adaptarlos a necesidades particulares de la empresa, agregando nuevas características a las existentes.
>Permiten realizar mejoras a un programa sin modificar el código original del mismo, mantenimiento el buen funcionamiento y las características que tenía.
>Los cambios toman efecto con sólo transportar los nuevos objetos.
Las principales desventajas que presentan las aplicaciones son:
>No siempre se puede hacer todas las modificaciones de manera satisfactoria, ya que la mayoria de las aplicaciones 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 aplicaciones.
En SAP existen varios tipos de aplicaciones que son utilizadas de acuerda al tipo de mejora o requerimiento que se quiera desarrollar, cada una con sus particularidades que serán explicadas en detalle más adelante
2|Los User Exits
User Exits
Es una subrutina definida dentro de un programa estándar ABAP que está hueca, es decir sin código, está alli para que el usuario ponga su propio código fuente que le permite realizar tareas especificas que no están previstas por SAP
Son las primeras aplicaciones que introdujo SAP
Son propias del módulo de SAP SD de Ventas Distribución, no existe en otros módulos de SAP
Están implementados en la forma de subrutinas
Todos los User Exit están nombrados por SAP como USEREXIT_XXXXXXX
El principal problema que presentan está en encontrar el User Exit correcto. Una vez que lo encontramos deberemos verificar que el mismo sirva para nuestro propósito.
El código ABAP que se insertará dentro del User Exit puede colocarse dentro de un INCLUDE que comenzará con Z o sino suelto
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
Por ejemplo en el programa estándar MV45AFZZ se encuentra el siguiente User Exit que es utilizado por la transacción cada vez que lee un documento.
Transacción VA02
Utilizaremos la transacción estándar VA02 para modificar los pedidos de ventas
*Aclaración los user exit son huecos, se recomienda trabajar con los ya existentes
3|Los 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 un programa estándar haciendo una invocación a un módulo de función.
Algunos programas estándares tienen dentro de su código, llamada a módulos de funciones que pueden ser modificados por un 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 de 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.
Los módulos de función tienen una nomenclatura estándar:
Por 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 disponibles dentro de la apliación
Las principales ventajas que presenta un Customer Exit son:
>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 Cuestimer Exit es suficiente con el include nuevo únicamente, sin tocar el programa original.
Las principales desventajas que presenta un Customer Exit son:
Para trabajar con Customer Exits vamos a utilizar principalmente dos transacciones que son:
SMOD: para administrar las aplicaciones.
CMOD: para la gestión de proyectos de aplicaciones.
Transacciones SMOD Y CMOD
Utilizaremos estas dos transacciones estándares para trabajar con los exits de cliente.
4|Los pasos para realizar un Customer Exit
Vamos a analizar los necesarios para implementar un Customer Exit
Primeramente vamos a dirigirnos a la transaccion SMOD, que es la que maneja las ampliaciones en SAP En esta transacción se debe completar el nombre de la ampliación que contiene el módulo de función a utilizar por el Customer Exit
Si no se conoce el nombre aún, hay que ir a la transacción SE16, con la tabla MODSAP,en el campo MEMBER completar con nombre del módulo de función a buscar (Ejemplo EXIT_SAPMV45A_003) y el campo NAME nos dirá la amplicación
Si tampoco se conoce el módulo de función especifico, debe buscarse en el código del programa estándar las llamadas a funciones de usuario, que estarán indicadas por CALL CUSTOMER-FUNCTION '001' donde el numero del final puede ir cambiando si presenta más de una llamada, es decir varios customer exit o exits de cliente
Una vez que se tiene el nombre de la ampliación, en este ejemplo V45A0003, lo colocamos en el campo Aplicación de la transacción SMOD y presionamos Visualizar
En la siguiente pantalla presionamos el botón Componentes (o habiendo seleccionado la opción Componentes de la pantalla anterior) y se visualizarán todos los módulos de funciones que contiene esta ampliación.
En este caso, para la ampliación V45A0003, existen dos módulos de función Cada uno va a ser ejecutado en algún momento determinado de la ejecución del programa al cual pertenecen, en este caso SAPMV45A
Una vez que ya se sabe qué modulo de función usar se debe hacer doble clic sobre el mismo y se derivará a otra pantalla, en la cual se puede ver qué objetos importa y exporta esta función, como asi también las tablas que importa y que pueden modificarse, las cuales se utilizarán en el código fuente.
En la solapa Cód,fle se encuentra un include Z que se utiliza para agregar el código del usuario
Si este include no existe, al hacer doble clic sobre el mismo, se pedirá al usuario que le asigne una orden de transporte para poder generarlo
Una vez creado es posible generar código ABAP utilizando todos los objetos que figuran en la solapa de Import,Modific y Tablas, pudiendo devolver resultados los objetos que se encuentran en las solapas Export,Modif y Tablas
Una vez terminada la codificación, la ampliacíon debe activarse e incluirse en un proyecto.Los proyectos son creados en la transacción CMOD Alli se debe generar un proyecto Z en el cual se incluirán las ampliaciones que se desee.
Un proyecto de ampliación asocia n ampliaciones. Su activación o desactivación afecta a todas las ampliaciones asociadas.
La transacción para acceder a los proyectos de ampliación es la CMOD. Alli ingresamos el nombre del proyecto y presionamos Crear
El nombre de los proyectos de ampliación debe estar dentro del rango permitido para los clientes, es decir debe comenzar con Z
Ahora presionamos el botón Asignar ampliación para asignar las ampliaciones que vamos a incluir en el proyecto
La pantalla de asignación de aplicaciones es la que vemos a continuación. Alli introducimos las aplicaciones y presionamos el botón Componentes para visualizar los componentes de cada ampliación.
En la pantalla de componentes vamos a activar la ampliación presionando el botón de activación.
Cada uno de esos componentes son los Exit de la ampliación, es alli en donde se debe incorporar el código de validación o proceso a controlar con la ampliación
Una vez activado, el proyecto de ampliación pasará al color verde
5|¿Cómo probar un Customer Exit?
Un punto complicado en la utilización de Customer Exits es ubicados y conocer el momento del proceso en el ocurren los mismos. Todo esto para determinar que datos y que particularmente, se puede realizar en ese momento
Para realizar esta 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 es momento y el punto exacto del proceso en donde se encuentra.
 
 
 
Sobre el autor
Publicación académica de Cristian Mesa, en su ámbito de estudios para la Carrera Consultor ABAP.
Cristian Mesa
Profesión: Analista Programador - Argentina - Legajo: ED13D
✒️Autor de: 26 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP Fiori
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime
Presentación:
Hola muy buenas tardes, mi nombre es cristian oralndo mesa, estoy muy feliz de poder tener la posibilidad de realizar esta capacitación ya que me parece súper interesante sap, espero aprender mucho
Certificación Académica de Cristian Mesa