
Los Field Exits
Definición y ventajas de los Field exits
- Los field exits (ampliaciones de campo) son validaciones personalizadas de elementos de datos en campos de pantallas o dynpros en SAP.
- Funcionan como módulos de funciones llamados después de las validaciones estándar del sistema.
- Se ejecutan en instancias de memoria propias y operan únicamente sobre el valor del campo importado (input) y modificado (output).
- Para acceder a otros campos de pantalla, se deben emplear funciones especiales para capturar dichos valores.
- Permiten validar o restringir valores de campos específicos sin modificar el código estándar.
- El mismo código puede ser reutilizado en varias transacciones y aplicarse de forma global o específica.
Limitaciones y consideraciones de uso
- Solo pueden acceder directamente al valor de un campo; no se pueden usar tablas internas específicas del programa estándar.
- El código debe estar preparado para ejecutarse en diferentes programas, adaptando su lógica según el contexto.
- No es posible hacer debug directo con breakpoints; se utilizan mensajes de error para rastrear el flujo.
Pasos para implementar un Field exit
- Ingresar a la transacción CMOD y ejecutar PRFB para acceder a la gestión de field exits.
- Seleccionar la opción de crear un Exit de Campo y especificar el elemento de datos relacionado.
- El elemento de datos debe coincidir con el campo de la dynpro donde se usará el field exit.
- El sistema sugiere crear un módulo de funciones en SE37, asignando un grupo de funciones exclusivo y un texto breve.
- El módulo tendrá parámetros input (entrada) y output (salida); output debe igualarse a input si no se modifica el valor.
- Ejemplo de validación: emitir mensaje de error si el usuario introduce un valor específico.
- Para obtener valores de otros campos, se pueden usar comandos set/get parameter o la función GetDimValue.
- Asignar el field exit a un programa y dynpro específicos para limitar su alcance; si no se hace, el exit será global.
Activación y pruebas del Field exit
- Se pueden asignar varios programas y dynpros al mismo field exit.
- Activar el field exit desde el menú correspondiente.
- Probar la funcionalidad accediendo a la transacción relevante (ejemplo: SM30) e introduciendo valores para validar el comportamiento programado.
Parámetros y uso de File exits
Restricciones en los File exits
- No se pueden usar instrucciones como break point, call screen, call dialog, call transaction, submit, commit work, rollback work y mensajes informativos dentro de un file exit.
Activación y configuración
- Para activar los file exits, el parámetro above file exit debe estar configurado en "yes" en el servidor.
- Esta configuración se realiza mediante la transacción estándar RZ10 en el sistema SAP.
- El parámetro de instancia above file exit controla la activación o desactivación de los file exits a nivel de sistema.
Impacto en el rendimiento
- Si el parámetro de activación está activo, el sistema consulta las tablas estándar tde_dir y tdedirs para determinar si es necesario generar un exit de campo para cada campo.
- No se percibe una ralentización en el sistema desde el punto de vista del usuario.
- La generación de la "Dimpro" es muy rápida.
Acceso al contenido de campos y cobertura
- Para conocer el contenido de otros campos en pantalla al usar file exits, se pueden guardar estos valores en variables globales del grupo de función o utilizar la función dim_value_read para obtener los valores de otros campos.
- Si varios campos comparten el mismo elemento de datos, el file exit se aplicará a todos ellos.
Implementación de un Field Exit
Repaso de la lección y contexto
- Se realiza un repaso sobre la implementación de fill exit (exit de campo) en SAP, específicamente usando la transacción SM30 para una tabla de usuarios (ZTABLA_usuarios).
- El ejemplo se centra en aplicar el exit al campo "Fecha de nacimiento", replicando el procedimiento ya visto previamente para el campo "Dirección".
Pasos para crear el fill exit
- Se identifica el elemento de datos del campo "Fecha de nacimiento" mediante la ayuda F1 y la opción de información técnica (elemento de datos: Z_F nacimiento).
- Se accede a la transacción CMOD y se utiliza el comando PRFB para gestionar los exits de campo.
- Se crea el exit para el elemento de datos específico mediante el menú correspondiente, y se especifica el grupo de funciones y un texto breve descriptivo.
- Ante la inexistencia previa del grupo de funciones, se procede a crearlo manualmente, asignando texto y guardándolo como objeto local.
- Se crea el módulo de funciones dentro del grupo y se verifican los atributos de import (input) y export (output).
Codificación y configuración del exit
- Se programa la validación: si la fecha ingresada es menor o igual a 01/01/1900, se emite un mensaje de error empleando una clase de mensajes existente.
- Se activa tanto el módulo de funciones como el programa y grupo de funciones asociados.
- Se asigna el fill exit al programa y dinpro específicos, asegurando su ejecución en el contexto adecuado.
- Se activa el exit y se verifica su correcto estado en el sistema.
Prueba y resultado
- Se realiza una prueba ingresando un registro en la tabla, asignando una fecha de nacimiento inválida (anterior a 1900).
- El sistema muestra correctamente el mensaje de error previsto: "Debe introducir una fecha mayor".
- El procedimiento completo sirve como repaso paso a paso para implementar y validar un fill exit en SAP.
Sugerencias.
- Revisar los campos de las dynpros donde se requieran validaciones personalizadas mediante field exits.
- Documentar los field exits creados y los programas/dynpros asociados.
- Evaluar la necesidad de crear grupos de funciones exclusivos para facilitar el mantenimiento.
- Documentar el procedimiento realizado para futuras referencias o formación interna.
- Probar el exit con diferentes valores para garantizar la robustez de la validación.
- Revisar si existen otros campos en la tabla que requieran validaciones similares y considerar implementar exits adicionales si es necesario.