Atributos de archivo máster estándar para un origen de datos VSAM o ISAM

En esta sección:

La mayoría de los atributos de archivo máster estándar se utiliza con los orígenes de datos VSAM e ISAM de un modo convencional. Para más información, consulte Cómo identificar un origen de datos, Cómo describir un grupo de campos y Cómo describir un campo individual.


Principio de página

x
Cómo describir un campo de un grupo con formatos

Cómo:

Los orígenes de datos de un único segmento sólo pueden tener un campo clave, aunque deben estar descritos con una declaración de GROUP. El grupo también debe tener ALIAS=KEY.

También puede asignar grupos simplemente para proporcionar nombres de referencia útiles para los grupos de campos. Suponga que cuenta con una serie de tres campos para un empleado: apellido, nombre e inicial del segundo nombre. Estos campos se utilizan constantemente para identificar al empleado. Puede identificar estos tres campos como un GROUP llamado EMPINFO, en su archivo máster. A continuación, puede hacer referencia a estos tres campos vinculados como si se tratasen de una sola unidad, llamada EMPINFO. Cuando utilice la característica GROUP con elementos que no sean clave, debe usar el parámetro ALIAS=, que no puede ser igual a KEY.

Para los campos de grupos, debe proporcionar los formatos USAGE y ACTUAL en forma alfanumérica. La longitud debe ser exactamente igual a la suma de las longitudes de los campos subordinados.

El atributo USAGE de la declaración GROUP especifica el número de posiciones utilizado para describir la clave en un origen de datos VSAM KSDS. Si el archivo máster no describe la totalidad de la clave en al menos una ocasión, aparece el siguiente mensaje de error:

(FOC1016) INVALID KEY DESCRIPTION IN MASTER FILE

La definición de la clave en clúster se compara con el archivo máster en cuanto a longitud y desplazamiento.

Al ampliar la clave en un origen de datos RECTYPE, describa su longitud completa en el último segmento que no sea OCCURS de cada ruta de acceso a datos.

No describa los grupos con ALIAS=KEY para los segmentos OCCURS.

Si los campos que componen una clave de grupo no son alfanuméricos, el formato de ésta sigue siendo alfanumérico, aunque su longitud se determina de un modo distinto. La longitud de ACTUAL sigue siendo la suma de las longitudes de los campos subordinados. El formato USAGE, sin embargo, es la suma de las longitudes de almacenamiento interno de los campos subordinados, ya que, independientemente de los tipos de datos, el grupo aparece como alfanumérico. La longitud de estas longitudes de almacenamiento interno se determina de la siguiente manera:

Nota:



x
Sintaxis: Cómo Describir un campo de un grupo VSAM con formatos
GROUP = keyname, ALIAS = KEY, USAGE = Ann, ACTUAL = Ann ,$

donde:

keyname

Puede tener hasta 66 caracteres.



Ejemplo: Cómo describir un campo de un grupo VSAM con formatos

El origen de datos de la biblioteca, el primer campo, PUBNO, puede estar descrito como la clave de grupo. El número del editor está compuesto de tres elementos: un número que identifica al editor, otro para el autor y un tercero para el título. Pueden describirse como una clave de grupo, compuesta de un campo independiente de cada elemento, cuando el origen de datos se trata de una estructura de datos VSAM.

El archivo máster presenta este aspecto:

FILE = LIBRARY5, SUFFIX = VSAM,$
 SEGMENT = ROOT, SEGTYPE = S0,$
  GROUP = BOOKKEY      ,ALIAS = KEY ,USAGE = A10   ,ACTUAL = A10  ,$
   FIELDNAME = PUBNO   ,ALIAS = PN  ,USAGE = A3    ,ACTUAL = A3   ,$
   FIELDNAME = AUTHNO  ,ALIAS = AN  ,USAGE = A3    ,ACTUAL = A3   ,$
   FIELDNAME = TITLNO  ,ALIAS = TN  ,USAGE = A4    ,ACTUAL = A4   ,$
  FIELDNAME = AUTHOR   ,ALIAS = AT  ,USAGE = A25   ,ACTUAL = A25  ,$
  FIELDNAME = TITLE    ,ALIAS = TL  ,USAGE = A50   ,ACTUAL = A50  ,$
  FIELDNAME = BINDING  ,ALIAS = BI  ,USAGE = A1    ,ACTUAL = A1   ,$
  FIELDNAME = PRICE    ,ALIAS = PR  ,USAGE = D8.2N ,ACTUAL = D8   ,$
  FIELDNAME = SERIAL   ,ALIAS = SN  ,USAGE = A15   ,ACTUAL = A15  ,$
  FIELDNAME = SYNOPSIS ,ALIAS = SY  ,USAGE = A150  ,ACTUAL = A150 ,$
  FIELDNAME = RECTYPE  ,ALIAS = B   ,USAGE = A1    ,ACTUAL = A1   ,$


Ejemplo: Cómo describir un campo de un grupo VSAM con formatos múltiples
GROUP = A, ALIAS = KEY, USAGE = A14, ACTUAL = A8   ,$
 FIELDNAME = F1, ALIAS = F1, USAGE = P6, ACTUAL=P2 ,$
 FIELDNAME = F2, ALIAS = F2, USAGE = I9, ACTUAL=I4 ,$
 FIELDNAME = F3, ALIAS = F3, USAGE = A2, ACTUAL=A2 ,$

Las longitudes de los atributos ACTUAL de los campos subordinados F1, F2 y F3, suman un total de 8, que es la longitud del atributo ACTUAL de una clave de grupo. Las longitudes de visualización de los atributos USAGE de los campos subordinados suman un total de 17. Sin embargo, la longitud del atributo USAGE de la clave de grupo se calcula añadiendo sus longitudes de almacenamiento interno, especificadas por el tipo de campo: 8 para USAGE=P6, 4 para USAGE=I9 y 2 para USAGE=A2, para un total de 14.



Ejemplo: Cómo acceder a un campo de un grupo con formatos múltiples

Cuando se emplea un campo de grupo con formatos múltiples en una consulta, debe tenerse en cuenta cada posición dentro del grupo, incluidos los espacios en blanco finales y los ceros iniciales. El siguiente ejemplo explica cómo acceder a un campo de grupo con formatos múltiples, en una consulta:

GROUP = GRPB, ALIAS = KEY, USAGE = A8, ACTUAL = A8 ,$
 FIELDNAME = FIELD1, ALIAS = F1, USAGE = A2, ACTUAL = A2 ,$
 FIELDNAME = FIELD2, ALIAS = F2, USAGE = I8, ACTUAL = I4 ,$
 FIELDNAME = FIELD3, ALIAS = F3, USAGE = A2, ACTUAL = A2 ,$

Los valores de los campos F1 y F3 pueden incluir algunos espacios en blanco finales, mientras que los de F2 pueden presentar ceros iniciales. Cuando utilice el grupo en una consulta, debe tener en cuenta cada posición. Puesto que FIELD2 se trata de un campo numérico, no puede especificar los criterios de IF, como se indica a continuación:

IF GRPB EQ 'A 0334BB'

Para eliminar este error, use una barra diagonal (/) para separar los componentes de la clave de grupo:

IF GRPB EQ 'A/334/BB'

Nota: Cuando sea necesario, los espacios en blanco y ceros iniciales se darán por sentado para completar la clave.


Principio de página

x
Cómo describir un campo de grupo como un conjunto de elementos

Cómo:

Referencia:

Las declaraciones GROUP de los archivos máster sirven para describir varios campos como si trataran de una sola entidad. Uno de los usos del grupo es el de describir las claves de grupos en un origen de datos VSAM. Algunas veces, refiriéndose a varios campos mediante un nombre de campo, para facilitar la generación de informes.

Normalmente, para describir un campo de GROUP, tenía que tener en cuenta el hecho de que, mientras los formatos USAGE y ACTUAL del campo GROUP son alfanuméricos, la porción de longitud del formato USAGE para el grupo debe calcularse como la suma de las longitudes componentes, donde cada campo de número entero o precisión simple equivale a 4 bytes, cada campo de doble precisión es igual a 8 bytes y cada campo de decimal empaquetado se cuenta como si tuviese 8 o 16 bytes, dependiendo del tamaño.

Para no tener que calcular estas longitudes, puede utilizar la opción GROUP ELEMENTS, que describe el grupo como un conjunto de elementos, sin los formatos USAGE y ACTUAL.



x
Sintaxis: Cómo Describir un campo de GROUP como un conjunto de elementos
GROUP=group1, ALIAS=g1alias,ELEMENTS=n1,$
   FIELDNAME=field11, ALIAS=alias11, USAGE=ufmt11, ACTUAL=afmt11, $
   .
   .
   .
   FIELDNAME=field1h, ALIAS=alias1h, USAGE=ufmt1h, ACTUAL=afmt1h, $
GROUP=group2,ALIAS=g2alias,ELEMENTS=n2,$
   FIELDNAME=field21, ALIAS=alias21, USAGE=ufmt21, ACTUAL=afmt21, $
   .
   .
   .
   FIELDNAME=field2k, ALIAS=alias2k, USAGE=ufmt2k, ACTUAL=afmt2k, $

donde:

group1, group2

Son nombres válidos asignados a un grupo de campos. Las reglas para nombres de grupos aceptables son las mismas que para los de los campos.

n1, n2

Son los números de los elementos (campos o grupos) que componen el grupo. Si un grupo está definido dentro de otro grupo, el subgrupo (con todos sus elementos) cuenta como un elemento más del grupo principal.

field11, field2k

Son nombres de campos válidos.

alias11, alias2k

Son nombres de alias válidos.

ufmt11, ufmt2k

Son formatos de USAGE para cada campo.

afmt11, afmt2k

Son formatos de ACTUAL para cada campo.



x
Referencia: Notas de uso de los elementos de grupos


Ejemplo: Cómo declarar un GROUP con ELEMENTS

En el siguiente archivo máster, GRP2 consta de dos elementos, los campos FIELDA y FIELDB. GRP1 consta de dos elementos, GRP2 y el campo FIELDC. El campo FIELDD no forma parte de un grupo:

FILENAME=XYZ     , SUFFIX=FIX     , $
  SEGMENT=XYZ, SEGTYPE=S2, $
GROUP=GRP1,ALIAS=CCR,ELEMENTS=2,$
   GROUP=GRP2,ALIAS=CC,ELEMENTS=2,$
    FIELDNAME=FIELDA, ALIAS=E01, USAGE=A10, ACTUAL=A10, $
    FIELDNAME=FIELDB, ALIAS=E02, USAGE=A16, ACTUAL=A16, $
    FIELDNAME=FIELDC, ALIAS=E03, USAGE=P27, ACTUAL=A07, $
    FIELDNAME=FIELDD, ALIAS=E04, USAGE=D7, ACTUAL=A07, $

El siguiente diagrama muestra los desplazamientos y formatos de estos campos.

Número de campo

Nombre de campo

Desplazamiento

USAGE

ACTUAL

1

GRP1

0

A42 - Admite 16 caracteres para FIELDC (P27)

A33

2

GRP2

0

A26

A26

3

FIELDA

0

A10

A10

4

FIELDB

10

A16

A16

5

FIELDC

26

P27

A7

6

FIELDD

42

D7

A7

Tenga en cuenta que las características de visualización del grupo no han cambiado. El grupo GRP1, de formato mixto, sigue apareciendo como alfanumérico.


WebFOCUS