![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP Las Ampliaciones: los User Exits y los Customer Exits
ABAP Las Ampliaciones: los User Exits y los Customer Exits
![ABAP Las Ampliaciones: los User Exits y los Customer Exits ABAP Las Ampliaciones: los User Exits y los Customer Exits](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/51.jpg)
AMPLIACIONES: USER EXITS Y CUSTOMER EXITS
AMPLIACION: Diferentes herramientas que presenta SAP para realizar mejoras, modificaciones o gregados a un programa estandar
Algunos programas estan preparados como para agregarles funcionalidad nueva a la existente
Las amplicaciones s egeneran y codifican en modulos aparte del codigo estandar, para modificarlo, manteniendo la funcionalidad original y el buen funconamiento.
VENTAJAS
- Permiten modificar ciertos programas para adaptarlos a necesidad de la empresa
- Permite realizar mejoras a un programa sin modificar el codigo original del mismo
- Los cambios toman efecto con solo transaportar los nuevos objetos
DESVENTAJAS
- No siemrpe se pueden realizar todas las modificaciones satisfactoriamente
- No todos los programas estandares estan preparados para agregar todos los tipos de ampliaciones
En SAP existen varios tipos de ampliaciones, utilizadas de acuerdo al tipo de mejora o requerimiento a desarrollar, Importantes son:
- USER EXITS
- CUSTOMER EXITS O EXITS DE CLIENTE
- KEYWORD EXITS
- FIELS EXITS o EXITS DE CAMPO
- ESTRUCTURAS APPEND
- BADIS
- ENHANCEMENTS
- MENU EXITS
USER EXITS
Subrutina definida dentro de un programa estandar que esta hueca, sin codigo.
Primer ampliacion de SAP, son propias del modulo de SAP SD de venta y distribucion, estan implementados en la forma de subrutinas, estan nombrados por SAP como: USEREXIT_XXXXXXX
El problema es encontrar el user exit correcto, ya encontrado debemos verificar que el mismo sirva para nuestro proposito
El codigo dentro del User Exit puede colocare dentro de un INCLUDE comenzando con Z o suelto
TRANSACCION VA02. Utilizamos la transaccion para modificar los pedidos de ventas
Los User Exit son huecos que genera SAP en el sistema estándar. Estos huecos están ubicados en lugares determinados del sistema. Es importante dejar claro que no es posible generar nuevos huecos, sino que se tiene que trabajar con los existentes. Si no se encuentra un User Exit que se ajuste a los requisitos, entonces tendremos que buscar otra alternativa de solución dentro de las demás soluciones de ampliaciones posibles que ofrece SAP en su sistema.
CUSTOMER EXITS
Es un punto dentro de un programa en donde se pued ellamar a unprograma propio, se ejecuta desde un programa estandar haciendo invocacion a un modulo de funcion
Algunos programas estandares tienen dentro de su codigo, llamadas o modulos de funciones que modifica el programador
En la tabla MODSAP, se encuentran todos lodo modulos de funcion que se utilizan en los Exits de cleinte
TABLA MODSAP Tabla estandar almacena todas las ampliaciones existentes en el sistema SAP, cada ampliacion guarda: nombre, el tipo de componente "E" para Exist de funciones "S" para imagenes "T" para tablas "C" para codigo GUI y finalmente el nombre del objeto SAP, que se modifica
Los modulos de funcion tienen una nomenclatura estandar, Ejmp: EXIT_SAPMV45A_003
VENTAJAS que presenta un Customer Exit:
- Es una buena herramienta para agregar funcionalidad nueva a un programa estandar
- Para transportar y activar los Customer Exit es suficioente con el include nuevo
DESVENTAJAS
- No siempre se ajusta el Customer Exit a las necesidades del prgoramador
- No existe una busqueda de Customer Exit por programa con una aclaracion amplia, hay que realizar una busqueda del string CALL CUSTOMER-FUNCTION dentro del programa de control estandar y su funcionamiento para buscarlo
Para utilizar el Customer Exists: Transacciones:
- SMOD: para adminsitrar las ampliaciones
- CMOD: para la gestion de proyectos de ampliaciones
PASOS PARA REALIZAR UN CUSTOMER EXIT
- Primero nos dirigimos a la transaccion SMOD. En la transaccion debemos completar el nombre de la ampliacion que contiene el modulo de funcion a utilizar
- Si no conocemos el nombre, en la transaccion SE16 con la tabla MODSAP, en el campo MEMBER completar con el nombre del modulo de funcion a buscar, y el campo NAME nos dira la ampliacion que contiene
- Si no conocemos el nombre especifico, debe buscarse en el codigo del programa estandar las llamadas a funciones de usuario, indicadas por CALL CUSTOMER-FUNCTION ´001´
- Una vez utilizado el nombre, vemos la pantalla el nombre de la ampliacion, colocamos en el campo la ampliacion de la transaccion SMOD y visualizamos
- En la siguiente presionamos el boton COMPONENETES y visulizamos todos los modulos
- Una vez que tengamos el nombre de la funciona a usar hacemos soble clic sobre el mismo y se derivara a otra pantalla, para ver objetos importar y exportar esta funcion.
- En la solapa Cod.fte. se encuentra un include Z para agregar el codigo del usuario
- Si no existe el include al hacer doble clic, se pedira al usuario que le asigne una orden de transaporte para generarlo
- Una vez creado es posible generar codigo ABAP, en los objetos de la solapa IMPORT, MODIFC,. y TABLAS, podiendo devolver resultados modificando los objetos que se encuentran en la solapa EXPORT, MODIF, TABLAS
Tal como mencionamos dentro del include ZXVVAU05 vamos a escribir el código ABAP que colocaremos dentro del Exit. En general el código que colocaremos dentro de los Exit será destinado a realizar validaciones de los campos de entrada. En caso de cumplirse una condición determinada se emitirá en pantalla un mensaje de error que impedirá el normal funcionamiento de la transacción. Caso contrario se continuará con el procesamiento normal.
- Una vez terminada la codificación, la ampliación debe activarse e incluirse en un proyecto. Los proyectos son creados en la transacción CMOD. Allí 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. Allí ingresamos el nombre del proyecto y presionamos Crear.
Ahora presionamos el botón Asignación ampliación para asignar las ampliaciones a incluir
Allí introducimos las ampliaciones y presionamos el botón Componentes para visualizar los componentes de cada ampliación
En la pantalla de componentes vamos a activar la ampliacion presionando el boton de activacion
Cda uno de esos compoenentes son los Exit de la ampliacon
Una vez activado, el proyecto de ampliacion pasasra a color verde
Podemos anular la activacion del proyecto de ampliacion presionando el boton desactivar
COMO PROBAR UN CUSTOMER EXIT
Un punto complicado en la utilización de Customer Exits es ubicarlos y conocer el momento del proceso en el que ocurren los mismos.
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 ese momento y el punto exacto del proceso en donde se encuentra
 
 
 
Sobre el autor
Publicación académica de Ixhel Magai Lopez Valencia, en su ámbito de estudios para la Carrera Consultor ABAP.
Ixhel Magai Lopez Valencia
Mexico - Legajo: PM62E
✒️Autor de: 134 Publicaciones Académicas
🎓Egresado de los módulos:
- Máster ABAP for HANA
- Máster ABAP Orientado a Objetos
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: PartTime
Presentación:
Soy ingeniera en telematica, estoy interesada en aprender programacion en sap, solo tengo conocimientos basicos en java
Certificación Académica de Ixhel Lopez