✒️ABAP Los Field Exits
ABAP Los Field Exits
1 Que son los Field Exits:
Field Exits:
También llamados ampliaciones de campo, son validaciones de los elementos de datos asociados a campos de pantalla o dynpros de Sap.
Los Field Exist son módulos de función que son llamados y ejecutados posteriormente de las validaciones del sistema.
Los mismos por ser módulos de función, se ejecutan en instancias de memoria propias y al momento de su ejecución, solo se dispone del valor del campo, que se importa en el parámetro INPUT y que puede ser modificado a través del parámetro OUTPUT. Para uso de otros campos de la pantalla, se debe proceder al uso de funciones que permitirán capturar dichos valores.
Un ejemplo en donde utilizaremos un Field Exit es si quiere insertar un valor en campo determinado de una dynpro entonces podríamos una validación en ese campo a nivel Fiel Exit para que solo permita insertar determinados valores.
Sabías que: si ingresamos a la transacción SE37 (Bibioteca de funciones), colocamos Field_exit_* y luego presionamos f4, visualizaremos todos los field exit del sistema.
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 globalmente (para todos los programas) o para determinar programas y dynpros que se le asignen.
Desventajas
Ø Toma 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 quieren utilizar, para lo que se tiene que especificar en el código que acción tomara de acuerdo al programa en el cual se esté ejecutando.
Ø No es posible hacer un Debug del código 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 Fiel Exit.
Audio Tips: en un fiel Exit no podemos utilizar las instrucciones Breakpoint, CALL SCREEN, CALL DIALOGO, CALL TRANSACTION, SUBMIT, COMI WORK, ROLLBACK WORK, MESAGESS, Nota importante para activar los Field Exit debemos tener el parámetro Abap Field Exit = “yes” setiado en el servidor el cual se configura a través de la transacción estándar RZ10
2 Paso 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)
Allí ejecutamos el comando PRFB dentro de la CMOD, sin anteceder /N
En la pantalla siguiente se encuentra todos los Field Exit del sistema, aquí podemos también si están activados a nivel Global (para todas las tx) o tiene algún programa y dynpro asignados.
Para crear un Field Exit, seleccionamos el menú Exit campo y la opción Crear
En la siguiente ventana de dialogo introducimos el nombre del elemento de datos al cual se quiere realizar el Fiel 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 presionado la tecla F1 sobre el campo de la dynpro luego presionamos el botón de Información técnica
Ingresamos el elemento de datos y presionamos enter.
A continuación el sistema nos propone la creación del módulo de función en la Se37, para lo que presionamos el botón crear
Luego el sistema nos solicita la asignación de un grupo de funciones, es recomendable crear uno exclusivamente para el Field Exit. También introducimos un texto breve para el módulo de funciones.
Este módulo de función tiene la participación de tener un parámetro de Import o Entrada y uno de Export o salida. El parámetro de entradas es INPUT y contendrá el valor del campo al cual se ha asignado el Field Exit.
Un parámetro de salida OUTPUT es el valor que tomará el campo de salir Field Exit.
En la solapa Cód fte. Vamos a ingresar el código 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 función no se quiere modificar el campo donde está colocado el Field Exit entonces al principio de todo debe escribir: OUTPUT= INPUT para devolver el mismo valor que se ingresó.
Dentro del módulo de función solo se pueden trabajar con estos parámetros, pero si se quiere obtener valores de otros campos de la dynpro se pueden utilizar otros Field Exit en los cuales se utilizará el comando SET PARAMETER para poder grabar en memoria al valor del campo y utilizar en el Field Exit anterior tomándolo 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 (si no se quiere hacer global, es decir para todos los programas)
Importante: Mientras no se haya realizado la asignación de la dynpro, Field Exit afectará a todas las pantalla donde se encuentra 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 asignemos el nombre del programa y el número de dynpro correspondiente:
Ideas: se puede asignar varios programas y dynpros al mismo Field Exit.
Por último, activamos el Field Exit desde el menú Exit Campo / Activar.
Luego Veremos el Field Exit activado.
Ahora vamos a probar nuestro Field Exit, para ello accedemos a l 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 datos Z.
Generalmente una nueva entrada en la tabla, en el campo Dirección introducimos el valor ‘CORRIENTES 123’ y presionamos la tecla enter.
Y visualizaremos en pantalla el mensaje de error que previamente codificamos en nuestro Field Exit.
Audio tips: A nivel de administración del sistema SAP existe el parámetro de instancia Abap Field Exit, el cual contralo la activación o desactivación de los Field Exit en el sistema.
Si pensamos en la performance del sistema, si el parámetro que controla la activación de los Field Exit está activo el sistema consultara dos tablas estándar TDDIR y la TDDIRS, para saber si se puede generar un Exit de Campo para daca campo, el usuario no notara una ralentización del sistema ya que la generación de las dynpros son extraordinariamente rápidas , si deseamos conocer el contenido e algún otro campo de la pantalla cuando trabajamos con Field Exit podemos guardar el contenido de otros campos en variables globales al grupo de función o utilizar la función dim_values_ribs para leer valores de otros campos de la misma pantalla, debemos considerar que si varios campos de la pantalla tienen el mismo elemento de datos el Fiel Exit aplicara para todos ellos.
 
 
 
Sobre el autor
Publicación académica de Jhon Deibys Cano Pineda, en su ámbito de estudios para la Carrera Consultor ABAP.
Jhon Deibys Cano Pineda
Profesión: Ingeniero de Sistemas - Colombia - Legajo: WZ11E
✒️Autor de: 118 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Jhon Cano Pineda