Ver Mensaje Individual
  #4  
Viejo 23/01/13, 11:17:10
mauro_ARG mauro_ARG is offline
Member
 
Fecha de Ingreso: abr 2009
Mensajes: 87

El field exit es similar a la user exit, pero se hace a nivel del elemento de datos. Sirve para realizar validaciones basicas, y tiene muchas restricciones.

La funcion de field exit tiene solo dos campos, uno de entrada (INPUT) y uno de salida (OUTPUT) y es lo unico que podes leer a priori, aunque podes sacar info de otros campos guardandolos en variables globales de la funcion (esto implica la creacion de mas field exits) o utilizar la funcion DYNP_VALUES_READ.

En los field exits no podes utilizar:
BREAK-POINT
CALL SCREEN
CALL DIALOG
CALL TRANSACTION
SUBMIT
COMMIT WORK
ROLLBACK WORK
MESSAGE I

Ahora, para crear un field exit:
Lo primero que tenemos que chequear es que en la RZ10 este activado el parametro: abap/fieldexit = YES en el servidor (esto chequealo con un Basis).

Despues, tenemos que crear una funcion para el campo, todas las funciones de field exit comienzan con FIELD_EXIT_* (en tu caso le pondria FIELD_AXIT_ALLOC_NMBR). Esto te va a crear una funcion con los parametros INPUT y OUTPUT.

Luego le colocas el codigo que quieras para realizar tu validacion.

Por ultimo ejecutas en la SE38 el reporte RSMODPRF, alli te van a aparecer todos los field exits activos. Para crear el tuyo y asignarle la funcion le das "Exits de Campo->Crear" e ingresas el elemento de datos sobre el cual queres activar tu field exit, finalmente seleccionas tu field exit y le das click en "asignar prog/dynpro" y le completas los datos correspondiente al nombre del programa y la dynpro. Una vez hecho esto, lo activas y listo.

Consejo, para validar si tu field exit funciona, te recomiendo que primero lo ejecutes mostrando un Mensaje del tipo E o S... Luego una vez verificado esto, si procede con la codificacion necesaria para tu validacion.

Igualmente, te repito, nunca lo utilice en un ALV, ignoro si funcionará o no.
Suerte, y comenta como te fue!.
Responder Con Cita