PDA

Ver la Versión Completa : Error Programa Z en proceso de Fondo


andresf02
30/08/10, 21:29:56
Buenas Tardes.

Por la SM36 creé un Job para ejecutar el reporte ZFI_IP004 creado por mi (es solo una prueba simple de Jobs).
Creé para dicho reporte una variante de ejecucion que requiere el job.

Apenas ejecuto el Job su estado queda como Cancelado y se genera el error siguiente:

Control Framework: Error fatal, no es posible acceder a GUI
ABAP control framework no puede inicializarse ...
Procesador ABAP: RAISE_EXCEPTION.


Alguien sabe a que se puede deber esto?

Gracias!



El log completo es:

Fecha Hora Texto mensaje Cl.mensaje Nº mensaje Tp.mensaje

30.08.2010 16:17:25 El job ha sido lanzado. 00 516 S
30.08.2010 16:17:25 Paso 001 iniciado (programa ZFI_IP004, variante DEFAULT, usuario AFVELASCO) 00 550 S
30.08.2010 16:17:26 Control Framework: Error fatal, no es posible acceder a GUI DC 006 W
30.08.2010 16:17:26 ABAP control framework no puede inicializarse ... DC 001 S
30.08.2010 16:17:26 ABAP control framework no puede inicializarse ... DC 001 S
30.08.2010 16:17:26 ABAP control framework no puede inicializarse ... DC 001 S
30.08.2010 16:17:26 ABAP control framework no puede inicializarse ... DC 001 S
30.08.2010 16:17:26 ABAP control framework no puede inicializarse ... DC 001 S
30.08.2010 16:17:26 ABAP control framework no puede inicializarse ... DC 001 S
30.08.2010 16:17:26 ABAP control framework no puede inicializarse ... DC 001 S
30.08.2010 16:17:26 ABAP control framework no puede inicializarse ... DC 001 S
30.08.2010 16:17:26 ABAP control framework no puede inicializarse ... DC 001 S
30.08.2010 16:17:26 ABAP control framework no puede inicializarse ... DC 001 S
30.08.2010 16:17:26 Procesador ABAP: RAISE_EXCEPTION. 00 671 A
30.08.2010 16:17:26 El job ha sido cancelado. 00 518 A

calanis
31/08/10, 01:18:42
Andres

Disculpa pero que hace exactamente tú programa?
Ya que al parecer te dice que no puede acceder al GUI(Graphics User Interface[Interfaz Gráfica de Usuario]) y eso esta bien, ya que es un proceso de Fondo, y los procesos de fondo solo leen/escriben y procesan sobre el servidor y no sobre una pc local, así que no puedes usar ciertas funcionalidades como las conocidas funciones GUI_DOWNLOAD entre otras.

Igualmente si no estas utilizando nada de eso y necesitas debuguear el Job.
Hay varias maneras, una es aplicando una demora así te da tiempo para acceder por la SM50 e ir al menú Programas-->Debug.


DATA:lv_flag TYPE xfeld.
*Podes usar While o lo que sea como este DO
do.
clear lv_flag.
If lv_flag = 'X'.
Exit.
Endif.
Enddo.

Espero que la info te sea de utilidad.

Saludos
Carlos D. Alanis

jtristan
31/08/10, 05:20:07
Creo que Calanis tiene razón. ¿Tu programa es un modulpool o un ejecutable?

Para debugear, también se puede poner en la línea de comandos JDBG. De esta forma no sería necesario añadir nada al programa.

Un saludo.

nievesmp
31/08/10, 09:37:55
¿Como estás llamando al Proceso de Fondo?. Yo lo hice mediante las funciones de open close correspondientes.

Para ejecutar el report en proceso de fondo me pasó lo mismo, 'canceled', porque estaba intentando generar un fichero excel de salida desde un job, y no lo permite.

En este caso lo que hice fue generar el reporte en pantalla, de modo que al generar el job, sale en reporte de pantalla, y si se desea guardar en excel, el log del job permite exoportar este reporte de pantalla a excel de una forma simple con el bo´tón correspondiente.

Ten en cuenta que no debes ni leer ficheros ni generarlos, en todo caso podrías si, leer un fichero de entrada, pero antes de pasar las funciones que generan en job de fondo.

andresf02
31/08/10, 12:26:40
Gracias por las respuestas.

La verdad no conosco muy bien el tema de los jobs ni procesos de fondo. Existen restricciones sobre los tipos de programas que pueden lanzarse? El programa dentro del codigo debe tener algo que permita ejecutarlo de fondo?


Mi programa ZFI_IP004 es un reporte de cuentas por pagar que usa un ALV OO y que el usuario ejecuta en linea. Quise crear un job para conocer el procedimiento y escogi este programa al azar y me generó el error que describi.

Luego Probé el job con la transaccion estandar FAGLL03 (programa FAGL_ACCOUNT_ITEMS_GL) y funcionó perfecto, generó de fondo el listado y pude visualizarlo. Ahora, debo agregarle algo al codigo de mi reporte ZFI_IP004 para poder que se ejecute de fondo? o es problema de que el reporte usa un ALV OO ?

jossnet
31/08/10, 21:07:00
si en tu reporte usas la sentencia "call screen XXX",eso hara que de dump al ejecutar el programa como job,debes de ponerle una validacion con sy-batch para que no pase por ahi si es un job.