
AMPLIACIONES, USER EXIT Y CUSTOMER EXIT – LECCION 3-1
¿QUE ES UNA APLICACIÓN?
Son diferentes herramientas que presenta SAP, para realizar, mejorar, modificar o agregar a un programa estándar del sistema
Las aplicaciones se generan y codifican en módulos estándar, con lo cual no se necesita modificarlo, manteniendo las funciones originales y el buen funcionamiento.
Las principales ventajas que presentan las aplicaciones son:
- Permite modificar ciertos programas para adaptarlos a necesidades particulares de la empresa, agregando nuevas características a las existentes
- Permite realizar mejoras a un programa sin modificar el código original del mismo, manteniendo el buen funcionamiento y las características que tenia
- Los cambios toman efectos con solo transportar los nuevos objetos
Las principales desventajas que presentan las aplicaciones son:
- No siempre se pueden hacer todas las modificaciones de manera satisfactoria, ya que la mayoría de las aplicaciones están preparadas para una determinada tarea y momento de la ejecución de un programa
- No todos los programas estándares están preparados para agregar todos los tipos de aplicaciones
En SAP existen varios tipos de aplicaciones que son utilizadas de acuerdo al tipo de mejoras o requerimiento que se quiera desarrollar
Las más importantes son:
- USER EXITS
- CUSTOMER EXITS O EXITS DE CLIENTE
- KEYWORD EXITS
- FIELD EXITS O EXITS DE CAMPO
- ESTRUCTURAS APPEND
- BADIS
- ENHANCEMENT
- MENU EXITS
USER EXIT, es una subrutina definida dentro de un programa estándar ABAP, que esta hueca, es decir sin código, está allí para que el usuario coloque su propio código fuente que le permita realizar tareas específicas que no estén previstas por SAP
Son propias del módulo de SD de venta y distribución
Están implementados en forma de subrutina
Todos los USER EXIT están nombrados por SAP como USEREXIT_XXXXXX
FORM USEREXIT_XXXXXX.
…..
…..
ENDFORM.
El principal problema que presenta, está en encontrar el USER EXIT correcto. Una vez que lo encontramos debemos verificar que el mismo sirva para nuestro propósito
El código ABAP que se insertara dentro del USER EXIT puede colocarse dentro de un INCLUDE que comenzara con Z o sino suelto
NOTA, para ingresar código ABAP o modificar el código existente dentro de un USER EXIT, no se necesita una clave de acceso de SAP
TRANSACCION VA02, se utiliza la transacción para modificar los pedidos de venta
NOTA, ciertas aplicaciones del módulo SD todavía utilizan este tipo de aplicaciones, pero esta práctica no se está utilizando para nuevas extensiones al código SAP
CUSTOMER EXIT, también llamado exit de cliente es un punto dentro de un programa en donde se puede llamar a un programa propio
Los customer exit son llamados dentro de los programas estándares a través de un número, este número es la terminación del nombre del módulo de función que está asociado al programa
MODSAP, tabla estándar que almacena las aplicaciones existentes en SAP
La tabla posee los siguientes capos:
NAME SMODNAME CHAR 8 0 “nombre de la aplicación SAP”
TYP MODTYP CHAR 1 0 “tipo de componente”
MEMBER MODMEMBER CHAR 100 0 “aplicación”
En el campo TYPE podremos seleccionar algunos de estos valores incluidos en el ámbito de valores del campo.
- E EXIT FUNCIONES
- S IMÁGENES
- T TABLAS
- C CODIGO GUI
NOTA, son los programas o módulos de función que se modifican
Los módulos de función tienen una nomenclatura estándar
EXIT_<nombre del programa>_<número de función>.
Ejemplo: EXIT_SAPMV45A_003.
La llamada a un exit de un módulo de función es implementada
CALL CUSTOMER-FUNTION ‘3digitos’
Ventajas del CUSTOMER EXIT son:
- El CUSTOMER EXIT es una buena herramienta para agregar funcionalidad nueva a un programa estandar, como puede ser su 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 únicamente, sin tocar el programa original
Desventajas del CUSTOMER EXIT
- No siempre se ejecuta el CUSTOMER EXIT a las necesidades del programador ya que los objetos que importan o exportan son fijos y pueden no tener los objetos que se requieran
- No existe una búsqueda de CUSTOMER EXIT por programa con una aclaración amplia de su utilización, para búscalos, hay que realizar una búsqueda de string CALL CUSTOMER-FUNTION dentro del programa de control estándar y su funcionamiento se prueba sin saber exactamente si es el correcto para lo que se quiere hacer
Para trabajar con CUSTOMS EXIT, se van a utilizar principalmente dos transacciones
- SMOD, para administrar las aplicaciones
- CMOD, para la gestión de proyecto de aplicaciones
PASOS PARA REALIZAR UN CUSTOMER EXIT
- Transacción MSOD (completar el nombre de la aplicación)
- Transacción SE16 con la tabla MODSAP en el campo MEMBER (si no se conoce el nombre) y el campo NAME nos dirá el nombre de la aplicación que la contiene
- Si tampoco conoces el módulo de la función específica, usar la función CALL CUSTOMER-FUNTION ‘001’
- Nombre aplicación EJEM: V45A0003,
- Transacción SMOD, colocar nombre de aplicación
- Visualizar.
- Clic, pestaña componente
- Doble clic, en el módulo de función
- Pestaña COD. FTE.
o Include Z (agregar código de usuario)
NOTA, en las últimas versiones de SAP, el include comienza con ZX y si no se utilizó anteriormente debemos crearlo ya que no existirá.
NOTA, para agrupar, clasificar y controlar los CUSTOMER EXIT, crearemos un proyecto de aplicación
NOTA, el nombre de los proyectos de aplicación debe estar dentro del rango permitido para los clientes, es decir debe comenzar con Z
GESTION DE PROYECTO DE APLICACIÓN
- Transacción CMOD
- Crear
- Pestaña asignar aplicación
- Pestaña componentes
o Activar
o También se puede anular
NOTA, es importante que si el EXIT, no está activo, la llamada a esta función no tendrá efecto alguno
¿COMO PROBAR UN CUSTOMER EXIT?
Un punto complicado en la utilización de Customer exits es ubicarlos y conocer el momento del proceso en el que ocurren los mismos, todo esto para determinar qué datos y que, particularmente, se puede realizar en ese momento.
Para realizar la investigación lo más efectivo será crear un proyecto de aplicación, asignar la aplicación, activar y luego colocar el breakpoint en el módulo de funciones, para determinar los datos con lo que disponemos en ese momento y el punto exacto del proceso en donde se encuentra