✒️ABAP Los Field Exits
ABAP Los Field Exits
FIELD EXITS
QUE SON LOS FIELD EXITS. También llamados 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.
Los mismos 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 que puede ser modificado a través del parámetro OUTPUT. Para el uso de otros campos de la pantalla, se debe proceder al uso de funciones que permiten capturar dichos valores.
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 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 específicas 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 el 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
En un Field Exit, no se pueden utilizar las instrucciones: BreakPoint, Call Screen, Call Transaction, Submit, RollBack Work, Commit Work, Call Dialog y Message I (correspondiente a los mensajes de información). NOTA IMPORTANTE. Debemos tener en cuenta que para poder activar los Field Exits es necesario tener el parámetro ABAP_FieldExit = YES, configurado en el servidor a través de la transacción estándar RZ10.
PASOS PARA REALIZAR UN FIELD EXIT
- En la transacción CMOD (Gestión de proyectos de ampliaciones SAP)
- Ejecutamos el comando PRFB dentro de la CMOD, sin anteponer /N
- En la siguiente ventana de todos los Field Exits, podemos ver también si están activados a nivel Global (para todas las transacciones) o tienen algún programa y dynpro asignados
- Para crear un Field Exit, seleccionamos el menú Exit campo y la opción Crear
- 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 cuál se quiere relacionar
- Presionamos F1 y luego el boton de INFORMACION TECNICA
- Ingresamos el elemento de datos y presionamos enter.
- El sistema nos propone la creación del módulo de funciones en la SE37, por lo que presionaremos el botón Crear.
- El sistema nos solicita la asignación de un grupo de funciones, es recomendable crear uno exclusivamente para el FieldExit.También 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 ha asignado el Field Exit
- El parámetro de salida OUTPUT es el valor que tomará el campo al salir del 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 esta colocado el Field Exit colocamos OUTPUT = INPUT para devolver el mismo valor que se ingresó.
- Si queremos obtener valores de otros campos en los cuales se utilizará el comando SET PARAMETER para poder grabar en memoria al valor del campo y utilizarlo 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.
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
Vemos la pantalla donde signamos el nombre del programa y el numero de dynpro
Activamos el Field Exit desde el menú Exit Campo / Activar
Probamos 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 datos Z.
Generaremos una nueva entrada en la tabla, en el campo Dirección introducimos el valor 'CORRIENTES 123' y presionamos ENTER
A nivel de administración del sistema SAP existe el parámetro de instancia ABAP Field Exit, el cual controla la activación o desactivación de los Field Exits en el sistema. Pensando en el rendimiento en performance del sistema, si este parámetro está activo, el sistema consulta dos tablas estándar: la TDDIR y la TDDIRS para saber si se debe generar un Field Exit o Exit de campo para cada campo (el usuario no notará un enlentecimiento del sistema, ya que la generación de las dynpro es rápida). Si deseamos conocer el contenido de algún otro campo de la pantalla, cuando trabajamos con Field Exits, 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. Si varios campos de la pantalla tienen el mismo elemento de datos el Field Exit aplicará para todos ellos.
 
 
 
Sobre el autor
Publicación académica de Ixhel Magai Lopez Valencia, en su ámbito de estudios para la Carrera Consultor ABAP.
Ixhel Magai Lopez Valencia
Mexico - Legajo: PM62E
✒️Autor de: 134 Publicaciones Académicas
🎓Egresado de los módulos:
- Máster ABAP for HANA
- Máster ABAP Orientado a Objetos
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: PartTime
Presentación:
Soy ingeniera en telematica, estoy interesada en aprender programacion en sap, solo tengo conocimientos basicos en java
Certificación Académica de Ixhel Lopez