✒️ABAP Las Ampliaciones: los User Exits y los Customer Exits
ABAP Las Ampliaciones: los User Exits y los Customer Exits
Las Ampliaciones: los User Exits y los Customer Exits
1 - Ampliaciones
Herramientas para realizar mejoras, modificaciones, agregados a un programa estandar, se generan y codifican
aparte del modulo estandar.
Ventajas:
- permiten modificar los programas a las necesidades de la empresa.
- permite modificar sin tocar el programa estandar.
- los cambios toman efectos al transportar los objetos.
Desventajas:
- no todos los programas estandares estan preparados para agregar una ampliacion.
- no siempre se pueden hacer las modificaciones de manera satisfactoria, ya que, las ampliaciones
estan preparadas para determinada tarea y momento dentro de la ejecucion del programa.
Tipos de ampliaciones:
- user exits.
- customer exits
- keyword exits
- field exits
- estructuras append
- badis
- enhancements
- menu exits
2 - Los User Exits.
Es una subrutina dentro del estandar que esta vacia para que user escriba su propio codigo, y pueda desarrollar.
Tareas especificas no provistas por SAP.
Solo existen para el modulo SD.
Implementadas en forma de subrutinas.
Se nombran como USEREXIT_xxxxxx.
form USEREXIT_xxxxxx.
endFor.
El problema que presenta está en encontrar cual es el user exit correcto y verificar que mismo sirva para nuestro proposito.
El codigo abap que se desarrollara dentro del user exits puedes estar en un include (nombre debe comenzar con Z) o suelto.
Si bien todavia se utilizan los user exits, no se esta usando para las nuevas ampliaciones de SAP, en su lugar podemos encontrar
el resto de tipos de ampliaciones.
audio 1: los user exits son huecos que generar sap en los programas estandar, estan ubicados en determnados lugares.
no es posible generar nuevos user exits. Si no encontramos un user exits que se ajuste a la necesidad, se debe
buscar otro tipo de ampliaciones.
3 - Los Customer Exist.
Es un punto dentro del programa en donde se puede llamar a un programa propio.
Se ejecutan desde un programa estandar invocando a un modulo de funciones.
Los customer exits son llamados dentro de los programas estandares a traves de un numero, en la terminacion del nombre del modulo
de funciones que utilizan en los customer exits.
En la tabla de BD MODSAP se encuentran todos los modulos de funciones que utilizan los customer exits. Almacena todas las Ampliaciones
De cada amplicion se guarda:
- el nombre de la ampliacion.
- el tipo de componente, E (Exist de funcion), S (imagenes), T(tablas), C (codigo GUI).
- nombre de objeto
Los modulos de funciones tienen una nomenclatura estandar: EXIT_nombrePrograma_numeroFuncion.
La llamada de un exits EN UN MODULO DE FUNCIONES es: CALL CUSTOMER-FUNCTION 'nro de 3 digitos'.
Ventaja de los Customer Exit:
- buena herramiento para agregar funcionalidad, ya se una validadcion o la ejecucion de rutinas de control sin
modificar elcodigo original.
- Se activa y se transporta solo include.
Desventajas:
- no siempres se ajusta a la necesidades, los objetos que importa o exporta con fijos y puede no tener todos
los objetos que se requieren.
- no hay una busqueda de Customer Exits por programa con una aclaracion amplia de su utilizacion,
la busqueda se hace por el string CAll customer-function.
Para trabajar con Customer exits se trabaja con dos transacciones:
- SMOD: para administrar las ampliaciones.
- CMOD: para la gestion de proyectos de ampliaciones.
4 - Pasos para implementar un customer Exit.
- ir a SMOD, completamos el nombre de la ampliacion que contiene el modulo de funciones a utilizar por el customer exit.
- Si no conocemos el nombre en la se16 tabla modsap, en campo menber completamos con el modulo de funciones a buscar.
- si tampoco conocemos el modulo de funciones: buscar en el problema standar las llamadas a las funciones que estaran
indicadas por call customer-function xxx.
- Visualizar, ir al boton componentes, se visulizaran todos los modulos de funciones que contiene esa ampliacion.
- se selecciona el modulo de funcion que se necesita y se va a otra pantalla y se vera los objetos que importa y exporta.
Asi tambien las tablas que importa y que se puede modificar, que se utilizan el codigo fuente.
En la solapa cod.fte se encuentra un include z que se utiliza para agregar codigo del usuario.
Si no existe el include, al hacer doble click pedira que se asigen a una OT, para generarlo.
- Una vez creado el include, se puede generar codigo abap utilizando los objetos que figuren en la solapa import, modifc.,
y tabla.
Audio 2: los exit seran destinados para realizar validacion de los campos de entrada, en caso de cumplirse una condicion
determinada se emitira un mensaje error que impedira el normal funcionamiento de la transaccion, caso contrario
seguira con el normal funcionamiento.
- Terminada la codificacion, la amplicion se debe activar e incluirse en un proyecto (CMOD), alli se debe generar el proyecto Z,
en el cual se incluyen las ampliaciones.
Para agrupar clasificar y cotrolar los customer exit crearemos un proyecto de ampliaciones.
En un proyecto se asocian n ampliaciones.
Con CMOD creamos el proyecto, cuyo nombre debe comenzar con Z.
En el boton asignacion ampliacion incluimos la/as ampliaciones.
en boton componentes visualizamos los componentes de cada ampliacion.
En la pantalla componentes vamos activar la ampliacion.
Cada uno de los componentes son los Exit de la ampliacion, es alli donde se debe incorporar el codigo de validacion objeto
proceso a controla la ampliacion.
se puede anular la ampliacion con el boton desactivar.
Importante: si no se activa el customer exit no tiene efecto alguno.
5 - como probar un customer exit
Crear un proyecto de ampliacion, asignar la apliacion, activarla, y colocar un breack point en el modulo de funciones
para determinar los datos con lo que disponemos en ese momento y el punto exacto del proceso en donde se encuentra.
 
 
 
Sobre el autor
Publicación académica de Pablo Adrian Oggero, en su ámbito de estudios para la Carrera Consultor ABAP.
Pablo Adrian Oggero
Profesión: Scrum - Analista Funcional - Argentina - Legajo: MC99M
✒️Autor de: 179 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Avanzado
🎓Egresado de los módulos:
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor en SAP MM Nivel Avanzado
- Carrera Consultor en SAP MM Nivel Inicial