Gracias por tu comentario Fernando.

Me explico. El comando me parece una solucion mas elegante, mas limpia, evita CALLPRC y tiene la ventaja de que se pueden suministrar valores por omision. Quizas lo de minimizar, modular y optimizar el código es una mania personal llevada al extremo. Ya se que todo no se puede tener, pero gracias de todas formas.

Fernando Pérez escribió:

Si llamas a la CL directamente, te puede devolver el parámetro que quieres.
¿Necesitas que sea un comando?

Saludos.

Fernando Pérez.

Cerámica Saloni. Dpto. Sistemas




-----Mensaje original-----
De: Francisco Gor [mailto:[EMAIL PROTECTED] Enviado el: viernes, 20 de febrero de 2004 18:49
Para: [EMAIL PROTECTED]
Asunto: Re: QTEMP de interactivo y de Batch



Pues ahi va mi opinion despues de leer los mensaje anteriores:


Creo que entre todas las alternativas ninguna resulta redonda del todo. Y tambien que si las combinamos podemos conseguir una solucion optima para un problema tan cotidiano.

Mi pequeña aportación es un programa de servicio WRKFSRV con tres modulos CL que uso para crear ficheros temporales vacios en una libreria de trabajo. El primer modulo crea una etiqueta para el fichero de forma aleatoria, comprueba si existe el objeto, itera hasta que consigue un nombre valido y lo devuelve. El segundo modulo toma como parámetros un nombre cualificado de fichero patron y la etiqueta generada por el primer modulo para crear un duplicado en la libreria de trabajo. Y el tercer modulo se encarga de eliminar el fichero.

La idea es poder enlazarlos en cualquier programa y a la vez disponer de ellos como programas independientes que se cargan con los comandos LBLWRKF, CRTWRKF y DLTWRKF. En este ultimo caso los comandos utilizan por omisión la libreria QTEMP como libreria de trabajo.

El problema al usar el comando LBLWRKF es que, tanto si se llama directamente, como si se hace desde CRTWRKF, no puede devuolver el nombre del fichero creado. ¿Se le ocurre a alguien una solución mas directa que usar un area de datos o cualquier otro almacenamiento permanente?

Combinando lo anterior con alguna tecnica para mover el fichero como apunta Fernando tendriamos solucion completa.

Fernando Pérez escribió:



A modo de comentario, quería proponer una solución alternativa:

- Te creas una biblioteca para los ficheros de trabajo

- El programa interactivo trabaja con un fichero en la qtemp.

- Antes de llamar al batch, se renombra el fichero de la qtemp , dándole un nombre 'único' (nosotros lo tenemos implementado con un contador en un
fichero) y se mueve (movobj) a la biblioteca de ficheros de trabajo.


La ventaja que le veo a este método es que no se está copiando el fichero ( movobj se ejecuta casi en el acto), lo cual puede requerir su tiempo si son muchos ficheros a pasar. Por otro lado, en caso de error de la parte sometida se puede consultar el fichero de trabajo, lo cual no es posible, o al menos no tan fácilmente, con un fichero en la qtemp.

Como posibles inconvenientes, has de pasar al programa sometido el nombre del fichero de trabajo para que haga el ovrdbf (aunque tampoco es mucho trabajo a hacer). Un posible problema lo pueden dar los ficheros de trabajo que no se acaben eliminando (principalmente por errores en la ejecución), pero eso es solventable con un proceso planificado que elimine regularmente de la biblioteca de trabajo los ficheros con cierta antigüedad.

Me gustaría conocer que opinais vosotros, ya que esta solución la tenemos 'en fase experimental'.



Saludos.

Fernando Pérez.

Cerámica Saloni. Dpto. Sistemas

<mailto:[EMAIL PROTECTED]>



-----Mensaje original-----
De: Javier Forum400 [mailto:[EMAIL PROTECTED]
Enviado el: miércoles, 18 de febrero de 2004 10:22
Para: [EMAIL PROTECTED]
Asunto: RE:QTEMP de interactivo y de Batch


La pregunta es: Puedo leer desde un proceso Batch un fichero creado en la QTEMP desde un paso previo en interactivo?


Nosotros usamos un mandato obtenido de la antigua HELP400, en concreto se llama CPYSBMJOB. Básicamente el procedimiento es como describes: 1. Se generar ficheros de trabajo en la QTEMP del trabajo interactivo. 2. Se somete el trabajo en batch. 3. Con CPYSBMJOB se copian los objetos de la QTEMP del trabajo interactivo al sometido a batch. 4. Se ejecuta el batch.

Si estás interesado en este método (te aseguro que funciona muy bien), puede enviarte los fuentes del mandato.

Un saludo.

http://webmail.wanadoo.es. Tu correo gratuito, rápido y en español











--
===============================================================
Francisco Gor Baquero

Artes Graficas Novograf, SA

mailto:[EMAIL PROTECTED]
http://www.novograf.com
===============================================================
*Los acentos de este mensaje se han eliminado intencionadamente
===============================================================




_____________________________________________________
Forum.HELP400 es un servicio más de NEWS/400.
© Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________

Para darte de baja, envía el mensaje resultante de pulsar
mailto:[EMAIL PROTECTED]

Responder a