✒️ABAP Las Ampliaciones: los User Exits y los Customer Exits
ABAP Las Ampliaciones: los User Exits y los Customer Exits
USER EXITS Y CUSTOMER EXITS
AMPLICACIONES: Son diferentes herramientas que presenta SAP para realizar mejoras, modificaciones o agregados a un programa estándar del sistema.
Algunos programas STANDARD están preparados para agregar funcionalidades nuevas a las existentes.
Las ampliaciones se generan y codifican en módulos aparte del código estándar. No será necesario modificarlo, manteniendo la funcionalidad original y el buen funcionamiento.
VENTAJAS:
Permiten modificar ciertos programas para adaptarlos a necesidades de la empresa, agregando nuevas características a las existentes.
Permiten realiza mejoras a un programa sin modificar el código original del mismo, manteniendo el buen funcionamiento y características que tenía.
Los cambios tienen efecto con solo transportar los nuevos objetos.
DESVENTAJAS
No siempre se pueden hacer todas las medicaciones de manera satisfactoria, ya que la mayoría de ampliaciones están preparadas para una determinada tarea y momento 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. Son utilizadas de acuerdo al tipo de mejora o requerimiento que se quiera desarrollar.
· USER EXITS
· CUSTOMER EXITS o EXITS DE CLIENTE
· KEYWORD EXITS
· FIEDL EXITS o EXITS DE CAMPO
· EXTRUCTURAS APPEND
· BADIS
· ENHANCEMENTS
· MENU EXITS
USER EXITS
Es una subrutina definida dentro de un programa estándar ABAP que está hueca (sin código). Esta allí para que el usuario ponga su propio código fuente que le permita realizar tareas específicas que no están previstas por SAP.
Son las primeras ampliaciones que introdujo SAP
Son propias del módulo de SAP SD
Están implementadas en la forma de subrutinas.
Todos los User Exit están nombrados por sap como USEREXIT_XXXXXXXX
Dificultad en encontrar el correcto y que nos sirva.
El código ABAP que se inserta dentro del USER EXIT puede colocarse dentro de un INCLUDE que comenzara con una Z o suelto.
NOTA: para insertar código AAP o modificar el código existente dentro de un User Exit, no se necesita una clave de acceso SAP ABAP.
Ciertas aplicaciones del módulo SD todavía utiliza este tipo de ampliaciones. Pero están en desuso. En su lugar se utilizan el resto de los tipos de ampliaciones disponibles. Los user exits seguirán siendo mantenidos por SAP en las próximas versiones.
Nota: No se pueden generar nuevos USER EXITS, solo se pueden usar las que existen.
CUSTOMERS EXITS
También llamados EXITS DE CLIENTES es un punto dentro de un programa donde se puede llamar a un programa propio.
Se ejecutan en 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, llamadas a módulos de funciones que pueden ser modificados por el programador.
Son llamados dentro de los programas estándares a través de un número. Este es la terminación 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.
TABLA MODSAP
Es una tabla base de datos estándar, almacena todas las ampliaciones existentes en el sistema SAP.
De cada ampliación se guarda:
1. El nombre de la ampliación
2. El tipo de componentes que puede ser
· E = Exit de funciones
· S = imágenes
· T = tablas
· C = código GUI
3. El nombre del objeto SAP (programa, modulo de función, etc) que se modifica.
Los módulos de funciona tienen una nomenclatura estándar:
EXIT_<NOMBRE DEL PROGRAMA>_<NUMERO DE FUNCION>.
Donde <NUMERO DE FUNCION> son 3 dígitos.
La llamada a un exit de un módulo de funciona se implementa de la siguiente forma:
CALL CUSTOMER-FUNCTION <3digitos>
Ejemplo:
CALL CUSTOMER-FUNCTION ‘100’
EXPORTING
TABLES
CHANGIN
Cada uno de estos modulos es llamado por el proceso estándar en ciertos momentos y tiene por defecto algunos parámetros que son los disponibles dentro de la aplicación.
VENTAJAS
Es una buenta 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 es suficiente con el include nuevo únicamente, sin tocar el programa original.
DESVENTAJAS
No siempre se ajusta 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 customer exit por programa con una aclaración amplia de su utilización, para buscarlos hay que realizar una búsqueda del string CALL CUSTOMER-FUCTION 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.
TRABAJANDO CON CUTOMER EXITS
Transacción SMOD > Para administrar las ampliaciones
Transacción CMOD > Para la gestión de proyecto de ampliaciones
COMO REALIZAR UN CUSTOMER EXIT
Transacción SMOD, se debe completar cl 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 SE17, con la tabla MODSAP, en el campo MEMBER completar en el nombre del módulo de función a buscar (ejemplo EXIT_SAPMV45A_003) y el campo NAME nos dirá la ampliación que contiene.
Si tampoco se conoce el módulo de función especifico, hay que buscar en el código del programa estándar las llamadas a funciones de usuario que estarna indicadas por CALL CUSTOMER-FUNCTION ‘001’ donde el número final puede ir cambiando si se presentan más de una llamada.
Una vez que se tiene el nombre del a ampliación, lo colocamos en el campo Ampliación de la transacción SMOD y pulsamos Visualizar
Pulsamos en el botón componentes y se visualizaran todos los módulos de funciones que contiene esta ampliación.
Por ejemplo en la ampliación V45A0003 existen dos módulos de función que pertenecen a SAPMV45A EXIT_SAPMV45A_003 y 004
Una vez que ya sabemos que módulo de funciona usar se hace doble clic sobre el mismo y nos enviara a otra pantalla en la que podremos ver que objetos importa y exporta la función y que tablas importa y pueden modificarse y que podremos usar en el código fuente.
En la solapa COD.FTE se encuentra un include Z que se utiliza para agregar el código fuente del usuario.
NOTA: en las últimas versiones de sap comienza con ZX y si no se utilizó anteriormente hay que crearlo, ya que no existirá.
Una vez creado es posible generar código utilizando todos los objetos que figuren en la solapa de IMPORT, MODIFIC. Y TABLAS, pudiendo devolver resultados modificando los objetos que se encuentran en las solapas EXPORT, MODIF y TABLAS.
Una vez terminada la codificación debe activarse e incluirse en un proyecto mediante la transacción CMOD. Allí se debe generar un proyecto Z en el cual se incluirán las ampliaciones que se deseen.
NOTA: normalmente se utilizan para validación de datos y si ocurre un error se emitirá un mensaje que impedirá continuar con la transacción o en caso contrario continuara la transacción.
NOTA: para agrupar, clasificar y controlar los Customer Exits creamos un proyecto de ampliación.
Un proyecto de ampliación asocia n aplicaciones.
Su activación o desactivación afecta a todas las ampliaciones asociadas.
Transacción CMOD
Accedemos a los proyectos de ampliación.
Entramos el nombre del proyecto y pulsamos CREAR
NOTA: Siempre debe empezar con Z
Pulsamos en el botón ASIGNAR AMPLIACION para asignar las ampliaciones que vamos a incluir en el proyecto.
Entramos las ampliaciones y pulsamos en COMPONENTES por cada ampliación
En la pantalla de componentes vamos a activa la ampliación presionando el botón de activación.
Cada uno de los componentes son los EXIT de la ampliación, es allí donde se puede incorporar el código de validación o proceso a controlar con la ampliación.
Una vez activado pasa a color verde
Podemos anular la activación del proyecto presionando el botón desactivar
NOTA: si el exit no está activo, la llamada a la función no tendrá efecto alguno.
COMO PROBAR UN CUSTOMER EXIT
Lo más fácil es colocar un BREAKPOINT en el módulo de funcionas para determinar los datos con los que disponemos en ese momento y el punto exacto donde se encuentra.
 
 
 
Sobre el autor
Publicación académica de Josep Antoni Lopez Moyano, en su ámbito de estudios para la Carrera Consultor ABAP.
Josep Antoni Lopez Moyano
Profesión: It Manager - España - Legajo: QP26P
✒️Autor de: 375 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP HCM Nivel Inicial
- Carrera Consultor Basis NetWeaver Nivel Avanzado
- Carrera Consultor Basis NetWeaver Nivel Inicial
- Máster Funcional ABAP
- Máster ABAP Orientado a Objetos
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial