|
#1
|
|||
|
|||
No, la verdad nunca use field exit...
Tenes info?? |
#2
|
|||
|
|||
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!. |
#3
|
|||
|
|||
Cree el modulo de funcion pero cuando voy al programa RSMODPRF y pongo CREAR, me pide el Elemento de datos (DZUONR en este caso), le doy OK, me lleva automaticamente a la SE37 y de ahi no se como asociar la funcion...
????????? |
#4
|
|||
|
|||
El field exit es a nivel elemento de datos. En este caso, su field exit debiera llamarse FIELD_EXIT_DZUONR. Si queres, lo podes hacer al reves. Ejecuta primero el programa, pone el elemento de datos y crea tu funcion con el nombre propuesto por el programa. Una vez que termines, volve a ejecutar el programa, pero esta vez no le pongas ningun parametro de entrada, ahi te va a mostrar todos los field exits que existen, selecciona el tuyo, asignale la dynpro y demas parametro y activalo. |
#5
|
|||
|
|||
Gracias Mauro.
Casualmente encontre un "instructivo" de como crear el field exit de la manera que me indicaste (. Logre que me muestre el mensaje que coloque para probar si funciona y anduvo joya!! Ahora tengo otro inconveniente que estoy investigando que es como leer los datos del table control (ALV). La funcion DYMP_VALUES_READ no me los trae, asi que voy a investigar a ver como puedo hacerlo. Igualmente, el funcional me dijo que ya encontro otra forma de poder hacer esta validacion, sin embargo, no me quiero quedar con la espina y sacar este tema, por lo que voy a seguir investigando. Gracias! |
#6
|
|||
|
|||
Mira, lo que se me ocurre es hacerlo de forma similar a como cuando uno ingresa datos en una tabla por medio de un batch-input. tabla-campo(indice). Por ejemplo: BKPF-BELNR(1) seria el primer campo y asi sucesivamente... si en los batch inputs funciona, capaz que con esto tambien.... Lo que no se si la field exit lo permitira. |
#7
|
|||
|
|||
Buenas. Muy útil el post. Por casualidad el funcional dijo como lo solucionó? |
Herramientas | Buscar en Tema |
Desplegado | |
|
|