Cómo: Referencia: |
Ya sea que se haya emitido en una solicitud o después de haber ejecutado la solicitud, el comando HOLD puede crear un origen de datos FOCUS y un archivo máster correspondiente de los datos extraídos de la solicitud de informe. Esta característica le permite crear:
Sugerencia: Si trabaja en un entorno que admite SCAN, FSCAN, MODIFY o Maintain y crea un archivo HOLD en formato FOCUS, puede actualizar o crear informes el archivo HOLD. Revise su documentación para obtener detalles acerca de estas funciones.
Nota: Si mantiene el formato FOCUS de un archivo puede aparecer el aviso FOC441: El archivo ya existe. Crear lo sobrescribe. Si incluye el comando SET WARNING=OFF no aparecerá ese mensaje.
En una solicitud de informe, utilice
ON TABLE HOLD [AS filename] FORMAT FOCUS [INDEX field1 field2 ...]
donde:
El nombre puede tener hasta 64 caracteres de longitud.
Nota: Si usa un nombre de más de ocho caracteres en OS/390, se genera un nombre de miembro de ocho caracteres, como se describe en el manual Cómo describir datos con el lenguaje WebFOCUS. Para relacionar el nombre largo con el nombre de miembro corto se genera el atributo $ VIRT en la línea superior del archivo máster. El archivo HOLD obtenido es un archivo de datos temporales. Para asignar el nombre largo de archivo máster a un archivo de datos permanente, emita el comando DYNAM ALLOCATE con la opción LONGNAME antes de la solicitud HOLD. El ddname en el comando debe referirse a un miembro existente del PDS MÁSTER.
Recuerde que una vez que utilice este formato desde Hot Screen, no podrá emitir otro comando HOLD mientras siga en la misma sesión de Hot Screen.
El archivo HOLD queda asignado automáticamente, si no lo está ya en z/OS. Esto siginifica que el sistema podría borrar el archivo al final de la sesión, aunque no lo haya pedido. Puesto que se suele borrar los archivos HOLD, ésta es la opción predefinida. Sin embargo, si desea guardar el archivo máster, asígnelo al ddname HOLDMAST como un conjunto de datos permanentes. La asignación se puede realizar en la CLIST estándar de FOCUS. Por ejemplo:
ALLOC F(HOLDMAST) DA('qualif.HOLDMAST') SHR REUSE
Tenga en cuenta que ddname HOLDMAST no debe referirse al mismo PDS a que se han referido los ddnames MÁSTER y FOCEXEC.
La estructura de los datos de FOCUS varía de acuerdo con la solicitud de datos. Las reglas son las siguientes:
Para controlar si los atributos ACCEPT y TITLE se propagan al archivo máster asocado con el archivo HOLD, utilice el comando SET HOLDATTR. Para controlar el atributo FIELDNAME en el archivo máster del archivo HOLD, utilice el comando SET ASNAMES. Para más información sobre cómo controlar los atributos TITLE, ACCEPT y FIELDNAME en un archivo máster HOLD, consulte Cómo controlar atributos en archivos máster HOLD .
El siguiente ejemplo crea un subconjunto del origen de datos CAR.
TABLE FILE CAR SUM SALES BY COUNTRY BY CAR BY MODEL ON TABLE HOLD AS X1 FORMAT FOCUS END
Esta solicitud crea un origen de datos FOCUS de segmento único con un SEGTYPE de S3 (porque tiene tres campos BY) llamado X1.
La solicitud genera el archivo máster X1:
FILE=X1, SUFFIX=FOC SEGMENT=SEG01 ,SEGTYPE=S03 FIELDNAME=COUNTRY ,ALIAS=E01 ,USAGE=A10 ,$ FIELDNAME=CAR ,ALIAS=E02 ,USAGE=A16 ,$ FIELDNAME=MODEL ,ALIAS=E03 ,USAGE=A24 ,$ FIELDNAME=SALES ,ALIAS=E04 ,USAGE=I6 ,$
Este ejemplo crea un origen de datos de FOCUS de segmento único con un SEGTYPE de S4 en virtud de los tres campos BY y del campo FOCLIST.
TABLE FILE CAR PRINT SALES BY COUNTRY BY CAR BY MODEL ON TABLE HOLD AS X2 FORMAT FOCUS INDEX MODEL END
El archivo máster creado mediante esta solicitud es:
FILE=X2, SUFFIX=FOC SEGMENT=SEG01, SEGTYPE=S04 FIELDNAME=COUNTRY ,ALIAS=E01 ,USAGE=A10 ,$ FIELDNAME=CAR ,ALIAS=E02 ,USAGE=A16 ,$ FIELDNAME=MODEL ,ALIAS=E03 ,USAGE=A24 ,FIELDTYPE=I,$ FIELDNAME=FOCLIST ,ALIAS=E04 ,USAGE=I5 ,$ FIELDNAME=SALES ,ALIAS=E05 ,USAGE=I6 ,$
La siguiente solicitud contiene dos comandos SUM. La primera, SUM SALES BY COUNTRY, crea un segmento con COUNTRY como valores resumidos y de clave de SALES como campo de datos. La segunda, SUM SALES BY COUNTRY BY CAR BY MODEL, crea un segmento descendente, con CAR y MODEL como claves y SALES como el campo que no es clave.
El campo COUNTRY no forma parte de la clave para el segundo segmento. COUNTRY es una clave de la ruta en el segundo segmento. Cualquier repetición de este valor resulta redundante.
TABLE FILE CAR SUM SALES BY COUNTRY SUM SALES BY COUNTRY BY CAR BY MODEL ON TABLE HOLD AS X3 FORMAT FOCUS END
Esto crea un origen de datos de FOCUS de dos segmentos:
El archivo máster de este origen de datos de FOCUS de reciente creación es:
FILE=X3, SUFFIX=FOC SEGMENT=SEG01, SEGTYPE=S01 FIELDNAME=COUNTRY ,ALIAS=E01 ,USAGE=A10 ,$ FIELDNAME=SALES ,ALIAS=E02 ,USAGE=I6 ,$ SEGMENT=SEG02, SEGTYPE=S02,PARENT=SEG01 FIELDNAME=CAR ,ALIAS=E03 ,USAGE=A16 ,$ FIELDNAME=MODEL ,ALIAS=E04 ,USAGE=A24 ,$ FIELDNAME=SALES ,ALIAS=E05 ,USAGE=I6 ,$
En este ejemplo, cada comando de visualización crea un segmento.
La clave para el segmento raíz es el campo BY, COUNTRY, en tanto que las claves para los segmentos descendentes son los nuevos campos BY. El último segmento utiliza el campo interno FOCLIST como parte de la clave, pues el comando de visualización es PRINT.
TABLE FILE CAR SUM SALES BY COUNTRY BY CAR SUM SALES BY COUNTRY BY CAR BY MODEL PRINT SALES BY COUNTRY BY CAR BY MODEL BY BODY ON TABLE HOLD AS X4 FORMAT FOCUS INDEX COUNTRY MODEL END
El archivo máster es:
FILE=X4, SUFFIX=FOC SEGMENT=SEG01, SEGTYPE =S02 FIELDNAME=COUNTRY ,ALIAS=E01 ,USAGE=A10 ,FIELDTYPE=I,$ FIELDNAME=CAR ,ALIAS=E02 ,USAGE=A16 ,$ FIELDNAME=SALES ,ALIAS=E03 ,USAGE=I6 ,$ SEGMENT=SEG02, SEGTYPE =S01 ,PARENT=SEG01 FIELDNAME=MODEL ,ALIAS=E04 ,USAGE=A24 ,FIELDTYPE=I,$ FIELDNAME=SALES ,ALIAS=E05 ,USAGE=I6 ,$ SEGMENT=SEG03, SEGTYPE =S02 ,PARENT=SEG02 FIELDNAME=BODYTYPE ,ALIAS=E06 ,USAGE=A12 ,$ FIELDNAME=FOCLIST ,ALIAS=E07 ,USAGE=I5 ,$ FIELDNAME=SALES ,ALIAS=E08 ,USAGE=I6 ,$
WebFOCUS |