✒️ABAP Las Ampliaciones: los User Exits y los Customer Exits
ABAP Las Ampliaciones: los User Exits y los Customer Exits
Ampliaciones: User Exits y Customer Exists.
1| Ampliaciones.
Son diferentes ampliaciones que presenta SAP para realizar mejoras, modificaciones o agregados a un programa estándar SAP.
Algunos programas estándares están preparados para agregarles funcionalidad nueva a las existentes. Estas ampliaciones se generan y codifican en módulos aparte del código estándar, con lo cual no se necesita modificarlo , manteniendo así la funcionalidad original y el buen funcionamiento.
Principales ventajas:
- 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, manteniendo el buen funcionamiento y las características que tenía.
- Los cambios toman efecto con sólo transportar los nuevos objetos.
Principales 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 de un programa.
- No todos los programas estándares están preparados para agregar todos los tipos de ampliaciones.
Los Tipos de Ampliaciones que son utilizados de acuerdo al tipo de mejora o requerimiento son los siguientes:
- User Exits
- Custumer Exits o Exits de Cliente
- Keyword Exits
- Field Exits o Exits de Campo
- 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á ahí para programar el código fuente necesario que le permita realizar tareas especificas que no están previstas por SAP.
Son las primeras ampliaciones que introdujo SAP, propias del módulo SD (Ventas y Distribución) y no están en otros módulos de SAP. Fueron implementadas en forma de Subrutinas. Todos los User Exits tienen la siguiente nomenclatura: USEREXIT_XXXXXXXX.
El principal problema que presenta es conseguir el User Exit correcto. Una vez encontrado, debemos verificar que sirva para nuestro propósito.
Nota: Para ingresar código ABAP o modificar el existente dentro de un User Exit, no se necesita una clave de acceso SAP.
Transacción VA02: Utilizaremos la Transacción Estándar para modificar los pedidos de ventas.
A Saber: 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, serán mantenidas en las futuras versiones pero en su lugar se utilizarán el resto de los tipos de ampliaciones.
Tips: Los User Exit son huecos que genera SAP en su sistema estándar, éstos están ubicados en lugares determinados del sistema. Es importante dejar claro que no es posible generar nuevos huecos o User Exit si no que debemos trabajar con los ya existentes. Si no encontramos un User Exit que se ajuste a nuestro requerimiento, buscamos otra alternativa de solución dentro de las otras alternativas de ampliaciones ofrecidas por SAP.
3| Custumer Exits.
También llamado Exit de Cliente. Es un punto dentro de un programa donde se puede llamar a un programa propio.
Se ejecutan desde un programa estándar invocando 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 modificadas, estás llamadas es a través de un número , el cual es la terminación del nombre del módulo de función asociado al programa.
Tabla MODSAP: Es la tabla base de datos estándar que almacena todas las ampliaciones existentes en el sistema SAP. De cada ampliación se guarda: El nombre, 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, otros) que se modifican.
Los módulos de función tienen una nomenclatura estándar: EXIT_<Nombre>_<Número>.
Cada uno de estos módulos son llamados por el proceso estándar en ciertos momentos y tienen parámetros por defecto, que son los disponibles dentro de la ampliación.
Principales ventajas:
- 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 Customer Exit es suficiente con el Include nuevo únicamente, sin tocar el programa original.
Principales 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 requieran.
- No existe na 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-FUNCTION dentro del programa de control estándar y su funcionamiento se prueba sin saber exactamente si es el correcto para el requerimiento.
Se utilizan principalmente dos transacciones estándar para trabajar con los Custumer Exit, estas son:
- SMOD: Para administrar las ampliaciones.
- CMOD: Para la gestión de proyectos de ampliaciones.
4| Pasos para realizar un Custumer Exits.
Pasos necesarios para implementar un Customer Exit:
- Usando la transacción SMOD, completamos el nombre de la ampliación que contiene el módulo de la función a utilizar.
- Si no se conoce el nombre, lo buscamos en la tabla MODSAP con la transacción SE16. En el campo MEMBER completar con el nombre del módulo de función a buscar. El campo NAME nos dirá la ampliación que la contiene.
- Si tampoco se conoce el módulo de la función, debe buscarse en el código del programa estándar las llamadas a funciones de usuarios, que estarán indicadas por CALL CUSTOMER-FUNCTION '001', donde el número del final puede ir cambiando si presenta más de una llamada.
- El nombre de la ampliación lo colocamos en el campo Ampliación de la transacción SMOD y visualizamos.
- Presionamos el botón componentes, donde visualizamos todos los módulos de funciones que contiene esta ampliación.
- Hacer doble clic sobre el módulo y veremos los objetos que importa y exporta esta función, así cómo también las tablas que importa y que pueden modificarse, las cuales se utilizarán en el código fuente.
- En la solapa Cod.Fte se encuentra un Include Z que se utiliza para agregar el código de usuario.
Nota: Se crea un proyecto de ampliación para agrupar, clasificar y controlar los Customer Exit.
Tips: El nombre de los proyecto de ampliación debe estar dentro del rango permitido para los clientes, es decir debe comenzar Z.
- Seleccionamos el botón Asignación de Ampliación e introducimos las ampliaciones y presionamos el botón Componentes para visualizarlos.
- En la pantalla de Componentes activamos (color rojo) la ampliación y una vez activado pasa a color verde. Cada uno de esos componente son los Exit de la ampliación, es allí donde se debe incorporar el código de las validaciones o procesos a controlar por las ampliaciones. Podemos anular la activación presionado el botón Desactivar.
 
 
 
Sobre el autor
Publicación académica de Miguel Angel Castro Lima, en su ámbito de estudios para la Carrera Consultor ABAP.
Miguel Angel Castro Lima
Profesión: Analista Programador de Sistemas - Venezuela - Legajo: XD60H
✒️Autor de: 28 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP HCM Nivel Avanzado
- Carrera Consultor en SAP HCM Nivel Inicial
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Presentación:
Consultorías, análisis y programación en sistemas con más de 30 años de experiencia
Certificación Académica de Miguel Castro