PDA

Ver la Versión Completa : carga lotes de pago rfkkze00


jucho
26/02/08, 15:27:30
buenos dias a todos.

resulta que estoy utilizando el programa estandar rfkkze00 para cargar unos lotes de pagos despues de un tratamiento, esto lo realizo sin problemas, sin embargo luego de que este programa se ejecuta con un submit, no regresa al codigo donde lo llame, lo que necesito es que luego de que se ejecute el programa rfkkze00 y que el usuario ingrese unos datos, se continue ejecutando el codigo de mi prograama inicial, estodeberia ser sencillo simplemente con un return, pero esto no me funciona.

aqui les envio la manera como llamo al programa:
SUBMIT rfkkze00 VIA SELECTION-SCREEN WITH as_fname EQ dsn1 AND RETURN.

si alguien tiene una solucion , le estare eternamente agradecido.

J_B
24/02/10, 15:27:21
que tal, por si todavia te sirve esto.
en mi caso usamos un job para la ejecucion del programa y me continuo con el resto del programa.
gv_jobname = 'Z_RFKKZE00_'.
UNPACK gv_lotcount TO gv_jobname+11(4).

CHECK flag-test = co_off.

CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = gv_jobname
IMPORTING
jobcount = gv_jobcount
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4
.
IF sy-subrc <> 0.

CASE sy-subrc.
WHEN 1.
MESSAGE e000(38) WITH 'JOB OPEN: No se puede crear el job'.
WHEN 2.
MESSAGE e000(38) WITH 'JOB OPEN: Datos de job inválidos'.
WHEN 3.
MESSAGE e000(38) WITH 'JOB OPEN: Nombre de job erróneo'.
WHEN OTHERS.
MESSAGE e000(38) WITH 'JOB OPEN: ERROR'.
ENDCASE.
STOP.
ENDIF.

SUBMIT rfkkze00 VIA JOB gv_jobname
NUMBER gv_jobcount
WITH as_fname = i_dsn "Filename
WITH p_runid = gv_keyz1 "Payment lot
WITH r_norm = co_yes "Elaborate file

WITH p_xbuch = pa_stbu "Post payment lot
WITH p_xclos = pa_stcl "Close payment lot
WITH p_xprot = co_yes "Detailed protocoll
WITH p_xsofst = co_yes "Start immediately

AND RETURN.

CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = gv_jobcount
jobname = gv_jobname
strtimmed = co_yes
EXCEPTIONS
cant_start_immediate = 1
invalid_startdate = 2
jobname_missing = 3
job_close_failed = 4
job_nosteps = 5
job_notex = 6
lock_failed = 7
OTHERS = 8.
IF sy-subrc <> 0.
CASE sy-subrc.
WHEN 1.
MESSAGE e000(38) WITH
'JOB CLOSE: no puede comenzar de inmediato'.
WHEN 2.
MESSAGE e000(38) WITH 'JOB CLOSE: fecha de inicio inválida'.
WHEN 3.
MESSAGE e000(38) WITH 'JOB CLOSE: nombre de job erróneo'.
WHEN 4.
MESSAGE e000(38) WITH 'JOB CLOSE: falló cierre de job'.
WHEN 5.
MESSAGE e000(38) WITH 'JOB CLOSE: job sin pasos'.
WHEN 6.
MESSAGE e000(38) WITH 'JOB CLOSE: job sin texto'.
WHEN 7.
MESSAGE e000(38) WITH 'JOB CLOSE: falló bloqueo'.
WHEN OTHERS.
MESSAGE e000(38) WITH 'JOB CLOSE: ERROR'.
ENDCASE.
STOP.
ELSE.
CONCATENATE 'JOB' gv_jobname 'creado'
INTO gv_msgtxt
SEPARATED BY space.
WRITE: /10 gv_msgtxt COLOR 6 INVERSE.
SKIP.
ENDIF.

Yo tengo el problema que bajo ciertas circunstancias no se ejecuta el programa correctamente por el siguiente log que veo en el job.
"Se esta utilizando la clave de reconciliacion en otra 'PY0108389' funcion". Sabras algo de esto?