PDA

Ver la Versión Completa : Ayuda con User-Exit en validacion FI OB28


andresf02
26/05/14, 13:46:51
Buenos dias.

Me pidieron hacer una validacion en FI para que no se pueda emitir chequetes a todos los proveedores que pertenezcan a un grupo de cuentas determinado (LFA1-KTOKK).

Mi CONDICION PREVIA es la siguiente:

SYST-TCODE = 'F-58'


La VERIFICACION es un user exit con el siguiente codigo:

select single * from lfa1
where lifnr = rf05a-agkon. "esta variable tiene el codigo del proveedor

if sy-subrc eq 0. "Encuentra el registro
* Si el proveedor es de grupo de cuentas RGAS --> genera error al procesar el pago

if lfa1-ktokk = 'RGAS'. "Es error
b_result = b_false.
else.
b_result = b_true. "puede generar cheque
endif.
endif.




La variable rf05a-agkon guarda el codigo del proveedor que se escribió en la F-58.


Lo primero que me encontré es al entrar a la transaccion F-58, la variable SYST-TCODE no es igual a 'F-58' sino que SYST-TCODE = 'FBZ4'.

La variable que si es igual a F-58 es la TCODE (TCODE= 'F-58') pero esta no me permite incluirla en la condicion previa, solo me deja con la SYST-TCODE.



Al volver la CONDICION PREVIA SYST-TCODE = FBZ4' solo se activa cuando ya se va a procesar el salida del cheque y en esta transaccion FBZ4, la variable "rf05a-agkon" ya no tiene el cofigo del proveedor, sino que esta vacia, porque esta transaccion no muestra por ningun lado el proveedor.

Entonces al entrar al user-exit sin ningun codigo de proveedor no me valida nada y deja generar siempre el cheque.





Existe alguna forma de hacer que la validacion se active directamente en la F-58, cuando la varaible rf05a-agkon aun guarda el codigo del proveedor??

O que variable puedo usar desde la FBZ4 para obtener el codigo del proveedor alli y asi poder validar?



Al final lo unico que importa es que no se le pueda contabilizar ni imprimir el cheque al un proveedor con grupo de cuenta = 'RGAS'



gracias!

asclevius
27/05/14, 23:25:21
Hola andresf02

Te cuento que para validar la transacción, no te sirve el SYST-TCODE, o almenos a mi no me sirvio, en la validación que hice que era para la transacción F-28 me toco poner esta condición en la sección de "posición documento"

BKPF-TCODE = 'FBZ1'

y me activo el user exit desde el principio.

no se si esto te sirva para algo???? algo que no se es como hicste fue el hecho de capturar las estructuras LFA1 y rf05a, si me puedes contar como lo hiciste te lo agradeceria!!!!!