✒️ABAP Los Field Exits
ABAP Los Field Exits
1- Que son los Fields Exit?
También llamados ampliaciones de campo, son validaciones de los elementos de datos asociados a campos de pantallas o dynpros SAP.
Son módulos de funciones que son llamados y ejecutados posteriormente de las validaciones del sistema estándar, estos mismos pueden ser módulos de funciónes, se ejecutan en instancias de memorias propias y al momento de la ejecución. Solo se dispone del valor del campo se importa en el parametro INPUT y puede ser modificado a través del parámetro OUTPUT. Para el uso de otros campos de pantalla se debe proceder al uso de funciones que permiten capturar dichos valores.
UN ejemplo donde utilizaríamos un FIELD EXIT es si se quiere insertar un valor en un valor en un campo determinado de una dynpro entonces podríamos usar una validación en ese campo a nivel FIELD EXIT para que solo permita insertar determinados valores.
Usamos la transacción SE37 colocamos FIELD_TEXT_* y luego presionamos F4 visualizaremos todos los Field Exit del sistema.
Ventajas:
- facilita la validación de campos en un programa sin modificar el código original
- Puede utilizarse el mismo código para varias transacciones
- Se puede aplicar globalmente (para todos los programas o determinados) dynpros que se le asignen
Desventajas:
- Toma de una dynpro (import) un solo valor, que el campo 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 el código que acción tomara de acuerdo al programa en cual se este ejecutando.
- No es posible hacer un DEBUG del código FIELD EXIT de forma directa, es a través del un PREAKPOINT para esto utilizan mensajes de error para ir viendo que valores van tomando los diferentes objetos (variables , tablas, etc.) y por donde pasa dentro del código del Field Exit.
2- Pasos para realizar un Field Exit
Usaremos la transacción CMOD(Gestión de proyectos de ampliaciones SAP)
Ejecutamos el comando PRFB sin antepone /N, en la pantalla siguiente nos muestra todos los FIELD EXITS del sistema, aquí podemos ver también si están activados a nivel global (para todas las transacciones ) o tiene algún programa y dynpro asignado.
En el menú seleccionamos EXIT CAMPO y la opción CREAR, introducimos el nombre del elemento del cual se quiere realizar el FIELD EXIT este elemento debe ser el mismo que tiene el campo de la dynpro al cual se quiere relacionar. Este dato lo obtenemos presionando F1 sobre el campo de la dynpro y luego presionamos el botón de información técnica. Ingresamos el elemento de dato y presionamos enter. A continuación el sistemas nos propone la creación del módulo de funciones en el SE37 por los que presionamos crear.
Luego nos solicita 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 tiene la particularidad de tener un parámetro de IMPORT o entrada y uno de EXPORT o salida. El parámetro de entrada INPUT y contendrá el valor del campo la cual es asignado el FIELD EXIT. El parámetro de salida OUTPUT es el valor que tomara el campo al salir del FIELD EXIT.
EN la solapa Código de fuente vamos a ingresar el código correspondiente a la validación que deseamos agregar en este caso emitimos un mensaje de error en caso que el usuario introduzca en el campo de la pantalla el texto 'CORRIENTES 123'
FUNCTION fiel_exit_zzdirec2.
IF input EQ ?CORRIENTES 123?.
MESSAGE e000(z:clase_men) with ?Dirección no permitida'.
ENDIF
ENDFUNCTION
SI si la función no se quiere modificar el campo donde esta colocado el FIELD EXIT entonces al principio de todo se debe escribir OUTPUT = INPUT para devolver el mismo valor que ingreso.
Dentro del módulo solo se puede trabajar con esos parámetros, si que quiere obtener otro valores de otros campos de la dynpro se puede utilizar otros FFIELD EXITS para esto se utilizara el comando SET PARAMETER para poder grabar la memoria al valor del campo y utilizarlo en el FIELD EXIT tomándolo de la memoria con GET PARAMETER.
Otro opción es 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 un global, es decir para todos los programas). Mientras no haya asignación de la dynpro el FIELD EXIT afectara todas las pantallas donde se encuentre un campo con el elemento de datos.
Para asignar se debe ir a la la administración de pantallas (CMOD-PRFB) seleccionar Field EXIT y presionar el botón ASIGNAR PROG./DYNPRO. Después asignaremos un nombre y el número de dynpro.
" se puede asignar varios programas y dynpros al mismo FIELD EXIT"
Para activar desde el menú EXIT CAMPO / ACTIVAR.
Para probar nuestro FIELD EXIT accedemos SM30 elementos de datos al cual creamos el FIELD EXIT pertenece al campo Dirección de una tabla base de datos Z.
Generamos una nueva entrada en la tabla, en el campo de dirección introducimos el valor `CORRIENTES 123' y presionamos ENTER. y visualizaremos en pantalla el mensaje de error que previamente codificamos en nuestro FIELD EXIT.
En la administración 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. Para la 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 Juan Carlos Pavicich, en su ámbito de estudios para la Carrera Consultor ABAP.
Juan Carlos Pavicich
Profesión: Técnico Informático - Argentina - Legajo: VR91L
✒️Autor de: 116 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Presentación:
Tengo el agrado de dirigirme a ud/s con el objeto de mencionar mi experiencia y conocimientos técnicos necesarios para desarrollar actividades en el rubro de su empresa.
Certificación Académica de Juan Pavicich