PDA

Ver la Versión Completa : OB28 - Validar Acreedor en F-58


andresf02
26/05/14, 13:45:45
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!