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!
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!