![](/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/459.jpg)
QUE ES UNA AMPLIACIÓN?
Son diferentes herramientas que presenta SAP para realizar mejoras , modificaciones o agregados a un programa estándar.
Ventajas:
- Permiten modificar ciertos programas para adaptarlos a necesidades particulares de la empresa
- Permite realizar mejoras a un programa sin modificar el código original del mismo, manteniendo el buen funcionamiento y las características que tenia.
- Los cambios toman efecto con solo transportar los nuevos objetos.
Desventajas:
- 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 del programa.
- No todos los programas estándares están preparados para agregar todos los tipos de ampliaciones
Los tipos mas importantes de ampliaciones son:
- User Exits
- Customer exits
- Keyword Exits
- Field Exits
- Estructuras Append
- Badis
- Enhacements
- Menú Exits.
v USER EXITS
Es una subrutina definida dentro de un programa estándar Abap que está hueca, y está ahí para el usuario ponga su propio código fuente que le permita realizar tareas específicas que no están previstas por SAP.
Fueron las primeras ampliaciones que introdujo SAP y son propias del módulo SD. Implementadas en forma de subrutinas. Nombrados como USEREXIT_XXXXXXXX
El principal problema está en encontrar el user exit correcto y una vez que se encuentra se debe de verificar si sirve para el propósito. El código que se insertará en la user exit se puede colocar dentro de unINCLUDE que comenzará con Z.
Ciertas aplicaciones del módulo SD todavía utilizan este tipo de ampliaciones pero esta practica no se esta utilizando para nuevas extensiones del código, en su lugar se utilizan el resto del tipo de ampliaciones disponible aunque los user-exit serán mantenidos por SAP en las nuevas versiones.
Audio:
NO ES POSIBLE GENERAR NUEVOS HUECOS O USER EXITS SINO QUE DEBEMOS TRABAJAR CON LOS YA EXISTENTES, SINO SE ENCUENTRA UN USER EXIT QUE SE ADAPTE AL REQUERIMIENTO ENTONCES SE DEBE BUSCAR OTRA ALTERNATIVA DE SOLUCION DENTRO DE LAS DEMAS SOLUCIONES DE AMPLIACIONES POSIBLES QUE OFRECE SAP DENTRO DE SU SISTEMA.
Llamados también como Exit de cliente y es un punto dentro de un programa en donde se puede llamar a un programa. propio.
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 esta asociada al sistema.
En la tabla MODSAP se encuentran todos los módulos de función que se utilizan en los exits de cliente. En esta tabla se almacena todas las ampliaciones existentes de SAP. ( E - Exit de funciones, S - Imagenes, T - Tablas, C- Código GUI)
La nomenclatura es: EXIT _<nombre programa>_<Número de función
Ejemplo: EXIT_SAPMV45A_003.
La llamada de un módulo de función es implementada en un programa estandar SAP: CALL CUSTOMER-FUNCTION <3 digitos>
Ventajas
- El customer exit es una buena herramienta para agregar funcionalidad nueva a un programa estándar
- Para transportar y activar los Customer Exit es suficiente con el include nuevo
Desventajas
- No siempre se ajusta el Customer Exit a las necesidades del programador, ya que los objetos que importa y exporta son fijos
- No existe una búsqueda de Customer exit por programa , para buscarlos hay que realizar una búsqueda del string CALL CUSTOMER-FUNCTION dentro del programa.
Las transacciones que se utilizarán son:
- SMOD - Para administrar las ampliaciones
- CMOD - Para la gestión de proyecto de ampliaciones
v Pasos para crear una Customer Exit
1- Entrar en la SMOD en donde se debe completar el nombre de la ampliación que contiene el módulo de función a realizar pro el Customer Exit.
2- Si no se conoce se tiene que ir a la SE16 y buscar en la tabla MODSAP en el campo MEMBER se debe completar el nombre del módulo de función a buscar, y el nombre estará en NAME.
3- Si no se conoce el nombre tampoco, entonces de debe de buscar en el código del programa estándar la llamada a la función con es string CALL CUSTOMER-FUNCTION
4- Ya con el nombre( VA5A0003) ir a la SMOD y visualizar
5- darle click en Componentes, y se visualizan los módulos de funciones de la ampliación
6- Dar doble click sobre el módulo que se requiera utilizar, y se presenta los objetos que importa y exporta. En la pestaña Cod Fte se encuentra un include Z que es en donde se agrega el código. (En las últimas versiones de SAP inician con ZX)
7- Una vez creado el include es posible generar el código Abap utilizando todos los objetos que se están en la pestaña de Import, Export y Tables.
8- Se activa y se incluye en un proyecto ( un proyecto asocia n ampliaciones y su activación afecta a todas las ampliaciones asociadas).
9- Se crea el proyecto en la transacción CMOD, iniciando con Z
10- En el proyecto se da click a Asignación Ampliación, y se introduce la ampliación
11- Se da click en Componentes
12- En componentes se activa la ampliación y también se puede desactivar. Si el Exit no está activo , la llamada a esta función no tendrá efecto alguno.
Lo mas efectivo es crear un proyecto de ampliación, asignar la ampliación, activarla y colocar un break-point en el módulo de funciones.
 
 
 
Sobre el autor
Publicación académica de Carlos Alberto Carreira, en su ámbito de estudios para la Carrera Consultor ABAP.
Carlos Alberto Carreira
Profesión: Consultor Técnico en Jde W.s. - Argentina - Legajo: KC15G
✒️Autor de: 92 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Inicial
🎓Egresado de los módulos:
Certificación Académica de Carlos Carreira