![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP Los Field Exits
ABAP Los Field Exits
![ABAP Los Field Exits ABAP Los Field Exits](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/138.jpg)
Field Exits
Tambien llamados ampliaciones de campo, son valdiaciones de los elementos de datos asociados a campos de pantallas o dynpros de SAP.
Los field exits son modulos de funciones que son llamados y ejecutados posteriormente de las validaciones del sistema estandar.
los mismos por ser modulos de funciones, se ejecuan en instancias de memoria propias y al momento de su ejecución, solo se dispone del valor del campo, que se importa en el parametro INPUT y que puede ser modificado a tráves del parametro OUTPUT. Para el uso de otros campos de la pantalla, se debe proceder al uso de funciones que permiten capturar dichos valores.
Un ejemplo en donde utilizariamos un Field exit es si se quiere insertar un valor en un campo determinado de una dynpro entonces pondriamos una validación en ese campo a nivel Field exit para que solo permita insertar determinados valores.
Si ingresamos a la transacción SE37(biblioteca de funciones), colocamos FIELD_EXIT_* y luego pulsamos F4, visualizaremos todos los field exit del sistema.
Las principales ventajas que presenta un Field Exit son:
- Facilita la validación de campos en un programa estandar sin modificar el codigo original.
- Puede utilizarse el mismo codigo para varias transacciones.
- Se puede aplicar globalmente( para todos los programas) o para determinados programas y dynpros que se le asignen.
Las principales desventajas que presenta un Field Exit son:
- Toma de la dynpro(import) un solo valor, que es el del campo al cual hace referencia, por lo que no se pueden utilizar tablas internas, especificas del programa estandar en el codigo del field exit.
- El mismo codigo del Field Exit tiene que servir para todos los programas que se quieran utilizar, por lo que se tiene que especificar en el codigo que accion tomara de acuerdo al programa en el cual se este ejecutando.
- No es posible hacer un Debug del codigo del Fiel Exit de forma directa, a tráves de un breakpoint. PAra esto se utilizan mensajes de error para ir viendo que valores van tomando los diferentes objetos(variables, tablas, etc) y por donde va pasando dentro del código del Field Exit.
2. Pasos para realizar un Field Exit.
El primer paso para realizar un Field Exit es dirigirnos a la transacción CMOD(Gestión de proyectos de ampliaciones SAP).
Alli ejecutamos el comando(transaccion) PRFB dentro de la CMOD, sin anteponer N.
En la pantalla siguiente se encuentran todos los Field Exits del sistema. Aqui podemos ver tambien si estan activados a nivel global o tienen algun programa y dynpro asignados.
Para crear un Field Exit, seleccionamos el menu Exit campo y la opción Crear.
En la ventana de dialogo introducimos el nombre del elemento de datos al cual se quiere realizar el Field Exit. Este elemento de datos debe ser el mismo que tiene el campo de la dynpro al cual se quiere relacionar.
Este dato lo obtenemos presionando la tecla F1 sobre el campo de la dynpro y luego presionando el boton de información técnica. Ingresamos el elemento de datos y presionamos enter.
a continuación el sistema nos propone la creación del modulo de funciones en la SE37, por lo que presionaremos el boton crear. Luego el sistema nos solicita la asignación de un grupo de funciones, es recomendable crear uno exclusivamente para el Field Exit. Tambien introducimos un texto breve para el modulo de funciones.
Este modulo de funcion tiene la particularidad de tener un parametro de import o entrada y uno de Export o Salida. El parametro de entrada es INPUT y contendra el valor del campo al cual se ha asignado el Field Exit.
El parametro de salida OUTPU es el valor que tomara el campo al salir del Field Exit.
En la solapa Cod fte. vamos a ingresar el codigo correspondiente a la validación que deseamos agregar. por ejemplo en este caso emitimos un mensaje de error en caso de que el usuario introduzca en el campo de la pantalla el texto "Corrientes 123".
Si en la funcion no se quiere modificar el campo donde esta colocado el Field Exit entonces principio de todo se debe escribir : OUTPUT = INPUT para devolver el mismo valor que se ingreso.
Dentro del modulo de función solo se pueden trabajar con estos parametros, pero si se quiere obtener valores de otros campos de la dynpro se puede utilizar otros Field Exits en los cuales se utilizara el comando SET PARAMETER para poder grabar en memoria al valor del campo y utilizarlo en el Field Exit anterior tomandolo de memoria con GET PARAMETER.
otra opción es utilizar la función GET_DYNP_VALUE para obtener valores de otros campos de la dynpro.
Una vez terminada la codificación se debe asignar un programa y dynpro al field exit.
Importante: mientras no se haya realizado la asignación de la dynpro, el field exit afectara a todas las pantallas donde se encuentre un campo con el elemento de datos.
Para asignar el programa y dynpro se debe ir a la pantalla de administración de field exit(CMOD - PRFB), seleccionar el field exit y presionar el botón asignar prog/dynpro.
Seguidamente veremos la siguiente pantalla donde asignaremos el nombre del programa y el numero de dynpro correspondiente.
Ideas: se pueden asignar varios programas y dynpros al mismo field exit. por ultimo, activamos el field exit desde el menu Exit campo/activar.
Ahora vamos a probar nuestro Field Exit, para ello accedemos a la transacción SM30 ya que el elemento de datos al cual le creamos el field exit pertenece al campo "Dirección" de una tabla base de dato Z.
Generaremos una nueva entrada en la tabla, en el campo direccion introducimos el valor "Corrientes 123" y presionamos tecla enter.
 
 
 
Sobre el autor
Publicación académica de Natalia Alejandra Garcia Milla, en su ámbito de estudios para la Carrera Consultor ABAP.
Natalia Alejandra Garcia Milla
Profesión: Ingeniero en Informática - Chile - Legajo: ZE97A
✒️Autor de: 41 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime