Cómo describir múltiples tipos de registros

En esta sección:

Los órigenes de datos secuenciales, VSAM e ISAM puede contener más de un tipo de registro. En este caso, pueden estructurarse de dos formas:

Para poder describir los orígenes de datos secuenciales, con distintos tipos de registros, independientemente de que estén relacionados de forma lógica, emplee el atributo de segmento PARENT y el atributo de campo RECTYPE. Los orígenes de datos secuenciales complejos se describen como estructuras de múltiples segmentos.

Los orígenes de datos VSAM con secuencia de claves y e ISAM complejos también utilizan el atributo RECTYPE para diferenciar los distintos tipos de registros del origen de datos.

El principal no siempre comparte su RECTYPE con sus descendientes. Puede compartir otra información de identificación, como el PUBNO del ejemplo. Este campo debe estar incluido en la clave principal, junto con todas las claves descendientes, para poder relacionarlas.

Cuando el atributo RECTYPE se utiliza en orígenes de datos VSAM o ISAM con claves de grupos, el campo RECTYPE puede formar parte de la clave del grupo de segmentos sólo si pertenece a un segmento sin descendientes, o uno cuyos descendientes estén descritos en un atributo OCCURS. En Cómo describir registros VSAM relacionados por posición, el campo RECTYPE se añade a la clave de grupo en el segmento SERIANO, que es el segmento descendiente más bajo de la cadena.


Principio de página

x
Cómo describir un campo RECTYPE

Cómo:

Cuando un origen de datos contiene múltiples tipos de registros, debe haber un campo en los registros que pueda usarse para diferenciar los tipos. Puede consultar información sobre este campo en la descripción existente de su origen de datos (por ejemplo, una declaración COBOL FD). Este campo debe estar en la misma ubicación física en cada registro. Por ejemplo, las columnas 79 y 80 pueden tener un código de dos dígitos diferente para cada tipo de registro único. Describa este campo identificativo con el nombre de campo RECTYPE.

Otra técnica para redefinir las partes de un registro es la de utilizar los atributos MAPFIELD y MAPVALUE, descritos en Cómo describir un grupo repetido mediante MAPFIELD.



x
Sintaxis: Cómo Especificar un campo de tipo de registro

El campo RECTYPE debe encontrarse en la misma ubicación física dentro de cada registro del origen de datos; de lo contrario se ignorará. La sintaxis para describir el campo RECTYPE es

FIELDNAME = RECTYPE, ALIAS = value, USAGE = format, ACTUAL = format,
ACCEPT = {list|range} ,$

donde:

value

Es el tipo de registro en formato alfanumérico, si no se ha especificado una lista ACCEPT. Si hay una lista ACCEPT, puede tratarse de cualquier valor.

format

Es el tipo de datos del campo. Además de los campos RECTYPE en formato alfanumérico, también son compatibles los campos RECTYPE en formato empaquetado o de número entero (formatos P e I). Los valores posibles son:

An (donde n es 1-4095) indica datos de caracteres, incluyendo letras, dígitos y otros caracteres.

In indica números enteros binarios en formato ACTUAL (interno):

  • I1 = número entero binario de un byte.
  • I2 = número entero binario de media palabra (2 bytes).
  • I4 = número entero binario de palabra completa (4 bytes).

El formato USAGE puede variar entre I1 e I9, en función de la magnitud del formato ACTUAL.

Pn (donde n es 1-16) indica el formato ACTUAL (interno) de decimal empaquetado. n es el número de bytes, cada uno con dos dígitos, excepto el último, que contiene un dígito y el signo. Por ejemplo, P6 significa 11 dígitos más un signo.

Si el campo contiene un punto decimal asumido, represente el campo con un formato USAGE de Pm.n, donde m es el número total de dígitos, y n, el número de posiciones decimales. Por tanto, P11.1 significa a un número de once dígitos con una posición decimal.

list

Es una lista de una o varias líneas con los valores específicos de RECTYPE, para los registros que presentan el mismo diseño de segmento. El número máximo de caracteres permitido en la lista es de 255. Separe cada elemento de la lista mediante un espacio en blanco o la palabra clave OR. Si la lista incluye espacios en blanco y comas insertados, debe ir colocada entre comillas simples. La lista puede incluir un único valor de RECTYPE. Por ejemplo:

FIELDNAME = RECTYPE, ALIAS = TYPEABC, USAGE = A1,ACTUAL = A1, 
 ACCEPT = A OR B OR C, $
range

Es un rango o intervalo de una o varias líneas con los valores específicos de RECTYPE, para los registros que presentan el mismo diseño de segmento. El número máximo de caracteres permitido en el rango es de 255. Si el rango incluye espacios en blanco y comas insertados, debe ir colocado entre comillas simples.

Para especificar un rango de valores, incluya el valor más bajo, la palabra clave TO y el valor más alto, en este orden. Por ejemplo:

FIELDNAME = RECTYPE, ALIAS = ACCTREC, USAGE = P3,ACTUAL = P2, 
 ACCEPT = 100 TO 200, $


Ejemplo: Cómo especificar el campo RECTYPE

La siguiente descripción de campo pertenece a un RECTYPE empaquetado de un byte, que contiene el valor 1:

FIELD = RECTYPE, ALIAS = 1, USAGE = P1, ACTUAL = P1, $

La siguiente descripción de campo pertenece a un RECTYPE empaquetado de tres bytes, que contiene el valor A34:

FIELD = RECTYPE, ALIAS = A34, USAGE = A3, ACTUAL = A3,$

Principio de página

x
Cómo describir registros relacionados por posición

El siguiente diagrama muestra una versión más compleja del origen de datos de biblioteca:

La información compartida por todas las copias de un determinado libro (el número de identificación, nombre del autor y título) tienen el mismo tipo de registro. Toda esta información se asigna al segmento raíz en el archivo máster. La sinopsis es un elemento común a todas las copias de un libro, aunque en el origen de datos aparece descrita como una serie de campos repetidos con diez caracteres cada uno, para ahorrar espacio.

La sinopsis se asigna a su propio segmento subordinado con un atributo de OCCURS=VARIABLE, en el archivo máster. Aunque el diagrama presenta segmentos a la derecha del segmento OCCURS=VARIABLE, éste se encuentra a la derecha del todo dentro de su propio tipo de registro. Sólo los segmentos que tengan un RECTYPE distinto al del segmento OCCURS=VARIABLE pueden aparecer a su derecha en la estructura. Además, observe que el segmento OCCURS=VARIABLE no presenta un RECTYPE. Esto se debe a que forma parte del mismo registro que su segmento principal.

La encuadernación y el precio pueden variar de una copia a otra. Por ejemplo, la biblioteca puede tener dos versiones distintas de Pamela, una con la cubierta blanda y un precio de $7.95, la otra, de cubierta dura, a $15.50. Estos dos campos pertenecen a un segundo tipo de registro y están asignados a un segmento descendiente en el archivo máster.

Finalmente, cada copia del libro en la biblioteca cuenta con su propio número de serie identificativo, que aparece descrito en un campo con un tipo de registro S. En el archivo máster, esta información está asignada a un segmento secundario del segmento que contiene la información de encuadernación y precio.

Emplee el siguiente archivo máster para describir este origen de datos:

FILENAME = LIBRARY2, SUFFIX = FIX,$
 SEGNAME = PUBINFO, SEGTYPE = S0,$
  FIELDNAME = RECTYPE  ,ALIAS = P     ,USAGE = A1    ,ACTUAL = A1  ,$
  FIELDNAME = PUBNO    ,ALIAS = PN    ,USAGE = A10   ,ACTUAL = A10 ,$
  FIELDNAME = AUTHOR   ,ALIAS = AT    ,USAGE = A25   ,ACTUAL = A25 ,$
  FIELDNAME = TITLE    ,ALIAS = TL    ,USAGE = A50   ,ACTUAL = A50 ,$
 SEGNAME = SYNOPSIS, PARENT = PUBINFO,  OCCURS = VARIABLE, SEGTYPE = S0,$
  FIELDNAME = PLOTLINE ,ALIAS = PLOTL ,USAGE = A10   ,ACTUAL = A10 ,$
 SEGNAME = BOOKINFO, PARENT = PUBINFO,  SEGTYPE = S0,$
  FIELDNAME = RECTYPE  ,ALIAS = B     ,USAGE = A1    ,ACTUAL = A1  ,$
  FIELDNAME = BINDING  ,ALIAS = BI    ,USAGE = A1    ,ACTUAL = A1  ,$
  FIELDNAME = PRICE    ,ALIAS = PR    ,USAGE = D8.2N ,ACTUAL = D8  ,$
 SEGNAME = SERIANO,  PARENT = BOOKINFO, SEGTYPE = S0,$
  FIELDNAME = RECTYPE  ,ALIAS = S     ,USAGE = A1    ,ACTUAL = A1  ,$
  FIELDNAME = SERIAL   ,ALIAS = SN    ,USAGE = A15   ,ACTUAL = A15 ,$

Tenga en cuenta que cada segmento, excepto OCCURS, contiene un campo llamado RECTYPE y que el ALIAS del campo incluye un valor único por cada segmento (P, B y S). Si existe un registro en este origen de datos con un RECTYPE que no sea P, B o S, se ignora el registro. El campo RECTYPE debe encontrarse en la misma ubicación física dentro de cada registro del origen de datos.


Principio de página

x
Ordenación de los registros en el origen de datos

El orden físico determina las relaciones de principal-secundario en los registros secuenciales. No todos los registros principales requieren descendientes. Especifique el modo en que desea manipular los datos de copias de segmentos no disponibles, presentes en sus informes, utilizando el comando SET para modificar el parámetro ALL. El comando SET aparece descrito en el manual Cómo desarrollar aplicaciones de informes .

En el ejemplo que aparece en Cómo describir registros relacionados por posición, si el primer registro del origen de datos no es de tipo PUBINFO, se le considerará un secundario sin principal. Cualquier información asignada al segmento SYNOPSIS aparece en el registro PUBINFO. El siguiente registro puede tratarse de un BOOKINFO o, incluso, de otro PUBINFO (se da por sentado que el primer PUBINFO no tienen descendientes). Se da por supuesto que los registros SERIANO son descendientes del registro BOOKINFO anterior. Si hay un SERIANO situado a continuación de un registro PUBINFO, sin que intervenga un BOOKINFO, se le trata como si no tuviese un principal.



Ejemplo: Cómo describir registros VSAM relacionados por posición

Examine el siguiente origen de datos VSAM con tres tipos de registros. Los registros ROOT tienen una clave compuesta por el número de editor, PUBNO. El segmento BOOKINFO tiene una clave compuesta por el mismo número de editor más un indicador de cubierta dura o blanda, BINDING. La clave del segmento SERIANO consta de los dos primeros elementos más un campo de tipo de registro, RECTYPE.

FILENAME = LIBRARY6, SUFFIX = VSAM,$
 SEGNAME = ROOT, SEGTYPE = S0,$
  GROUP=PUBKEY        ,ALIAS=KEY   ,USAGE=A10   ,ACTUAL=A10  ,$
   FIELDNAME=PUBNO    ,ALIAS=PN    ,USAGE=A10   ,ACTUAL=A10  ,$
  FIELDNAME=FILLER    ,ALIAS=      ,USAGE=A1    ,ACTUAL=A1   ,$
  FIELDNAME=RECTYPE   ,ALIAS=1     ,USAGE=A1    ,ACTUAL=A1   ,$
  FIELDNAME=AUTHOR    ,ALIAS=AT    ,USAGE=A25   ,ACTUAL=A25  ,$
  FIELDNAME=TITLE     ,ALIAS=TL    ,USAGE=A50   ,ACTUAL=A50  ,$
 SEGNAME=BOOKINFO,PARENT=ROOT,   SEGTYPE=S0,$
  GROUP=BOINKEY       ,ALIAS=KEY   ,USAGE=A11   ,ACTUAL=A11  ,$
   FIELDNAME=PUBNO1   ,ALIAS=P1    ,USAGE=A10   ,ACTUAL=A10  ,$
   FIELDNAME=BINDING  ,ALIAS=BI    ,USAGE=A1    ,ACTUAL=A1   ,$
  FIELDNAME=RECTYPE   ,ALIAS=2     ,USAGE=A1    ,ACTUAL=A1   ,$
  FIELDNAME=PRICE     ,ALIAS=PR    ,USAGE=D8.2N ,ACTUAL=D8   ,$
 SEGNAME=SERIANO, PARENT=BOOKINFO,SEGTYPE=S0,$
  GROUP=SERIKEY       ,ALIAS=KEY   ,USAGE=A12   ,ACTUAL=A12  ,$
   FIELDNAME=PUBNO2   ,ALIAS=P2    ,USAGE=A10   ,ACTUAL=A10  ,$
   FIELDNAME=BINDING1 ,ALIAS=B1    ,USAGE=A1    ,ACTUAL=A1   ,$
   FIELDNAME=RECTYPE  ,ALIAS=3     ,USAGE=A1    ,ACTUAL=A1   ,$
  FIELDNAME=SERIAL    ,ALIAS=SN    ,USAGE=A15   ,ACTUAL=A15  ,$
 SEGNAME=SYNOPSIS,PARENT=ROOT,    SEGTYPE=S0, OCCURS=VARIABLE,$
  FIELDNAME=PLOTLINE  ,ALIAS=PLOTL ,USAGE=A10   ,ACTUAL=A10  ,$

Tenga en cuenta que la longitud de los campos clave especificada en los atributos USAGE y ACTUAL de una declaración de GROUP es la de los campos clave de los segmentos principales, más la longitud del campo añadido, perteneciente al segmento secundario (campo RECTYPE). En el ejemplo anterior, la longitud de la clave GROUP, SERIKEY, es igual a la de PUBNO2 y BINDING1, la clave de grupo del segmento principal, más la longitud de RECTYPE, que es el campo añadido a la clave de grupo en el segmento secundario. La longitud de la clave aumenta según se vaya avanzando por la estructura.

Nota: Cada clave de segmento describe la parte de la clave actual necesaria para hallar la próxima copia de dicho segmento.

En el origen de datos de ejemplo, la repetición del número de editor, que aparece como PUBNO1 y PUBNO2 en los segmentos descendientes, interrelaciona los tres tipos de registros.

El origen de datos se puede representar con la siguiente estructura:

Una consulta típica consiste en solicitar información sobre el precio y los números de catálogo de un número de editor específico:

PRINT PRICE AND SERIAL BY PUBNO
IF PUBNO EQ 1234567890 OR 9876054321

Puesto que PUBNO forma parte de la clave, la recuperación es rápida y el procesamiento continúa. Para aumentar más aún la velocidad de recuperación, añada criterios de búsqueda basados en el campo BINDING, que también pertenece a la clave.


Principio de página

x
Cómo describir registros no relacionados

Algunos orígenes de datos VSAM e ISAM no tienen registros relacionados entre sí. Es decir, que la clave VSAM o ISAM de un tipo de registro es independiente de las claves de otros tipos de registros. Para describir orígenes de datos con registros no relacionados, se define un segmento raíz ficiticio para estos registros. Estas son las reglas para el segmento raíz ficticio:

El resto de los segmentos que no se repiten deben apuntar hacia el segmento raíz como su segmento principal. A excepción de la raíz, todos los segmentos que no se repiten deben tener un RECTYPE y un atributo PARENT, además de describir la totalidad de la clave VSAM/ISAM. Si el origen de datos no tiene clave, no se debe describir el grupo. Los RECTYPE pueden estar situados en cualquier lugar del registro.



Ejemplo: Cómo describir registros no relacionados utilizando un segmento raíz ficticio

El origen de datos de biblioteca tiene tres tipos de registros: información sobre libros, información sobre revistas e información sobre periódicos. Puesto que estos tres tipos de registros no tienen nada en común, no pueden ser descritos como registros principales seguidos de registros detallados.

El origen de datos podría tener el siguiente aspecto:

Una estructura como la siguiente también podría describir este origen de datos:

El archivo máster de la estructura del ejemplo es:

FILENAME = LIBRARY3, SUFFIX = FIX,$
 SEGMENT = DUMMY, SEGTYPE = S0,$
  FIELDNAME=           ,ALIAS=     ,USAGE = A1    ,ACTUAL = A1   ,$
 SEGMENT = BOOK, PARENT = DUMMY, SEGTYPE = S0,$
  FIELDNAME = RECTYPE  ,ALIAS = B  ,USAGE = A1    ,ACTUAL = A1   ,$
  FIELDNAME = PUBNO    ,ALIAS = PN ,USAGE = A10   ,ACTUAL = A10  ,$
  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 ,$
 SEGMENT = MAGAZINE, PARENT = DUMMY, SEGTYPE = S0,$
  FIELDNAME = RECTYPE  ,ALIAS = M  ,USAGE = A1    ,ACTUAL = A1   ,$
  FIELDNAME = PER_NO   ,ALIAS = PN ,USAGE = A10   ,ACTUAL = A10  ,$
  FIELDNAME = PER_NAME ,ALIAS = NA ,USAGE = A50   ,ACTUAL = A50  ,$
  FIELDNAME = VOL_NO   ,ALIAS = VN ,USAGE = I2    ,ACTUAL = I2   ,$
  FIELDNAME = ISSUE_NO ,ALIAS = IN ,USAGE = I2    ,ACTUAL = I2   ,$
  FIELDNAME = PER_DATE ,ALIAS = DT ,USAGE = I6MDY ,ACTUAL = I6   ,$
 SEGMENT = NEWSPAP, PARENT = DUMMY, SEGTYPE = S0,$
  FIELDNAME = RECTYPE  ,ALIAS = N  ,USAGE = A1    ,ACTUAL = A1   ,$
  FIELDNAME = NEW_NAME ,ALIAS = NN ,USAGE = A50   ,ACTUAL = A50  ,$
  FIELDNAME = NEW_DATE ,ALIAS = ND ,USAGE = I6MDY ,ACTUAL = I6   ,$
  FIELDNAME = NVOL_NO  ,ALIAS = NV ,USAGE = I2    ,ACTUAL = I2   ,$
  FIELDNAME = ISSUE    ,ALIAS = NI ,USAGE = I2    ,ACTUAL = I2   ,$


Ejemplo: Cómo describir un origen de datos VSAM con registros no relacionados

Imagine otro origen de datos VSAM con información sobre la biblioteca. Este origen de datos tiene tres tipos de registros: información sobre libros, información sobre revistas e información sobre periódicos.

Hay dos estructuras posibles:

El RECTYPE supone el principio de la clave. La estructura de la clave es:

RECTYPE B

Código del libro

RECTYPE M

Código de la revista

RECTYPE N

Código del periódico

La secuencia de registros es:

Libro

Libro

Revista

Revista

Periódico

Periódico

Observe la diferencia entre el uso de RECTYPE que se hace aquí y su uso cuando los registros están relacionados por posición. En este caso, los códigos no están relacionados y el diseñador de bases de datos ha decidido acumular los registros primero por tipo (juntando toda la información sobre los libros, las revistas y los periódicos), para que RECTYPE pueda estar al principio de la clave.

El RECTYPE no está al principio de la clave ni fuera de ella.

La estructura de la clave es:

Código del libro

Código de la revista

Código del periódico

La secuencia de tipos de registros en la clave puede ser arbitraria.

Puede representar ambos tipos de estructura de archivos mediante lo siguiente:



Ejemplo: Cómo describir una clave y un tipo de registros para un origen de datos VSAM con registros no relacionados
FILE=LIBRARY7, SUFFIX=VSAM,$
 SEGMENT=DUMMY,$
  FIELDNAME=         ,ALIAS=    ,USAGE=A1    ,ACTUAL=A1   ,$
 SEGMENT=BOOK,     PARENT=DUMMY,SEGTYPE=S0,$
  GROUP=BOOKKEY      ,ALIAS=KEY ,USAGE=A11   ,ACTUAL=A11  ,$
   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=RECTYPE ,ALIAS=B   ,USAGE=A1    ,ACTUAL=A1   ,$
  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 ,$
 SEGMENT=MAGAZINE, PARENT=DUMMY, SEGTYPE=S0,$
  GROUP=MAGKEY       ,ALIAS=KEY ,USAGE=A11   ,ACTUAL=A11  ,$
   FIELDNAME=VOLNO   ,ALIAS=VN  ,USAGE=A2    ,ACTUAL=A2   ,$
   FIELDNAME=ISSUNO  ,ALIAS=IN  ,USAGE=A2    ,ACTUAL=A2   ,$
   FIELDNAME=PERDAT  ,ALIAS=DT  ,USAGE=A6    ,ACTUAL=A6   ,$
   FIELDNAME=RECTYPE ,ALIAS=M   ,USAGE=A1    ,ACTUAL=A1   ,$
  FIELDNAME=PER_NAME ,ALIAS=PRN ,USAGE=A50   ,ACTUAL=A50  ,$
 SEGMENT=NEWSPAP,  PARENT=DUMMY, SEGTYPE=S0,$
  GROUP=NEWSKEY      ,ALIAS=KEY ,USAGE=A11   ,ACTUAL=A11  ,$
   FIELDNAME=NEWDAT  ,ALIAS=ND  ,USAGE=A6    ,ACTUAL=A6   ,$
   FIELDNAME=NVOLNO  ,ALIAS=NV  ,USAGE=A2    ,ACTUAL=A2   ,$
   FIELDNAME=NISSUE  ,ALIAS=NI  ,USAGE=A2    ,ACTUAL=A2   ,$
   FIELDNAME=RECTYPE ,ALIAS=N   ,USAGE=A1    ,ACTUAL=A1   ,$
  FIELDNAME=NEWNAME  ,ALIAS=NN  ,USAGE=A50   ,ACTUAL=A50  ,$

Principio de página

x
Cómo usar un tipo de registro no generalizado

Cómo:

Si su origen de datos secuencial de formato fijo, VSAM o ISAM tiene varios tipos de registros, que comparten el mismo diseño, puede especificar un único segmento generalizado que describa todos los tipos de registros en el diseño común. El uso de un segmento generalizado (también denominado RECTYPE generalizado) en lugar de un segmento por cada tipo de registro, supone reducir el número de segmentos que debe describir en el archivo máster.

Cuando se utiliza un segmento generalizado, los valores de RECTYPE se identifican con el atributo ACCEPT. Puede asignar cualquier valor al atributo ALIAS.



x
Sintaxis: Cómo Especificar un tipo de registro de generalizado
FIELDNAME = RECTYPE, ALIAS = alias, USAGE = format, ACTUAL = format, 
ACCEPT = {list|range} ,$

donde:

RECTYPE

Es el nombre de campo obligatorio.

Nota: Como el nombre del campo, RECTYPE, puede no ser único en los distintos segmentos, no debería utilizarlo de esta forma a menos que lo cualifique. El alias no es obligatorio. Puede dejarlo en blanco.

alias

Es cualquier especificación de alias válida. Puede especificar un nombre único como valor de alias para el campo RECTYPE sólo si está usando el atributo ACCEPT. Esto permite usar el alias como campo de visualización o clasificación y en pruebas de selección, mediante WHERE o IF, de una solicitud de TABLE.

list

Es una lista de una o varias líneas con los valores específicos de RECTYPE, para los registros que presentan el mismo diseño de segmento. El número máximo de caracteres permitido en la lista es de 255. Cada elemento de la lista debe estar separado por un espacio en blanco o por la palabra clave OR. Si la lista incluye espacios en blanco y comas insertados, debe ir colocada entre comillas simples. La lista puede incluir un único valor de RECTYPE. Por ejemplo:

FIELDNAME = RECTYPE, ALIAS = TYPEABC, USAGE = A1,ACTUAL = A1, 
ACCEPT = A OR B OR C, $
range

Es un rango o intervalo de una o varias líneas con los valores específicos de RECTYPE, para los registros que presentan el mismo diseño de segmento. El número máximo de caracteres permitido en el rango es de 255. Si el rango incluye espacios en blanco y comas insertados, debe ir colocado entre comillas simples.

Para especificar un rango de valores, incluya el valor más bajo, la palabra clave TO y el valor más alto, en este orden. Por ejemplo:

FIELDNAME = RECTYPE, ALIAS = ACCTREC, USAGE = P3,ACTUAL = P2, 
ACCEPT = 100 TO 200, $


Ejemplo: Cómo usar un tipo de registro no generalizado

Para explicar el uso del tipo de registro generalizado en un archivo máster VSAM, consulte los siguientes diseños de registros en el origen de datos DOC. El registro de tipo DN es el segmento raíz y contiene el número y título del documento. Los registros de tipo M, I y C contienen información sobre los manuales, guías de instalación y de cursos, respectivamente. Observe que los registro de tipo M e I tienen el mismo diseño.

Tipo de registro DN:

---KEY---
+-----------------------------------------------------------------------+
DOCID   FILLER            RECTYPE     TITLE
+-----------------------------------------------------------------------+

Tipo de registro M:

--------KEY--------
+-----------------------------------------------------------------------+
MDOCID   MDATE            RECTYPE     MRELEASE          MPAGES     FILLER
+-----------------------------------------------------------------------+

Tipo de registro I:

--------KEY--------
+-----------------------------------------------------------------------+
IDOCID   IDATE            RECTYPE     IRELEASE          IPAGES     FILLER
+-----------------------------------------------------------------------+

Tipo de registro C:

--------KEY--------
+-----------------------------------------------------------------------+
CRSEDOC   CDATE           RECTYPE     COURSENUM  LEVEL  CPAGES     FILLER
+-----------------------------------------------------------------------+

Sin el atributo ACCEPT cada uno de los cuatro tipos de registro debe aparecer descrito como un segmento independiente en el archivo máster. Se debe proporcionar un conjunto único de nombres de campos para los registros de tipo M e I, aunque éstos tengan el mismo diseño.

La capacidad de RECTYPE generalizado permite codificar un solo conjunto de nombres de campos para el diseño de registros de tipo M e I. Puede emplear el atributo ACCEPT para la especificación de RECTYPE, incluso cuando sólo existe un valor aceptable.

FILENAME=DOC2, SUFFIX=VSAM,$
SEGNAME=ROOT, SEGTYPE=SO,$
 GROUP=DOCNUM,    ALIAS=KEY,       A5,  A5,  $
  FIELD=DOCID,    ALIAS=SEQNUM,    A5,  A5,  $
 FIELD=FILLER,    ALIAS,=          A5,  A5,  $
 FIELD=RECTYPE,   ALIAS=DOCRECORD, A3,  A3,  ACCEPT = DN,$
 FIELD=TITLE,     ALIAS=,          A18, A18, $
SEGNAME=MANUALS, PARENT=ROOT, SEGTYPE=SO,$
 GROUP=MDOCNUM,   ALIAS=KEY, A10, A10,$
  FIELD=MDOCID,   ALIAS=MSEQNUM,   A5,  A5,  $
  FIELD=MDATE,    ALIAS=MPUBDATE,  A5,  A5,  $
 FIELD=RECTYPE,   ALIAS=MANUAL,    A3,  A3,  ACCEPT = M OR I,$
 FIELD=MRELEASE,  ALIAS=,          A7,  A7,  $
 FIELD=MPAGES,    ALIAS=,          I5,  A5,  $
 FIELD=FILLER,    ALIAS=,          A6,  A6,  $
SEGNAME=COURSES, PARENT=ROOT, SEGTYPE=SO,$
 GROUP=CRSEDOC,   ALIAS=KEY, A10, A10,$
  FIELD=CDOCID,   ALIAS=CSEQNUM,   A5,  A5,  $
  FIELD=CDATE,    ALIAS=CPUBDATE,  A5,  A5,  $
 FIELD=RECTYPE,   ALIAS=COURSE,    A3,  A3,  ACCEPT = C,$
 FIELD=COURSENUM, ALIAS=CNUM,      A4,  A4,  $
 FIELD=LEVEL,     ALIAS=,          A2,  A2,  $
 FIELD=CPAGES,    ALIAS=,          I5,  A5,  $
 FIELD=FILLER,    ALIAS=,          A7,  A7,  $

Principio de página

x
Cómo usar un ALIAS en una solicitud de informe

Puede incluir un alias para el campo RECTYPE si utiliza el atributo ACCEPT para especificar uno o varios valores de RECTYPE en el archivo máster. Esto permite usar el alias como campo de visualización o clasificación y en en pruebas de selección, mediante WHERE o IF, de una solicitud de informe.



Ejemplo: Cómo usar un valor de RECTYPE en un comando de visualización

Presente los valores de RECTYPE incluyendo el alias como campo de visualización. En este ejemplo, el alias MANUAL muestra los valores M e I de RECTYPE:

TABLE FILE DOC
PRINT MANUAL MRELEASE MPAGES
BY DOCID BY TITLE BY MDATE
END

La salida es:

PAGE 1
 
DOCID    TITLE                MDATE   RECTYPE   MRELEASE   MPAGES
-----    -----                -----   -------   --------   ------
40001    FOCUS USERS MANUAL   8601    M         5.0        1800
                              8708    M         5.5        2000
40057    MVS INSTALL GUIDE    8806    I         5.5.3        66
                              8808    I         5.5.4        66
40114    zOS INSTALL GUIDE    8806    I         5.5.3        58
                              8808    I         5.5.4        58


Ejemplo: Cómo usar un valor de RECTYPE en una prueba de WHERE

Puede utilizar el alias en una prueba de WHERE para mostrar un subconjunto de registros:

TABLE FILE DOC
PRINT MANUAL MRELEASE MPAGES
BY DOCID BY TITLE BY MDATE
WHERE MANUAL EQ 'I'
END

La salida es:

PAGE 1
 
DOCID    TITLE                MDATE   RECTYPE   MRELEASE   MPAGES
-----    -----                -----   -------   --------   ------
40057    MVS INSTALL  GUIDE   8806    I         5.5.3          66
                              8808    I         5.5.4          66
40114    zOS INSTALL GUIDE    8806    I         5.5.3          58
                              8808    I         5.5.4          58

WebFOCUS