MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 22/01/13, 15:52:52
SAPING SAPING is offline
Senior Member
 
Fecha de Ingreso: may 2010
Localización: Buenos Aires, Argentina
Mensajes: 188
Fbcj - Exit/badi

Hola.
Necesito agregar una validacion para el campo ISCJ_E_POSTINGS-ALLOC_NMBR (Assignment) del ALV que esta en la solapa Cash Payments de la trx FBCJ.
Tengo que mostrar un mensaje de error si no se completa ese campo.

Implemente la badi CJ_DOCUMENT (se19).
Para probar si funcionaba o no lo unico que le agregue fue un mensaje tipo 'I' que dice "BADI!!" pero no pude hacer que me muestre ese mensaje.
La badi esta activa (supongo segun la se80) pero no muestra ningun mensaje.

Haciendo un debug intente ver si el include MFCJ0I01 del programa SAPMFCJ0, el cual maneja los MODULE de la dynpro 0110 que valida los campos del ALV, tenia algun enhancement el cual me permita agregar el codigo para validarlo, pero no tiene ninguno.

No se me ocurre que hacer.... :S
Responder Con Cita
  #2  
Viejo 22/01/13, 19:34:19
mauro_ARG mauro_ARG is offline
Member
 
Fecha de Ingreso: abr 2009
Mensajes: 87
Cita:
Originalmente Escrito por SAPING
Hola.
Necesito agregar una validacion para el campo ISCJ_E_POSTINGS-ALLOC_NMBR (Assignment) del ALV que esta en la solapa Cash Payments de la trx FBCJ.
Tengo que mostrar un mensaje de error si no se completa ese campo.

Implemente la badi CJ_DOCUMENT (se19).
Para probar si funcionaba o no lo unico que le agregue fue un mensaje tipo 'I' que dice "BADI!!" pero no pude hacer que me muestre ese mensaje.
La badi esta activa (supongo segun la se80) pero no muestra ningun mensaje.

Haciendo un debug intente ver si el include MFCJ0I01 del programa SAPMFCJ0, el cual maneja los MODULE de la dynpro 0110 que valida los campos del ALV, tenia algun enhancement el cual me permita agregar el codigo para validarlo, pero no tiene ninguno.

No se me ocurre que hacer.... :S


Probaste con un Field Exit?
--

Edito: Recien caigo que es un ALV, nunca probe field exits para campos ALV, pero no creo que funcione.

Úlima edición por mauro_ARG fecha: 22/01/13 a las 19:46:07.
Responder Con Cita
  #3  
Viejo 23/01/13, 10:42:48
SAPING SAPING is offline
Senior Member
 
Fecha de Ingreso: may 2010
Localización: Buenos Aires, Argentina
Mensajes: 188
No, la verdad nunca use field exit...

Tenes info??
Responder Con Cita
  #4  
Viejo 23/01/13, 11:17:10
mauro_ARG mauro_ARG is offline
Member
 
Fecha de Ingreso: abr 2009
Mensajes: 87
Cita:
Originalmente Escrito por SAPING
No, la verdad nunca use field exit...

Tenes info??

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
  #5  
Viejo 24/01/13, 11:59:04
SAPING SAPING is offline
Senior Member
 
Fecha de Ingreso: may 2010
Localización: Buenos Aires, Argentina
Mensajes: 188
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...

?????????
Responder Con Cita
  #6  
Viejo 24/01/13, 12:18:45
mauro_ARG mauro_ARG is offline
Member
 
Fecha de Ingreso: abr 2009
Mensajes: 87
Cita:
Originalmente Escrito por SAPING
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...

?????????

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.
Responder Con Cita
  #7  
Viejo 24/01/13, 13:19:35
SAPING SAPING is offline
Senior Member
 
Fecha de Ingreso: may 2010
Localización: Buenos Aires, Argentina
Mensajes: 188
Gracias Mauro.
Casualmente encontre un "instructivo" de como crear el field exit de la manera que me indicaste (http://www.sapdev.co.uk/enhance/fexits.htm).

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!
Responder Con Cita
  #8  
Viejo 24/01/13, 18:35:19
mauro_ARG mauro_ARG is offline
Member
 
Fecha de Ingreso: abr 2009
Mensajes: 87
Cita:
Originalmente Escrito por SAPING
Gracias Mauro.
Casualmente encontre un "instructivo" de como crear el field exit de la manera que me indicaste (http://www.sapdev.co.uk/enhance/fexits.htm).

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!

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.
Responder Con Cita
  #9  
Viejo 30/06/17, 20:23:01
p.ibanez p.ibanez is offline
Junior Member
 
Fecha de Ingreso: feb 2017
Mensajes: 1
Cita:
Originalmente Escrito por SAPING
Gracias Mauro.
Casualmente encontre un "instructivo" de como crear el field exit de la manera que me indicaste (http://www.sapdev.co.uk/enhance/fexits.htm).

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!

Buenas. Muy útil el post. Por casualidad el funcional dijo como lo solucionó?
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 07:20:21.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web