
FIELD EXIT:
Tambien llamados ampliaciones de campo, son validaciones de los elementos de datos asociados a campos de pantalla o dynpros de SAP.
Estos al ser mdoulos de funciones, importan en el parámetro INPUT el valor del campo, y puede ser modificado a travez del parámetro OUTPUT.
Luego de ingresar un valor en un campo, éste puede ser chequeado a través de un “field exit”. El sistema permite capturar el valor del campo ingresado para ser validado y eventualmente cambiado por una función ABAP.
Ventajas:
· Facilita la validación de campos en un programa estándar sin modificar el código original.
· Puedes utilizar el mismo código para varias transacciones.
· Se puede aplicar globalmente o para determinados programas y dynpros que se le asignen.
Desventajas:
· Toma de la dynpro un solo valor, que es el campo al cual hace referencia, por lo que no puede utilizar tablas internas del programa estándar en el código del Field Exit.
· El mismo código del Field Exit tiene que servir para todos los programas que se quieran utilizar.
· No es posible hacer un debug del código del Field Exit de forma directa. Para esto se utilizan mensajes de error para ir viendo que valores van tomando los diferentes objetos (variables, tablas, etc)
En la función:
· Ejemplo:
If input = ‘CORRIENTES 123’.
Message e000(z_clase_mem) with ‘Direccion no permitida’
Endif.
· Si en la función no se quiere cambiar el valor de entrada se debe escribir:
OUTPUT = INPUT.
· Dentro de la función solo se pueden trabajar con estos 2 parametros, pero si se quiere trabajar con valores de otros campos, se utilizan otros Field Exit en los cuales se utilizara el comando SET PARAMETER para grabar el valor en memoria al valor del campo y utilizándolo y obteniéndolo de memoria con GET PARAMETER de otro Field Exit.
· Otra opcion es utilizar la función GET_DYNP_VALUE para obtener valores de otros campos de la dynpro.
Una vez terminada la codificación se dede asignar a un programa y dynpro al Field Exit(si no se quiere hacer global, es decir para todos los programas).
Para realizar un Fiel Exit tenemos que ejecutar la TX CMOD, y allí ejecutamos el comando PRFB dentro de la CMOD, sin anteponer /n.