✒️ABAP Los Field Exits
ABAP Los Field Exits
Lección 4: Field Exits
1| Que son los Field Exits?
Llamados también 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 estándar. Y como se ejecutan en instancias de memoria propia, solo se dispone del valor del campo, que se importa en el parámetro de INPUT y que puede ser modificado a través del parámetro OUTPUT.
Un ejemplo donde usaríamos un Field Exit, es si se quiere insertar un valor en un campo de pantalla pondríamos una validación en ese campo a nivel Field Exit para que solo permita insertar determinados valores. Con la SE37 colocando FIELD_EXIT_* F4 nos saldrán 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 (todos los programas) o para determinados programas y dynpros que se le asigne.
Desventajas:
- Toma un solo valor de la dynpro, el campo al cual se hace referencia. No se puede utilizar tablas internas 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 debe especificarse en el código que acción tomara de acuerdo al programa que este ejecutando.
- No se puede hacer debug de forma directa, a través de un breakpoint. Para ello debe usarse mensaje de error para ir viendo los valores que viene tomando en diferentes objetos y por donde va pasando dentro del código del Field Exit.
Nota.- En un Field exit no se podrán usar las instrucciones breakpoint, call scren , call dialog, call transaction, submit, commit work, roll bag work, mesagge id. Para activar los field exit debemos tener el parámetro abap field exit = yes seteado en el, servidor el cual es seteado a través de la tx RZ10
2| Pasos para realizar un Field Exit
Nos vamos a la tx CMOD (Gestión de proyectos de ampliaciones). Y en ella ejecutamos la tx PRFB
Y nos muestra todo los Field Exit del sistema, también nos indica si están activados a nivel global para todas las tx o tienen algún programa y dynpro asignado
Para la creación de Field exit, seleccionamos el menú Exit Campo y la opción Crear.
En la siguiente ventana indicamos 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 cual se quiere relacionar.
Este datos lo obtenemos presionando F1 sobre el campo de la dynpro y luego el botón información técnica.
A continuación nos propone crear el MF en la SE37; y nos solicita la asignación de un grupo de funciones, (se recomienda usar uno exclusivamente para los Field Exit) y le ingresamos un texto breve para el MF.
El MF tiene parámetros de Import (Input) y Export (output), donde contendrá el valor del campo al cual se ha asignado el Field Exit
En la solapa Cod,fte. Ingresamos el código correspondiente a la validación que deseamos. Ejm.
Si en la función no se quiere modificar el campo donde esta colocado el Field Exit entonces al principio le asignamos: OUTPUT = INPUT y devuelve el mismo valor que ingreso. Si se quiere obtener valores de otros campos de la dynpro se podrá utilizar otros Field exit en los cuales se utilizara el comando SET PARAMETER para poder grabar en memoria el valor del campo y utilizar en el Field Exit anterior tomándolo de memoria con GET PARAMETER.
Otra opción seria la función GET_DYNP_VALUE para obtener valores de otros campos de la dynpro. Terminada la codificación se debe asignar un programa y dynpro al Field Exit (Si no se quiere hacer global). Tener en cuenta que mientras no se haya realizado la asignación de la dynpro, el Field exit afectara a todas las pantallas donde se encuentre un campo con el elemento de datos.
CMOD – PRFB, seleccionar Exit de campo y presionar el botón asignar prog./dynpro
Siguiente pantalla es donde asignaremos el nombre del programa y el numero de dynpro
* Se pueden asignar varios programas y dynpros al mismo Field Exit
Y por último activamos el Field Exit desde el menú Exit Campo / Activar
Para comprobar nuestro Field Exit, accedemos a la tx SM30 accedemos a la tabla base de datos y generaremos una entrada nueva, para ver el efecto del campo dirección introduciremos de acuerdo al ejemplo del Field Exit el valor de “CORRIENTES 123” y presionamos la tecla ENTER. Y visualizaremos el mensaje de error en la parte inferior
A nivel administración Sap, existe el parámetro de instancia field Exit el que controla la activación o desactivación, los consulta en las tablas estándar TDDIR y TDDIRS para saber si debe generar un exit de campo para cada campo Si queremos conocer el contenido de otro campo cuando trabajamos con field exit podemos guardar en variables globales al grupo de funcion o usar DYN_VALUES_READ para leer valores de otros campo de la misma pantalla, consideremos que si tiene el mismo elemento de datos el field exit aplicara para todos.
 
 
 
Sobre el autor
Publicación académica de Hernan Cabezas, en su ámbito de estudios para la Carrera Consultor ABAP.
Hernan Cabezas
Peru - Legajo: ZM88T
✒️Autor de: 117 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Hernan Cabezas