✒️ABAP Las Ampliaciones: los User Exits y los Customer Exits
ABAP Las Ampliaciones: los User Exits y los Customer Exits
Ampliaciones: son diferentes herramientas que presenta SAP para realizar mejoras, modificaciones o agregados a un programa estándar del sistema.
Principales Ventajas:
- Permiten modificar ciertos programas para adaptarlos a necesidades particulares de la empresa, agregando nuevas caracteristicas a las existentes.
- Permiten realizar mejoras a un programa sin modificar el código original del mismo, manteniendo el buen funcionamiento y las caracteristicas que tenia.
- 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 mayoria 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.
En sap existen varios tipos de ampliaciones, que son utilizados de acuerdo al tipo de mejora o requerimiento que se quiera desarrollar, cada una con sus particularidades que serán explicadas en detalle más adelante.
Las mas importantes son:
- User Exits
- Customer exits o exits de Cliente
- KeyWord Exits
- Field exits o exits de campo
- Estructura Append
- Badis
- Enhancements
- Menú exits
User exits:es una subrutina definida dentro de un programa estándar abap que esá hueca, es decir sin código, estaá alli para que el usuario ponga su propio código fuente que le permita realizar tareas especificas que no están previstas por SAP.
Son las primeras ampliaciones que introdujo SAP.
Son propias del módulo de SAP SD de ventas y distribución, no existen otros módulos de SAP.
Estan implementados en la forma de subrutinas.
Todos los User Exit están nombrados por sAP como USEREXIT_XXXX
Para Ingresar código ABAP o modificar el código existente dentro de un User Exit, no se necesita una clave de acceso SAP.
Ejemplo el programa estandar MV45AFZZ se encuentra el siguiente User Exit que es utilizado por la transacción VA02 cada vez que lee un doc.
Customer Exit: exit de cliente es un punto dentro de un programa en donde se pueden llamar a un programa propio.
se ejecutan desde un programa estandar haciendo una invocación a un modulo de función algunos programas estandares tienen dentro de su codigo, llamadas a modulos de funciones que pueden ser modificados por el programador.
los customer exit son llamados dentro de los programas estandares a traves de un número
este número es la terminación del nombre del modulo de función que esta asociado al programa.
en la tabla MODSAP se encuentran todos los módulos de funcion que se utilizan en los Exits de cliente.
Tabla MODSAP: es una tabla estandar que almacena todas las ampliaciones existentes en el sistema SAP.
de cada ampliación se guarda: el nombre de la ampliación, el tipo de componente que puede ser "E" para exit de funciones, "S" para imagenes, "T" para tablas y "C" para código GUI y finalmente el nombre del objeto SAP.
Cada uno de estos modulos es llamado por el proceso estandar en ciertos momentos y ellos tiene por defecto algunos parametros que son los disponibles dentro de la ampliación.
Principales ventajas que presenta un customer exit son:
- Es buena herramienta para agregar funcionalidad nueva a un programa estandar 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 unicamente, 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 requieren.
- No existe una busqueda de customer exit por programa con una aclaración amplia de su utilización, para buscarlos hay que realizar una busqueda del string CALL CUSTOMER-FUNCTION dentro del programa de control estandar y su funcionamiento se prueba sin saber exactamente si es el correcto para lo que se quiere hacer.
Para el customer exits vamos a utilizar principalmente 2 transacciones :
SMOD: para administrar ampliaciones
CMOD: para la gestión de proyectos de ampliaciones.
Pasos para realizar un Customer Exit
Dirigirnos a la Tx. SMOD, que es la que maneja las ampliaciones en SA. en esta transacción se debe completar el 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 TX SE16, con la tabla MODSAP, en el campo member completar con el nombre del módulo de función a buscar (Ejemplo EXIT_SAPMV45A_003) y el campo NAME nos dirá la ampliación que la contiene.
Si tampoco se conoce el módulo de función especifico, debe buscarse en el código del programa estándar las llamadas a funciones de usuario, que estarán indicadas por CALL CUSTOMER-FUNCTION '001', donde el númer del final puede ir cambiando si presenta más de una llamada, es decir varios customer exit o exits de cliente.
Una vez que se tiene el nombre de la ampliación, en este ejemplo V45A0003, lo colocamos en el campo ampliación de la transacción SMOD y presionamos Visualizar.
En la siguiente pantalla presionamos el botón Componentes(o habiendo seleccionado la opción Componentes de la pantalla anterior) y se visualizarán todos los módulos de funciones que contiene esta ampliación.
En este caso, para la ampliación V45A0003, existen dos módulos de función. Cada uno va a ser ejecutado en algún momento determinado de la ejecución del programa al cual pertenecen, en este caso SAPMV45A.
Una vez que ya se sabe qué modulo de función usar se debe hacer doble clic sobre el mismo y se derivara a otra pantalla, en la cual se puede ver que objetos importa y exporta esta función, como asi tambien las tablas que importa y que pueden modificarse, las cuales se utilizaran en el código fuente.
en la solapa Cód.fte. se encuentra un Include Z que se utiliza para agregar el código del usuario.
En las ultimas versiones de SAP el include comienza con ZX y si no se utilizo anteriormente deberemos crearlo ya que no existira.
Si este include no existe, al hacer doble clic sobre el mismo, se pedira al usuario que le asigne una orden de transporte para poder generarlo.
Una vez creado es posible generar código ABAP 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.
 
 
 
Sobre el autor
Publicación académica de Natalia Alejandra Garcia Milla, en su ámbito de estudios para la Carrera Consultor ABAP.
Natalia Alejandra Garcia Milla
Profesión: Ingeniero en Informática - Chile - Legajo: ZE97A
✒️Autor de: 41 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Certificación Académica de Natalia Garcia