PDA

Ver la Versión Completa : Guardar reporte en proceso de fondo


michetox
25/11/10, 14:05:03
Buenas,
Mi consulta es la siguiente. Tengo un reporte (WRITE) el cual necesito guardar como líneas en una tabla interna. Para esto utilizo la función LIST_TO_ASCI y la guarda perfectamente.
El problema es que cuando intento hacer lo mismo ejecutando el programa en un proceso de fondo (job) solo me guarda la última parte del reporte, cortando todo lo demás.
Alguna idea de porque puede ser esto o de como solucionarlo?

El tema es que tengo que guardar el reporte como un archivo .csv en el servidor de aplicación y el proceso de selección de datos es medio complicado. Por eso opto por guardarlo de esta manera y con esta función en lugar de tener que rearmar la tabla interna con los datos finales.

Saludos

calanis
25/11/10, 14:13:49
Yo opino que lamentablemente vas a tener que ir por Tabla interna a Archivo en el servidor, la función que mencionas creo que te hace eso por que es lo último que quedo en el buffer, a no ser que sepas de cuanto es el paginado (que se define con la sentencia REPORT) y ejecutes la función cada vez que cumpla el paginado y lo vayas agregando a la tabla o archivo.

Saludos

VLozano
25/11/10, 15:02:10
Si lo vas a ejecutar en el servidor y en fondo, pasa de todo y cambia las instrucciones WRITE por TRANSFER, usando DATASETs. O haz las dos cosas (un WRITE para la pantalla y un TRANSFER para el archivo).

Te dejo a ti el curro de aprender cómo funcionan, es entretenido.