|
Introducción
Normalmente nos referimos a los archivos de spool como salidas aún
no impresas que se encuentran almacenadas dentro de colas de salida
(objetos de tipo *OUTQ). Esta afirmación no es errónea,
pero parte de ella no es exactamente cierta.
Físicamente, los archivos de spool están almacenados
como miembros de objetos de tipo *FILE, atributo PF-DTA, en la biblioteca
del sistema QSPL. Las colas de salida, en realidad, contienen las
direcciones donde el spool está almacenado. Por lo tanto,
los objetos de tipo *OUTQ permiten organizar el spool desde un punto
de vista lógico. Ej: colas de salida por usuario, por impresora
o cola de salida de información confidencial (sueldos).
Los conceptos anteriormente expresados demuestran el motivo por
el cual cuando se salvan objetos de tipo *OUTQ no se incluyen los
archivos de spool. La forma de solucionar este inconveniente es
convertirlos en objetos.
Como convertir los archivos de spool en
objetos de tipo *FILE.
El comando CPYSPLF permite seleccionar un archivo
de spool y almacenarlo dentro de un objeto de tipo *FILE con atributo
PF-DTA previamente creado. La longitud de registro del archivo físico
creado debe ser el ancho del spool a salvar más uno. Este
carácter adicional se utiliza para almacenar los caracteres
de control que permitan en un futuro volver a generarlo en una cola
de salida sin perder saltos de página y líneas en
blanco, entre otras características. Para que CPYSPLF
tenga en cuenta los caracteres de control, el parámetro
Caracter de control (palabra clave CTLCHAR) debe contener
*FCFC.
Para almacenar un archivo de spool dentro de un *FILE PF-DTA, efectúe
los siguientes pasos:
1. Observe el ancho de página
del archivo de spool a salvar (suponemos 132) y tome nota de su
nombre completo: nombre del spool, nombre completo del job que lo
generó, número de spool dentro del trabajo.
2. Genere un archivo físico
con longitud de registro igual a 133.
3. CRTPF FILE(QGPL/SPOOL) RCDLEN(133)
4. Ejecute el comando CPYSPLF completando
el nombre del spool y el del *FILE destino. Presionar F10 e ingresar
*FCFC en el parámetro Carácter de control.
La siguiente pantalla muestra el prompt del comando:

5. Presione Intro.
A partir de aquí, los datos del spool están guardados
dentro del archivo y se lo puede salvar como a cualquier archivo.
Cómo convertir el contenido
del *FILE en archivo de spool nuevamente.
Para que el pasaje de los datos al spool sea exitoso, es importante
haber efectuado el CPYSPLF especificando *FCFC en el parámetro
correspondiente. De esta manera se conserva el formato original
del archivo de spool. Realizar los siguientes pasos:
1. Alterar temporalmente el archivo
de impresora QSYSPRT.
2. OVRPRTF FILE(QSYSPRT) PAGESIZE(*N
133) CTLCHAR(*FCFC)
3. Copiar desde el archivo físico
hacia el archivo alterado en el paso anterior.
4. CPYF FROMFILE(QGPL/SPOOL) TOFILE(QSYSPRT)
Luego de realizados estos pasos, existe en el spool nuevamente.
Para tener en cuenta...
Los siguientes items son consideraciones adicionales sobre lo detallado
hasta aquí:
- Existen ciertos atributos externos que no son salvados junto
con la información de spool. Ej: nombre del spool, cola
de salida, tipo de formulario, cantidad de copias, entre otros.
Para que estas características sigan presentes en el archivo,
agregar al paso 1 detallado anteriormente alteraciones adicionales
en el mismo comando. Ej:
OVRPRTF FILE(QSYSPRT) PAGESIZE(*N 133) CTLCHAR(*FCFC)
SPLFNAME(SUELDOS) COPIES(2) FORMTYPE(SPEC)
- Es posible escribir un pequeño NEP (Never Ending Program)
que se encargue de guardar en diferentes miembros de un archivo
físico, los distintos archivos de spool que llegan a una
cola de salida en especial.
|