✒️ABAP Las Ampliaciones: los User Exits y los Customer Exits
ABAP Las Ampliaciones: los User Exits y los Customer Exits
Ampliaciones: diferentes herramientas que presenta SAP para mejorar, modificar programas estandares del sistema, algunos programas estandares estan preparados para esto. Se generan y codifican en modulos aparte del codigo estandar, no se necesita modificar el estandar, manteniendo la funcionalidad original y el buen funcionamiento.
VENTAJAS:
Permiten modificar ciertos programas para adptarlos a necesidades particulares de la empresa, agregando nuevas caracteristicas a las existentes.
Permiten realizar mejoras a un programa sin modificar el codigo original del mismo.
Los cambios toman efecto con solo transportar los nuevos objetos.
DESVENTAJAS:
No siempre se pueden hacer todas las modificaciones de manera satisfactoria, la mayoria de las ampliaciones estan preparadas para una determinada tarea y momento dentro de la ejecucion de un programa.
No todos los programas estandares estan preparados para agregar todos los tipos de ampliaciones.
Tipos de ampliaciones SAP:
USER EXITS
CUSTOMER EXITS O EXITS DE CLIENTE
KEYWORD EXITS
FIELD EXITS O EXITS DE CAMPO
ESTRUCTURAS APPEND
BADIS
ENHACEMENTS
MENU EXITS
USER EXIT: subrutina definida dentro de un programa estabdar ABAP que esta hueca, sin codigo, para que el usuario ponga su propio codigo fuente que le permita realizar tareas especificas que no estan previstas por SAP. Son propias de modulo de SAP SD. Implementadas en forma de subrutinas.
El codigo ABAP que se inserara dentro de un USER EXIT puede colocarse dentro de un include que comenzara con Z o sino resuelto.
PARA INGRESAR CODIGO ABAP O MODIFICAR EL CODIGO EXISTENTE DENTRO DE UN USER EXIT, NO SE NECESITA UNA CLAVE DE ACCESO DE SAP.
CUSTOMER EXIT: exit de cliente, punto dentro de un programa en donde se puede llamar a un programa propio. Se ejecutan dentro de un programa estandar haciendo una invocacion a un modulo de funcion. Son llamados dentro de los programas estandares a traves de un numero, este numero es la terminacion del nombre del modulo de funcion que esta asociado al programa. En la tabla MODSAP se encuentran todos los modulos de funcion que se utilizan en los exits de cliente. De cada ampliacion se guardan: el nombre de la ampliacion, el tipo de componentes que puede ser E para exit de funciones, S para imagenes, T para tablas y C para codigo GUI, y el nombre del onjeto SAP (programa, modulo de funcion, etc.) que se modifica.
Nomenclatura EXIT_nombredelprograma_numerodefuncion.
VENTAJAS:
Es una buena herramienta para agregar funcionalidad nueva a un programa estandar como puede ser una validacion o la ejecucion de rutinas de control sin modificar el codigo original.
Para transportar y activar los CUSTOMER EXIT es suficiente con el INCLUDE nuevo unicamente, sin tocar el programa original.
DESVENTAJAS:
No siempre se ajusta a las necesidades del programador ya que los objetos que importa o exporta son fijos y pueden no tener los objetos que se requieren.
No existe una busqueda de customer exit por programa con una aclaracion amplia de su utilizacion, 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 codigo correcto para lo que se quiere hacer.
Para trabajar con CUSTOMER EXITS se usan las trx SMOD (administrar las ampliaciones ) y CMOD (gestion de proyectos de amplaciones).
Pasos para realizar un CUSTOMER EXIT:
SMOD completar el nombre de la ampliacion que contiene el modulo de funcion a utilizar por el customer exit, si no se conoce el nombre hay que ir a la trx 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 la contiene. Si tampoco se conoce el modulo de funcion especifico debe buscarse en el codigo del programa estandar las llamadas a dunciones de usuario, indicadas por CALL CUSTOMER-FUNCTION '001', donde el numero final puede ir cambiando si presenta mas de una llamada, es decir customer exit o exits de cliente. Una vez obtenido el nombre de la ampliacion, lo colocamos en el campo ampliacion de la trx SMOD.
Vamos a COMPONENTES y se visualizan todos los modulos de funciones que contiene la ampliacion. Una vez que se sabe que modulo de funcion usar, doble click, se visualizan los objetos que importa y exporta esta funcion y tambien las tablas que importa que pueden modificarse. Las cuales se usaran en el codigo fuente, en la solapa codigo fuente se encuentra un include que se utiliza para agregar el codigo de usuario, ZX... Si no existe se genera una OT para poder generarlo.
Terminada la codificacion, la ampliacion debe activarse e incluirse en un proyecto, los proyectos son creados en la TRX CMOD. Se debe genear un proyecto Z incluyendo las ampliaciones que se desean.
PARA AGRUPAR, CLASIFICAR Y CONTROLAR LOS CUSTOMER EXIT SE CREAN LOS PROYECTOS DE AMPLIACION. UN PROYECTO DE AMPLIACION ASOCIA N AMPLIACIONES, SU ACTIVACION O DESACTIVACION AFECTA A TODAS LAS AMPLIACIONES ASOCIADAS. CMOD es la trx para crear los proyectos de ampliacion. Debe comenzar con Z.
SI EL EXIT NO ESTA ACTIVO LA LLAMADA A ESTA FUNCION NO TENDRA EFECTO ALGUNO.
 
 
 
Sobre el autor
Publicación académica de Jose Ignacio Rodini, en su ámbito de estudios para la Carrera Consultor ABAP.
Jose Ignacio Rodini
Profesión: Licenciado en Informatica - Argentina - Legajo: HM58N
✒️Autor de: 115 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Jose Rodini