✒️ABAP Los Field Exits
ABAP Los Field Exits
FIELD EXITS
Ampliaciones de campo, son validaciones de datos. Asociados a Campos de pantallas o dynpros de SAP
Son módulos de funciones que son llamados y ejecutados posteriormente de las validaciones del sistema estándar.
Se ejecutan en instancias de memoria propias y en el momento de ejecución. Solo se dispone del valor que se importa en el parámetro INPUT y que puede ser modificado a través del parámetro OUTPOT. Para el uso de otros campos de la pantalla, se debe proceder al uso de funciones que permiten capturar dichos valores.
NOTA: si entramos en la transacción SE37 (Biblioteca de funciones) colocamos FIELD_EXIT_* y pulsamos F4. Podemos ver todos los Field Exit.
VENTAJAS
Facilita la validación de campos en un programa estándar sin modificar el código original
Puede utilizarse el mismo código para varias transacciones
Se puede aplicar globalment (para todos los programas) o para determinados programas y dynpros que se le asignen.
DESVENTAJAS
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 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, por lo que se tiene que especificar en el código que acción tomará de acuerdo al programa en la cual se esté ejecutando.
No es posible hacer un debug del código del field exit de forma directa a través 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.
NOTA: no se puede usar BREAKPOINT, CALL SCREEN, CALL DIALOG; CALL TRANSACTION, SUBMIT, COMMIT WORK, ROLLBACK WORK y MESSAGE (I), hay que tener el parámetro ABAPFIELDEXIT en YES en el servidor configurado con la transacción RZ10.
COMO REALIZAR UN FIELD EXIT
Abrimos transacción CMOD
Ejecutamos el comando PRFB
En la siguiente pantalla se encuentran todos los FIELD EXITS del sistema.
NOTA: Podemos ver si están activado a nivel Global (para todas las transacciones) o que programas y dynpros tienen asignados.
Del menú EXIT CAMPO seleccionamos CREAR
No solicita el nombre del elemento de datos que queremos realizar el FIELD EXIT. Este elemento de datos debe ser el mismo que tiene el campo de la dynpro al cual se quiere relacionar.
NOTA: Este dato lo obtenemos presionando la tecla F1 sobre el campo y luego el botón información técnica.
El sistema nos propone la creación del módulos de funciones en la SE37, pulsamos CREAR
El sistema nos solicita la asignación de un grupo de funciones.
NOTA: Es recomendable crear uno exclusivamente para el FIELD EXIT.
Introducimos un texto breve para el módulo de funciones.
Pulsamos GRABAR
Este módulo de función tiene la particularidad de tener un parámetro de IMPORT (PAESTAÑA IMPORT) y es de entrada y uno de OUTPUT (PESTAÑA EXPORT) y es de salida.
El parámetro INPUT contiene el valor del campo actual.
El parámetro de salida OUTPUT es el valor que tomara el campo al salir del FIELD EXIT
En la pestaña COD FTE
OUTPUT = INPUT se usa cuando no se quiere modificar el campo donde está colocado el FDIELD EXIT.
OBTENER VALORES DE OTROS CAMPOS DE LA DYNPRO
SET y GET PARAMETER
Creando fields exits y utilizando el comando SET PARAMETER para grabarlo en memoria y luego GET PARAMETER desde la FIELD EXIT para recuperarlo.
GET_DYNP_VALUE
Obtiene valores de otros campos de la dynpro
Una vez terminada la codificación se debe asignar un programa y dynpro al field exit (si no se quiere hacer GLOBAL)
NOTA: Mientras no se haya realizado la asignación de la dynpro, el FIELD EXIT afectará a todas las pantallas donde se encuentre un campo con el elemento de datos.
ASIGNAR PRGRAMA Y DYNPOR A UN FIELD EXIT
Abrimos transacción CMOD
Ejecutamos PRFB
Seleccionamos el FIELD EXIT
Pulsamos el botón ASINGAR PROG/DYNPRO
Se nos abre una pantalla
Asignamos el nombre del programa y la dynpro
Pulsamos GRABAR
NOTA: Se pueden asignar varios programas y dynpros el mismo FIELD EXIT
Activamos el FIELD EXIT desde el menú EXIT CAMPO > ACTIVAR
A TENER EN CUENTA
El sistema consulta dos tablas estándar TDDIR y TDDIRS para saber si debe generar field exits.
El usuario no notara penalización en el rendimiento del sistema
Si queremos conocer el contenido de otro campo de pantalla podemos guardar el contenido en variables globales al grupo de función o utiliza la función DYNP_VALUES_READ para leer valores de otros campos de la misma pantalla
Si varios campos de la pantalla tiene el mismo elemento de datos el FIELD EXIT aplicara para todos ellos.
 
 
 
Sobre el autor
Publicación académica de Josep Antoni Lopez Moyano, en su ámbito de estudios para la Carrera Consultor ABAP.
Josep Antoni Lopez Moyano
Profesión: It Manager - España - Legajo: QP26P
✒️Autor de: 375 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP HCM Nivel Inicial
- Carrera Consultor Basis NetWeaver Nivel Avanzado
- Carrera Consultor Basis NetWeaver Nivel Inicial
- Máster Funcional ABAP
- Máster ABAP Orientado a Objetos
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial