✒️ABAP Las Ampliaciones: los User Exits y los Customer Exits
ABAP Las Ampliaciones: los User Exits y los Customer Exits
Unidad 3: Ampliaciones y notas en SAP
Lección 1: User Exits y Customer Exits
1| Que es una Ampliación?
- Son herramientas que presenta Sap para realizar mejoras, modificaciones o agregados a un programa estándar. Algunos programas ya están preparados para agregarles funcionalidad nueva a la existente. Un User Exits, también llamado Customer Exit o Ampliación es un punto dentro de un programa en donde se puede llamar a un programa propio.
Se pueden validar o agregar campos a una pantalla, con código para tratar los nuevos datos, agregar opción en un menú o campos a tablas estándares. Las ampliaciones se generan y codifican en módulos aparte fuera del código estándar.
Ventajas:
- Permiten modificar algunos programas para adaptarlos a necesidades de la empresa, agregando característica nuevas.
- Las mejoras se realizan sin necesidad de modificar el código original, manteniendo su funcionalidad.
- Los nuevos objetos toman efecto con solo transportar los cambios.
Desventajas:
- No siempre se pueden hacer todas las modificaciones de manera satisfactoria, ya que la mayoría están preparadas para una determinada tarea y momento dentro de la ejecución de un programa.
- No todos los programas están preparados para agregar todos los tipos de ampliaciones.
Existen varios tipo de ampliaciones:
User Exits
Customer exits o exits del Cliente
KeyWord Exits
Filed Exits o Exits de Campo
Estructuras Append
Badis
Enhancements
Menú Exits
2| User Exits?
- Son espacios que SAP deja en el sistema estándar para que los usuarios agreguen código para sus validaciones y mejoras, a fin de satisfacer los requerimientos. Siendo las primeras ampliaciones que introdujo Sap y son propias del modulo SD; están implementados en forma de subrutinas. No es posible generar mas huecos sino trabajar en los ya existentes.
Se ejecutan desde un programa estándar invocando a un módulo de función.
El código Abap que se insertara dentro de un User Exits puede colocarse dentro de un INCLUDE que comenzara con Z o sino suelto.
USEREXIT_XXXXXXXX
FORM USEREXIT_XXXXXXXX.
...
...
ENDFORM
El programa estándar MV45AFZZ se encuentran los User Exits que es utilizado por ejemplo por la tx VA02 cada vez que lee un documento de pedidos de venta.
3| Customer Exits
- También llamado Exit del 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 de estándar tienen en su código, llamadas a módulos de funciones que pueden ser modificados por el programador. Estos son llamados dentro de los programas estándar a través de un numero; siendo el número la terminación del nombre en el módulo de función que esta asociado al programa.
En la tabla MODSAP se encuentran todos los módulos de función que utilizan los Exits de Cliente. De cada ampliación se guarda: el nombre de la ampliación, el tipo de componente, que puede ser: “E” para Exits de funciones, “S” para imágenes, “T” para tablas y “C” para código GUI y finalmente el objeto (programa, módulo de función,etc) que se modifica.
Los módulos de función de EC tienen una nomenclatura estándar:
EXIT_<nombre del programa>_<número de función> =======> EXIT_SAPMV45A_003
La llamada a un exit de un módulo de función es implementada de la siguiente forma en un programa estándar de Sap.
CALL CUSTOMER-FUNCTION<3 dígitos>
Cada uno de los módulos es llamado por el proceso estándar en ciertos momentos y ellos tienen por defecto algunos parámetros que son los disponibles dentro de la ampliación.
Ventajas del Customer Exit:
- Es una buena herramienta para agregar funcionalidad nueva a un programa estándar sin modificar el código original.
- Para transportar y activar los Customer Exit es suficiente con el nuevo INCLUDE sin tocar el programa original,.
Desventajas del Customer Exit:
- No siempre se ajusta a las necesidades del programador ya que los objetos que importa o exporta son fijos y puede no tener todos los objetos que se requieran.
- No existe una búsqueda por programa con un detalle amplio de su utilización, para ello hay que realizar una búsqueda del string CALL CUSTOMER-FUNCTION dentro del programa de control estándar y probar si alguno se adecua a lo que queremos hacer.
Se utilizan dos transacciones:
SMOD: Para administrar las ampliaciones
CMOD: Para la gestión de proyectos de ampliaciones
4| Pasos para realizar un Customer Exit
Nos dirigimos a la tx SMOD, aquí completamos en nombre de la ampliación que contiene el módulo de función a utilizar. Si no se conoce el nombre buscamos en la tabla MODSAP, en el campo MEMBER completamos con el nombre del módulo de función (ej. EXIT_SAPMV45A_003) y el campo NAME nos dirá la ampliación que la contiene.
Si tampoco se conoce el MF, 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', el numero ira cambiando si presenta mas de una llamada osea hay mas exits de cliente.
Una vez conocido el nombre de la ampliación le damos a visualizar en la tx SMOD, clickeando el botón componentes (también se pudo haber seleccionado en la pantalla anterior) nos mostrara todos los módulos de función para esta ampliación. En la ampliación V45A0003, existen dos MF; los que serán ejecutados en algún momento en la ejecución del programa al cual pertenecen SAPMV45A.
Para ver darle doble click al MF y se verán los objetos que importa y exporta esta función, como así también las tablas que importa y la lógica que se utiliza para agregar en código del usuario en un INCLUDE Z. En las ultimas versiones se aprecia un INCLUDE que empieza con ZX, si no se utilizo debemos crearlo al hacer doble click se pedirá al usuario que le asigne una orden de transporte para generarlo.
Un vez terminada la ampliación debe activarse e incluirse en un proyecto, los cuales se crean en la tx CMOD. Allí se debe generar un proyecto Z para agrupar, clasificar y clasificar los Customer Exit, en el cual se incluirán las ampliaciones que se desee; su activación o desactivación afecta a todas las ampliaciones asociadas. Para acceder a los proyectos de ampliación accedemos a la tx CMOD y le damos a crear.
Presionamos el botón Asignación ampliación, para asignar las ampliaciones al proyecto. Y luego introducimos las ampliaciones y presionamos el botón de Componentes, para visualizar los componentes de cada ampliación.
En la siguiente pantalla vamos a a activar la ampliación, cada unos de los componentes son los Exit de la ampliación y es allí donde se incorpora el código de validación.
Una vez activado el proyecto de ampliación pasa a color verde. Se puede anular la activación presionando el botón de desactivar
5| ¿Como probar un Customer Exit?
- Un punto complicado en la utilización de Customer Exit es ubicarlos y conocer el momento del proceso en el que ocurren los mismos. Para realizar esta investigación, lo mas efectivo sera crear un proyecto de ampliación, asignarla, activarla y colocar un BREAK POINT en el MF, a fin de determinar los datos que disponemos en ese momento y el punto en donde se encuentra.
 
 
 
Sobre el autor
Publicación académica de Hernan Cabezas, en su ámbito de estudios para la Carrera Consultor ABAP.
Hernan Cabezas
Peru - Legajo: ZM88T
✒️Autor de: 117 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Hernan Cabezas