✒️ABAP Las Ampliaciones: los User Exits y los Customer Exits
ABAP Las Ampliaciones: los User Exits y los Customer Exits
Unidad 3: Las ampliaciones y las notas de SAP
Lección 1: Los User Exits y los Customer Exits
Ampliación:
Son herramientas para hacer mejoras, modificaciones o agregados a un programa estándar del sistema.
Algunos programas estándares están preparados para hacerles pequeños cambios, como validar campos en alguna dynpro, agregar campos, agregar nuevas opciones al menú, etc.
Las ampliaciones se generan y codifican en módulos aparte del cód. estándar, con lo cual no se necesita modificarlo, manteniendo la funcionalidad original y el buen funcionamiento.
Ventajas:
- Permite modificar ciertos programas para adaptarlos a ciertas necesidades de la empresa.
- Permite hacer mejoras a un programa sin modificar el cód. original, manteniendo el buen funcionamiento y caract.
- Los cambios toman efecto con sólo transportar los nuevos objetos.
Desventajas:
- No siempre se pueden hacer satisfactoriamente las modificaciones, ya que la mayoría de las ampliaciones están preparadas para un cierta 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.
Tipos de ampliaciones:
User Exits, Customer Exits o Exits de Cliente, KeyWord Exits, Field Exits o Exits de Campo, Estructuras Append, Badis, Enhancements y Menú Exits.
Veremos cada una.
User Exits:
- Subrutina definida dentro de un programa estándar que no tiene cód. Está allí para que el usuario ponga su propio cód. fuente que le permita hacer tareas específicas que no están previstas por SAP.
- Son las primeras ampliaciones hechas por SAP.
- Son propias del módulo de SAP SD y no existe en otros módulos.
- Están implementados en forma de subrutinas.
- Todos los User Exit están nombrados por SAP como USEREXIT_XXXXXXXX:
- El problema es encontrar el User Exit correcto y una vez encontrado, hay que ver que nos sirva.
- El cód. que se insertará dentro, puede colocarse dentro de un INCLUDE que comience con Z o sino, suelto.
- Además no es posible crear nuevos User Exit, hay que usar los existentes.
Costumer Exits / Exits de Cliente:
- Punto dentro de un programa en donde se puede llamar a un programa propio.
- Se ejecuta desde un programa estándar haciendo la invocación a un MF. Algunos programas estándares, dentro de su cód. tienen llamadas a MF que pueden ser modificados por el programador.
- Los Customer Exit son llamados dentro de los programas estándares por medio de un nro.
Este nro. es la terminación del nombre del MF que está asociado al programa. - En la tabla MODSAP se encuentran todos los MF que se usan en los Exits de cliente.
**Tabla MODSAP: TBD que almacena todas las ampliaciones existentes. De cada ampliación se guarda el nombre de la aplicación, el tipo de componente y el nombre del objeto (programa, MF, etc) que se modifica. - Los MF tienen la nomenclatura:
Ej: EXIT_SAPMV45A_003. - La llamada a un exit de un MF es implementada de la sig. forma en un programa estandar:
Cada módulo es llamado por el proceso estándar en ciertos momentos y ellos tienen por defecto algunos param. que solo están disponibles dentro de la ampliación. - Ventajas:
Es buena herramienta para agregar funcionalidad nueva a un programa estándar sin modificar el cód. original.
Para transportar y activar, los Customer Exit es suficiente con el Include nuevo, sin tocar el programa original. - Desventajas:
No siempre se ajusta a las necesidades del programa, ya que los objetos que importa o exporta son fijos.
No existe un búsq. de Customer Exit por programa con una aclaración, para buscarlos hay que hacer la búsq. del string CALL CUSTOMER-FUNCTION dentro del programa de control estándar y su funcionamiento se prueba sin saber si es el correcto. - Transacciones para trabajar con Customer Exits:
SMOD: para administrar ampliaciones.
CMOD: para la gestión de proyectos de ampliación.
PASOS PARA HACER UN CUSTOMER EXIT:
- Ir a la trans. SMOD y completar el nombre de la ampliación que contiene el MF a usar por el Customer Exit.
Pero si no sabemos el nombre, ir a la trans SE16 > tabla MODSAP > campo MEMBER (escribir el nombre del MF a buscar) y el campo NAME nos dirá la ampliación que contiene.
Si tampoco sabemos el MF, hay que buscar en el cód. del programa estándar las llamadas a funciones de usuarios, que estarán indicadas por CALL CUSTOMER-FUNCTION '001', en donde el nro. final puede ir cambiando si presenta más de una llamada, es decir, varios customer exit. - Una vez que tenemos el nombre de la ampliación, la escribimos "V45A0003" y presionamos Visualizar.
- En la sig. pantalla presionar Componentes y veremos todos los MF que contiene la ampliación.
En este, nuestra ampliación cuenta con 2 MF, que se ejecutarán en un momento determinado en la ejecución del programa al que pertenecen, en este caso "SAPMV45A":
- Sabiendo los MF a usar, 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 las tablas que importa y que se pueden modificar.
- En la solapa Cód.fte. se encuentra un Include Z que se usa para agregar el cód. del usuario (en ultimas versiones, el include empieza con ZX)
- Si el include no existe, hacer doble clic en él y asignarle una orden de transporte para generarlo.
- Ahora podemos generar cód. usando todos los objetos que figuren en las solapas 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, la ampliación debe activarse e incluirse en un proyecto; estos son creados en la trans CMOD.
- Una vez en la trans, ingresar el nombre del proyecto y Crear.
- Presionar "Asignación ampliación" para asignar las ampliaciones que incluiremos en el proyecto.
- En la prox pantalla introduciremos las ampliaciones y presionamos "Componentes" para ver cada componente de la ampliación.
- En la pantalla de componente, activaremos la ampliación. Cada uno de los componentes son Exit de la ampliación, es allí donde se debe incorporar el cód. de validación o proceso a controlar con la ampliación:
- Luego de activarlo, el proyecto pasará a estar en verde, en lugar de rojo.
- Para anular la activación del proyecto de ampliación, presionar el botón para desactivarlo.
Cómo probar un Customer Exit:
Lo complicado de usar un Customer Exit, es ubicarlo y conocer el momento del proceso en el que ocurren los mismos. Todo esto para determinar que los datos y que particularmente, se puede hacer en ese momento.
Para esto, lo mejor es crear un proyecto de ampliación, asignar la ampliación, activarla y luego colocar un BreakPoint en el MF 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 Candela Estefanía Calzada, en su ámbito de estudios para la Carrera Consultor ABAP.
Candela Estefanía Calzada
Profesión: Técnica Electrónica - Argentina - Legajo: JW91W
✒️Autor de: 160 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Presentación:
Me encuentro estudiando la ingeniería en sistemas de información. poseo amplia experiencia en edición de videos. tengo bases entorno a la programación que quiero continuar consolidando.
Certificación Académica de Candela Calzada