✒️ABAP Los Field Exits
ABAP Los Field Exits
1.- Que son los Field Exits.
FIELD EXITS(Ampliaciones de Campo): Son validaciones de los elementos 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.
Field Exits: Se utiliza para relacionar un campo de una dynpro(pantalla) de un determinado programa con un código de programa o función. El nexo de union entre la función y el campo es a través del elemento de datos de dicho campo.
- Por ser módulos de funciones, se ejecutan en instancias de memoria propias y al momento de su ejecución, sólo se dispone del valor del campo, que se importa en el parámetro INPUT, y modificado en el parámetro OUTPUT.
- Se deberá de hacer uso de funciones que permitan hacer uso de otros campos de la pantalla para poder capturar dichos valores.
EJEMPLO PARA USO DE UN FIELD EXIT: Si queremos insert un valor en un campo de un pantalla, ponemos una validación en ese cmpo a nivel Field Exit para que permita insertar solamente ciertos valores determinados.
SE37 (Biblioteca de Funciones): Escribimos FIELD_EXIT_* y 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 transaciones.
- Se puede aplicar globalmente (para todos los programas) o para determinados programas y dynpros que se le asignen.
Desventajas:
- Toma de la dynpro(Import) un solor 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, por lo que se tiene que especificar en el código que acción tomará de acuerdo al programa en el cual se esta 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.
- En un Field Exit, no podemos utilizar ninguna de las siguientes instrucciones: Breakpoint, Call Screen, Call Dialup, Call Transacction, Submit, Commit Work, Rollback Work y Messagesi, correspondiente a los mensajes de información, para poder activar los Field Exits, debemos de tener activado el parámetro ABAP FIELD EXIT = YES, seteado en el servidor, el cual se configura atráves de la transacción estándar RZ10.
2.- Pasos para realizar un Field Exit.
- Primero: Accesamos a la transaccion CMOD (Gestión de proyectos de ampliaciones SAP)
- Segundo: Tecleamos el comando en la barra principal PRFB (código de acceso desde la transaccion CMOD)
- Tercero: Veremos una pantalla con todos los Filed Exits del sistema, aqui podemos ver si estan activados o tienen algun programa o dynpro asignado.
- Cuarto: Para crear el Field Exit seleccionamos en el MENU/EXIT CAMPO/CREAR.
- Quinto: Seleccionamos el elemento de dato.
- Sexto: El sistema pedira asignar a un grupo de funciones para el Field Exit. Introducimos un texto breve para el módulo de funciones. Este módulo de función tiene la particularidad de tener un parámetro de Import o Entrada y uno de Export o salida. El parámetro de entrada es INPUT y contendrá el valor del campo al cual se le ha asignado el Field Exit. El parámetro de salida OUTPUT es el valor que tomará el campo al salir del Field Exit.
- Septimo: En la pestaña Cód fte. vamos a ingresar el código correspondiente a la validación que deseamos agregar.
- Octavo: Si no queremos modificar el campo donde colocamos el Field Exit, entonces desde el principio del código escibimos "OUTPUT=INPUT" para devolver el mismo valor que se ingresó.
- Noveno: Si se quieren obtener valores de otros campos de la dynpro se pueden utilizar otros Field Exits en los cuales se utilizará el comando SET PARAMETER para poder grabar en memoria el valor del campo y utilizarlo en el Field Exit anterior tomándolo de memoria con GET PARAMETER. TAMBIÉN PODEMOS UTILIZAR LA FUNCIÓN GET_DYNP_PARAMETER para obtener valores de otros campos de la dynpro.
- Décimo: Terminada la codificación se debe asignar un programa y dynpor al Field Exit (si no se quiere hacer Global, es decir para todos los programas).
- Onceavo: Asignamos a un programa y dynpro en la pantalla de administración de Field Exit (CMOD-PRFB), marcamos el Field Exit que queremos asignar y presionamos botón Asignar prog./dynpro.
- Por último: Activamos el field Exit desde el MENU/EXIT CAMPO/ACTIVAR.
IMPORTANTE: 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.
Se pueden asignar varios programas y dynpros al mismo Field Exit.
A nível ADMINISTRACION del sistema SAP existe el parámetro de instancia ABAP Field Exit el cual controla la activación o desactivación de los Field Exit en el sistema. Al estar activo este parámetro el sistema consultará 2 tablas estandár que son TDDIR y TDDIRS para saber si debe generar un exit de campo para cada campo, el sistema no se alenta por la consulta de estas tablas, ya que la generación de las dynpro es extraordinariamente rápida, si deseamos conocer el contenido del 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 DYNP_VALUES_READ 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 field exit aplicará para todos ellos.
 
 
 
Agradecimiento:
Ha agradecido este aporte: Luis Martínez Mejía
Sobre el autor
Publicación académica de Gustavo Alberto Ramirez Franco, en su ámbito de estudios para la Carrera Consultor ABAP.
Gustavo Alberto Ramirez Franco
Profesión: Ingeniero en Sistemas Computacionales - Mexico - Legajo: TA38Q
✒️Autor de: 38 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Gustavo Ramirez