sábado, 3 de mayo de 2014

User-Exit

En este post vamos a hablar sobre las user-exit de SAP:


1. Introducción:

Las User Exits (Function module exits) son espacios donde incoporar codigo propio a transacciones estandar. El exit es implementado como una llamada a un modulo de Función. El codigo para el modulo de funcion es escrito por el desarrollador. Uno no escribe el codigo directamente sobre el Modulo de Funcion, sino en el include que está implementado en el mismo.

La nomenclatura estandar de los modulos de funcion para los Exits es :

EXIT_<3>

La llamada al modulo de Funcion del exit es implementada en el codigo del programa de la siguiente forma:

CALL CUSTOMER.-FUNCTION <3>

Ejemplo:

El programa de la transaccion VA01 (Creacion de Pedido de Ventas) es SAPMV45A.

Si uno busca el string "CALL CUSTOMER-FUNCTION" en el programa SAPMV45A encontrará (entre otros exits):

CALL CUSTOMER-FUNCTION '003'
  exporting
    xvbak = vbak
    xvbuk = vbuk
    xkomk = tkomk
  importing
    lvf_subrc = lvf_subrc
  tables
    xvbfa = xvbfa
    xvbap = xvbap
    xvbup = xvbup.

El exit llama a la Funcion EXIT_SAPMV45A_003

2. Como encontrar User Exits?

Con la transacción SE38 visualizamos el programa en donde vamos a buscar el exit.
Realizamos la busqueda del string "CALL CUSTOMER-EXIT"
Si usted no sabe el nombre del Exit vaya a la transacción CMOD.
Elija en el menu la opcion Utilidades->Ampliaciones SAP. Ingrese el nombre del Exit y presione Enter. Eso lo llevara a la pantalla que muestra el modulo de funcion para el exit.

3. Creando un Proyecto de Ampliacion SAP

Supongamos que queremos crear un proyecto para la ampliacion de la transaccion VA01.
 
- Debemos ir a la transaccion CMOD
- Crear un proyecto llamado ZVA01
- Elegir la ampliacion con el radio button y presionar el boton "Cambiar"

En la primer columna ingresamos V45A0002 Predefine sold-to party in sales document.

Note que una ampliación solo puede ser utilizada en 1 proyecto. Si la ampliacion esta siendo utilizada en otro proyecto un mensaje de error aparecera.

Presione "Guardar"

Presione "Componentes". Ahora podemos ver las ampliaciones que utiliza el USER EXITser exit EXIT_SAPMV45A_002. Haga Doble click sobre el EXIT.

Ahora el modulo de Funciones es mostrado. Haga Doble click sobre el include ZXVVAU04 en el function module

Inserte el siguiente codigo en el include: E_KUNNR = '2155'.

Active el include. Vuelva a CMOD y active el proyecto.

Vaya a la transacción VA01 y genere un pedido.

Note que el Sold-to-party ahora automaticamente es "2155".
 
Este post es una pequeña pincelada sobre las user-exit de SAP. Segiremos hablando de ellas. Como siempre cualquier aportación por vuestra parte sera bienvenida.

No hay comentarios:

Publicar un comentario