Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SC10-9424-00
IBM
AS/400
COBOL/400 Gua del usuario
Versin 3 Release 1.0
SC10-9424-00
Nota!
Antes de utilizar esta informacin y el producto al que le da soporte, asegrese de leer la informacin general que
aparece en el apartado Avisos en la pgina ix.
Contenido
Avisos . . . . . . . . . . . . . . . . . . . . . . . . .
Informacin acerca de la Interfaz de Programacin
Marcas Registradas y Marcas de Servicio . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
xi
xi
xiii
1
1
2
2
3
5
5
6
. . . . .
9
9
11
15
15
16
29
29
30
32
33
38
39
40
40
53
54
. . . . .
. . . . . .
. . . . . . . . .
. . . . . . . .
. . . .
. . . . .
ix
ix
x
. . . .
57
58
59
60
65
65
66
66
68
69
69
. . . . . . . . .
71
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . .
iii
iv
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
71
71
72
73
75
75
76
78
79
79
83
84
85
86
. . .
93
93
95
95
96
97
97
98
99
99
107
108
109
110
110
112
118
121
121
127
137
139
140
141
143
145
145
145
145
146
149
149
150
150
150
151
152
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
Captulo 10. Archivos DISK y DATABASE
Archivos DATABASE frente a Archivo DISK . . . . . . . . . . . . . . . . .
Mtodos de Proceso para Archivos DISK y DATABASE
. . . . . . . . .
Archivos Indexados COBOL . . . . . . . . . . . . . . . . . . . . . . . . . .
Referencia a una Clave Parcial . . . . . . . . . . . . . . . . . . . . . . . .
Consideraciones Sobre Archivos Lgicos . . . . . . . . . . . . . . . . . .
Archivos Relativos COBOL
. . . . . . . . . . . . . . . . . . . . . . . . . .
Archivos Secuenciales COBOL . . . . . . . . . . . . . . . . . . . . . . . .
Consideraciones sobre la Organizacin de Archivos COBOL y la Va de
. . . . . . . . . . . . . . . . . . . . . . . . .
Acceso del Archivo AS/400
Mtodos de Proceso de Archivos
. . . . . . . . . . . . . . . . . . . . . . . .
Consideraciones sobre el Archivo Descendente . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
. . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
Contenido
153
153
154
164
166
170
180
180
184
184
185
185
185
186
187
188
189
189
190
192
201
203
209
210
210
216
227
243
243
243
244
251
251
251
251
253
257
260
261
262
262
265
267
267
268
270
274
275
276
277
Deseditar
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ejemplos de Deseditar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Manejo de Errores de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . .
Consideraciones acerca del Rendimiento . . . . . . . . . . . . . . . . . . . . .
Clusulas PICTURE para tems Numricos . . . . . . . . . . . . . . . . . .
tems Binarios de Ocho Bytes . . . . . . . . . . . . . . . . . . . . . . . . . .
Segmentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Llamadas a un Programa COBOL desde un Programa que no es COBOL
Depuracin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Opcin *NORANGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Opcin *DUPKEYCHK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Archivos Relativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Indicadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Control de Compromiso
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lectura sin Bloqueos de Registros . . . . . . . . . . . . . . . . . . . . . . .
Inicializacin de Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bloqueo de Registros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bucles en un Programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Rastreo de un Bucle en un Programa . . . . . . . . . . . . . . . . . . . . .
Errores que Pueden Causar un Bucle . . . . . . . . . . . . . . . . . . . . .
277
278
279
280
280
281
281
281
282
282
282
282
282
283
283
283
283
283
284
284
285
285
286
286
291
291
291
293
293
294
295
296
297
298
299
299
300
300
301
303
305
316
319
319
320
321
vi
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
.
. .
. .
. .
. .
. .
. .
. .
. .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
323
323
323
324
325
325
SegmentacinConsideraciones Especiales
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. .
. .
. .
. .
. .
. .
. .
. .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
329
329
329
330
332
335
337
339
339
340
341
343
343
343
345
345
346
347
349
351
351
355
355
359
359
360
361
367
368
368
369
369
. . . . . . . . . .
371
371
373
376
378
382
384
386
389
. . . . . . . . . . .
393
326
. . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
Contenido
vii
Bibliografa
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Glosario de Abreviaturas
ndice
viii
405
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
407
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
411
Avisos
|
|
|
|
IBM puede tener patentes o solicitudes de patentes pendientes que cubren el tema
tratado en este documento. El hecho de que est en posesin de este documento
no le otorga ninguna licencia sobre dichas patentes. Puede enviar las solicitudes
de licencia, por escrito, al IBM Director of Licensing, IBM Corporation, 208 Harbor
Drive, Stamford, Connecticut, USA 06904-2501
Los cambios relevantes o las actualizaciones en el texto vienen indicadas mediante
una lnea horizontal (|) a la izquierda del cambio o adicin en cuestin.
Esta publicacin contiene ejemplos de datos e informes utilizados en operaciones
de gestin ordinarias. Para ilustrarlos de la forma ms completa posible, los ejemplos incluyen nombres de personas, empresas, marcas y productos. Todos estos
nombres son ficticios y cualquier parecido con los nombres y direcciones que
utilice una empresa de gestin real es pura coincidencia.
ix
Application System/400
AS/400
CICS/400
COBOL/400
IBM
ILE
Operating System/2
Operating System/400
OS/2
OS/400
RPG/400
SAA
SQL/400
System/370
Systems Application
Architecture
400
Nota: Es preciso efectuar una lectura profunda de los cuatro primeros captulos
antes de proceder a la lectura del resto del manual.
Utilice este manual junto con la publicacin COBOL/400 Reference, SC09-1813,
que describe cada componente y caracterstica del lenguaje COBOL/400. La publicacin COBOL/400 Users Guide, SC09-1812 y el manual COBOL/400 Reference
describen pormenorizadamente el lenguaje y el compilador COBOL/400.
Para obtener informacin sobre toda la biblioteca de documentos AS/400, consulte
el manual Gua de Publicaciones, GC10-9237 (GC41-9678), que contiene una descripcin resumida del contenido de cada publicacin AS/400.
Antes de proceder a la lectura de este manual, es preciso que se familiarice con la
siguiente informacin:
El uso de los controles e indicadores de la pantalla de visualizacin, as como
la utilizacin de todas las teclas del teclado, como por ejemplo:
Teclas
Teclas
Teclas
Teclas
Teclas
de
de
de
de
de
xi
xii
xiii
xiv
Supresin del listado del compilador: puede suprimir de forma selectiva las
partes del listado del compilador utilizando la instruccin *CBL o *CONTROL o
la frase SUPPRESS de la instruccin COPY.
Se da soporte a literales no numricos hexadecimales.
Los operadores aritmticos y lgicos (+, -, *, /, **, >, <, =, >=, y <=) que aparecen en formatos de sintaxis son necesarios. Estos operadores son palabras
reservadas como caracteres especiales. Para obtener un listado completo de
palabras COBOL/400 reservadas, consulte la seccin Palabras Reservadas
de la publicacin Consulta COBOL/400
Todos los signos de puntuacin y dems caracteres especiales que aparecen
en el diagrama son requeridos por la sintaxis del formato cuando se muestran;
si no los incluye, el programa dar un error.
Deber escribir las clusulas necesarias y las clusulas opcionales (cuando
proceda) en el orden que muestra el diagrama, a menos que las reglas asociadas indiquen lo contrario de manera explcita.
Indica el inicio de una instruccin. Los diagramas de unidades sintcticas que no sean instrucciones, como pueden ser las clusulas,
frases y prrafos, tambin se inician con este smbolo.
5%
Indica el final de una instruccin. Los diagramas de unidades sintcticas que no sean instrucciones, como pueden ser las clusulas,
frases y prrafos, tambin terminan con este smbolo.
Una flecha que vuelve hacia la izquierda por encima de un tem indica que
dicho tem puede repetirse:
55STATEMENTtem repetible 5%
55STATEMENTeleccin35%
eleccin1
eleccin4
eleccin2
.1/
.2/
6
55STATEMENTidentificador-15
literal1
tem1
5identificador-35
TO
ROUNDED .5/
6 .4/
identificador45
ROUNDED
55%
.6/
ENDSTATEMENT
5
.7/
SIZE ERROR sentencia imperativa
ON
5RECORDEXTERNALLY-DESCRIBED-KEY5
KEY IS
nomb-fech-2
Ampliacin de IBM
Las ampliaciones del lenguaje COBOL/400 para ANSI X3.23-1985 COBOL que
forman parte de la descripcin de texto estn encerradas en lneas de Ampliacin
IBM, como en este prrafo.
Fin de Ampliacin de IBM
Las clusulas e instrucciones COBOL que aparecen en los diagramas que se comprueban por sintaxis, pero que el compilador COBOL/400 trata como documentacin, estn encerradas dentro de asteriscos, de la manera siguiente:
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
55
\ RESERVEentero \
\
AREA
\
\
AREAS
\
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
10
1.
ENVIRONMENT DIVISION.
ayudar a hacer cambios
%
2.
CONFIGURATION SECTION.
o teclear entradas,
3.
SOURCE-COMPUTER. IBM-AS4.
posicin por posicin.
4.
INPUT-OUTPUT SECTION.
5.
FILE-CONTROL.
'''''''
6.
SELECT FILE-1 ASSIGN TO DATABASE-MASTER.
7.
SELECT FILE-2 ASSIGN TO DATABASE-MASTER.
\\\\\\\\\\\\\\\\\\ Fin de datos \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Tipo de solicitud . CB
Nmero de secuencia .
5.
Continuacin
rea-A
FILE
rea-B
-CONTROL.
F3=Salir
F4=Solicitud
F5=Renovar
F11=Registro anterior
F12=Cancelar
F23=Seleccionar solicitud F24=Ms teclas
Para obtener una descripcin completa sobre la instalacin del programa mediante
el SEU, consulte el manual SEU Gua del Usuario y Manual de Consulta.
11
12
13
14
Programa
Programa
Fuente
5Compilador COBOL 5 objeto
COBOL
& &
&
COBOL
Sistema
Archivos
Operativo
Descritos OS/4
5 Listado
Externam.
- Resumen de mandatos
- Opciones compilador
&
- Listado fuente
- Utilizacin de verbos
- Mensajes FIPS
DDS para
- Mensajes SAA
Archivos
Copiar
- Referencia Cruzada
Descritos
Texto
- Mensajes
Externam.
Fuente
15
16
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
generacin.
. . . . . .
\PGMID
\CURLIB
QLBLSRC
\LIBL
\PGM
29
\SRCMBRTXT
Nonbre,
Nombre,
Nombre
Nombre,
Nombre,
-29
\PGMID
\CURLIB
\LIBL, \CURLIB
\PGM
Parmetros Adicionales
Opciones de listado fuente . . .
+ para ms valores
Opciones de generacin . . . . .
+ para ms valores
F3=Salir F4=Solicitud
F24=Ms teclas
F5=Renovar
F12=Cancelar
Ms...
F13=Cmo util. esta pantalla
F5=Renovar
\NOVARCHAR, \VARCHAR...
\NOMAX
29
QSYSPRT
\LIBL
1-9999, \NOMAX
-29
Nombre
Nombre, \LIBL, \CURLIB
\NOFLAG
\NOFLAG, \FLAG
\DFRWRT, \NODFRWRT...
\YES
\CURRENT
\USER
-99
\NO, \YES
\CURRENT, \PRV, V2R1M...
\USER, \OWNER
Ms...
F12=Cancelar F13=Cmo util. esta pantalla
F3=Salir F4=Solicitud
F24=Ms teclas
F5=Renovar
\LIBCRTAUT
1
65535
1-65535, \
1-65535
-31
F12=Cancelar
Final
F13=Cmo util. esta pantalla
17
nombre-programa
Entre un nombre para identificar el programa COBOL compilado. Si especifica
un nombre de programa para este parmetro, y la compilacin se ejecuta por
lotes, el primer programa del trabajo por
lotes utilizar este nombre; cualquier otro
programa utilizar el nombre especificado
en el prrafo PROGRAM-ID del programa
fuente.
Los posibles valores de la biblioteca:
*CURLIB
Si no especifica un nombre de biblioteca,
se utilizar la biblioteca actual. Si no ha
asignado una biblioteca como biblioteca
actual, se utiliza QGPL.
nombre-biblioteca
Entre el nombre de la biblioteca que
deber contener el objeto programa
creado.
Parmetro SRCFILE:
Especifica el nombre del archivo fuente que
contiene el fuente COBOL a compilar. Los
valores posibles son:
18
*LIBL
Si no especifica ningn nombre de biblioteca, el sistema busca en la lista de bibliotecas la biblioteca en la que se ubica el
archivo fuente.
*CURLIB
Se utiliza la biblioteca actual. Si no ha
asignado una biblioteca como biblioteca
actual, se utiliza QGPL.
nombre-biblioteca
Entre el nombre de la biblioteca que contiene el archivo fuente.
Parmetro SRCMBR:
Especifica el nombre del miembro que contiene el fuente COBOL que se debe compilar.
Este parmetro slo se puede especificar si el
archivo fuente que se referencia en el parmetro SRCFILE es un archivo de base de
datos: Los valores posibles son:
*PGM
Si ha especificado un nombre de programa para el parmetro PGM, el compilador busca el programa fuente en un
miembro que tenga el mismo nombre que
el programa, y crea un programa objeto
con el mismo nombre que el programa y
miembro.
nombre-miembro-archivo-fuente
Entre el nombre del miembro que contiene el fuente COBOL.
Parmetro GENLVL:
Especifica el nivel de gravedad que determina
si un objeto programa se crea. El nivel de
gravedad se corresponde al nivel de gravedad
de los mensajes que se han producido
durante la compilacin del programa. Si el
nivel de gravedad de los mensajes de error es
mayor que el valor que ha especificado, no se
crea ningn objeto programa. Por ejemplo, si
especifica 19 para este parmetro, no se
crear ningn objeto programa si el nivel de
gravedad de alguno de los mensajes es 20 o
mayor.
descripcin-texto
Introduzca el texto que describe brevemente el programa y sus funciones. La
longitud del texto no puede superar los 50
caracteres y debe ir entre comillas
simples. Las comillas simples no forman
parte de la serie de 50 caracteres.
Parmetro OPTION:
Especifica las opciones que se deben utilizar
cuando se compila el fuente COBOL. Los
valores posibles son:
*SOURCE o *SRC
El compilador produce un listado fuente
compuesto por las las entradas fuente
COBOL y por los mensajes de error en
tiempo de compilacin.
*NOSOURCE o *NOSRC
El compilador no produce la parte fuente
del listado. Si no se necesita un listado
fuente, utilice esta opcin, ya que de este
modo la compilacin se efectuar con
ms rapidez.
Nivel-gravedad
Especifique un nmero de uno o dos
dgitos del 0 al 29. Si se produce un error
con un nivel de gravedad mayor que este
nivel, no se crear ningn objeto programa.
Parmetro TEXT:
Permite introducir el texto que describe brevemente el programa y su funcin.
*SRCMBRTXT
Utilice el mismo texto para el objeto programa que describe el miembro del
archivo de base de datos que contiene el
fuente COBOL. Si el fuente proviene de
un dispositivo o de un archivo incorporado, el especificar *SRCMBRTXT tiene el
mismo efecto que especificar *BLANK.
*BLANK
No se especifica ningn texto.
*NOXREF
El compilador no produce un listado de
referencias cruzadas para el programa
fuente.
*XREF
El compilador produce un listado de referencias cruzadas para el programa fuente.
*GEN
El compilador crea un objeto programa
una vez compilado el programa.
*NOGEN
El compilador no crea un objeto programa
una vez compilado el programa. Especifique esta opcin si slo desea obtener
listados de error.
*NOSEQUENCE
Los nmeros de referencia no se comprueban para errores de secuencia.
*SEQUENCE
Los nmeros de referencia se comprueban para errores de secuencia. Los
19
*NOVBSUM
El nmero total de utilizaciones del verbo
no se imprime.
*VBSUM
El nmero total de utilizaciones del verbo
se imprime.
*NONUMBER
Los nmeros de secuencia del archivo
fuente se utilizan para los nmeros de
referencia.
*NUMBER
Los nmeros de secuencia suministrados
por el usuario (columnas 1 a 6) se utilizan
para nmeros de referencia.
*LINENUMBER
Los nmeros de secuencia que el compilador crea se utilizan para los nmeros de
referencia. Esta opcin combina el cdigo
fuente del programa y el cdigo fuente
introducido mediante instrucciones COPY
en una secuencia numerada consecutivamente. Utilice esta opcin si especifica
la sealizacin FIPS (Federal Information
Processing Standards) o la sealizacin
SAA. *
*NOMAP
El compilador no lista la correlacin de
Divisin de Datos.
*MAP
El compilador lista la correlacin de Divisin de Datos.
*NOOPTIONS
No se listan las opciones en activo para
esta compilacin.
*OPTIONS
Se listan las opciones en activo para esta
compilacin.
20
*QUOTE
Especifica que el delimitador comillas (")
se utiliza para literales no numricos y
para literales booleanos. Tambin especifica que el valor de la constante figurativa
QUOTE posee el valor EBCDIC de una
comilla.
Nota: Los datos booleanos son una
categora de tems de datos que estn
limitados a valores 1 0. Un literal
booleano est compuesto por caracteres
booleanos entrecomillados y precedidos
por una B; por ejemplo: B"1".
*APOST
Especifica que el delimitador apstro (')
se utiliza para literales no numricos y
para literales booleanos. Tambin especifica que el valor de la constante figurativa
QUOTE posee el valor EBCDIC de un
apstrofo.
*NOSECLVL
No se lista un texto de mensaje de
segundo nivel para esta compilacin.
*SECLVL
Se lista un texto de mensaje de segundo
nivel para esta compilacin junto con el
texto de error de primer nivel.
Nota: Se imprime el texto de error de
primer nivel cada vez que se
produce un error.
*PRTCORR
El compilador inserta lneas de comentarios en los listados del compilador que
indican los tems elementales que se han
incluido como resultado de utilizar la frase
CORRESPONDING.
*NOPRTCORR
El compilador no inserta lneas de comentario en el listado del compilador cuando
se utiliza la frase CORRESPONDING.
*NOSRCDBG
Esta opcin determina el tipo de informacin que se visualiza en la estacin de
trabajo programable cuando se utiliza el
CoOperative Development
*NOLSTDBG
Esta opcin determina el tipo de informacin que se visualiza en la estacin de
trabajo programable cuando se utiliza el
CoOperative Development
Environment/400 para compilar programas
COBOL. Vase la nota de la pgina 21
para obtener ms informacin.
El compilador no permite ver el listado, la
informacin de error a nivel de fuente ni la
informacin de depuracin a nivel de
listado.
*LSTDBG
Esta opcin determina el tipo de informacin que se visualiza en la estacin de
trabajo programable cuando se utiliza el
CoOperative Development
Environment/400 para compilar programas
COBOL. Vase la nota de la pgina 21
para obtener ms informacin.
El compilador permite ver un listado, as
como informacin de depuracin a nivel
de listado. Si *NOSRCDBG tambin est
activa, el compilador tampoco produce
informacin de error a nivel de fuente.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Nota:
*PRINT
El compilador produce un listado de spool.
*NOPRINT
El listado no produce ningn listado de
spool.
Parmetro GENOPT:
Especifica las opciones a utilizar cuando el
objeto programa se ha creado. Los listados
podran utilizarse si se produce algn error en
COBOL. Los valores posibles son:
*NOLIST
No se lista ninguna IRP (representacin
intermedia de programa), cdigo
hexadecimal asociado ni mensajes de
error.
*LIST
Se lista la IRP, sus cdigos
hexadecimales asociados y cualquier
mensaje de error.
*NOXREF
No produce un listado de referencias cruzadas de los objetos definidos en la IRP.
*XREF
Produce un listado de referencias cruzadas de todos los objetos definidos en la
IRP.
21
*NOPATCH
No reserva un espacio en el programa
compilado para un rea de parche de programa.
*PATCH
Reserva un espacio en el programa compilado para un rea de parche de programa. El rea de parche de programa
se puede utilizar para operaciones de
depuracin.
*NODUMP
No lista la plantilla del programa.
*DUMP
Lista la plantilla del programa.
*UNREF
Incluye tems de datos no referenciados
en el programa compilado.
*NOUNREF
No incluye tems de datos no referenciados en programas compilados. De
este modo, se reduce el nmero de
entradas ODT (tabla de definicin de
objetos) utilizadas, lo que permite la compilacin de un programa ms grande. Los
tems de datos no referenciados siguen
apareciendo en el listado de referencias
cruzadas que se ha producido a raz de la
especificacin de OPTION (*XREF).
*NOATR
No lista los atributos de un fuente IRP.
*ATR
Lista los atributos de un fuente IRP.
*RANGE
En el tiempo de ejecucin, el sistema verifica que los subndices se encuentren
dentro de los rangos correctos, pero no
verifica los rangos de los ndices. Asimismo, comprueba las modificaciones de
referencia y las operaciones de subserie
de caracteres generadas por el compilador.
*NORANGE
No verifica los rangos en el tiempo de ejecucin.
Nota: La opcin *RANGE genera un
cdigo para comprobar los rangos
subindexados. Por ejemplo, se
asegura de que el usuario no
intente acceder al elemento 21 de
una matriz de 20 elementos.
La opcin *NORANGE no genera
un cdigo para comprobar los
rangos de subndices.
Estas opciones no eliminan la
comprobacin del subndice cero
realizada por el sistema operativo.
22
*NOOPTIMIZE
El compilador slo realiza optimizaciones
estndar para el programa.
*OPTIMIZE
El compilador intenta generar un programa que opere de forma ms eficiente y
que utilice menos almacenamiento. Sin
embargo, al especificar *OPTIMIZE el
tiempo necesario para compilar el programa puede aumentar considerablemente.
*NODDSFILLER
Si no se encuentran campos coincidentes
mediante una instruccin COPY DDS, no
se generar ninguna descripcin de
campo.
*DDSFILLER
Cuando no se encuentran campos coincidentes mediante una instruccin COPY
DDS, se genera siempre una descripcin
de campo FILLER de carcter nico "07
FILLER PIC X".
*NOSYNC
Se comprueba la sintaxis de la clusula
SYNCHRONIZED.
*SYNC
La clusula SYNCHRONIZED provoca la
alineacin de un tem elemental en un
lmite natural de almacenamiento.
*NOCRTF
Los archivos que no estn disponibles
durante una operacin OPEN, no se
crean dinmicamente.
|
|
|
*CRTF
Los archivos que no estn disponibles
durante una operacin OPEN se crean
dinmicamente. Una vez creados, el
archivo obtendr la autorizacin del perfil
de trabajo. (Consulte la explicacin de la
instruccin OPEN en el manual
COBOL/400 Reference para conocer
mejor las condiciones bajo las que se
pueden producir creaciones de archivos
dinmicos.)
Nota: La longitud mxima de los registros de un archivo que se crear
dinmicamente es 32 766.
*NODUPKEYCHK
No comprueba las claves duplicadas de
los archivos INDEXED.
|
|
|
|
|
|
*DUPKEYCHK
Comprueba las claves duplicadas de los
archivos INDEXED. (Consulte la explicacin sobre la instruccin READ en el
manual COBOL/400 Reference para
comprender mejor las condiciones bajo
las que se indica a un programa la existencia de registros con claves duplicadas.)
Aviso: Si se especifica esta opcin, el
rendimiento del compilador puede verse
afectado.
*STDERR
Se utiliza el manejo de errores estndar.
Consulte el Captulo 6, Manejo de
Errores y Excepciones COBOL/400 en la
pgina 71 para obtener ms informacin.
*NOSTDERR
Se utiliza el mtodo de manejo de errores
de la Versin 1, Releases 1 y 2.
*NOEXTACCDSP
El compilador no permite instrucciones
ACCEPT o DISPLAY ampliadas.
*EXTACCDSP
El compilador permite instrucciones
ACCEPT y DISPLAY ampliadas. Consulte el Apndice E del manual
COBOL/400 Reference para obtener informacin sobre los cambios en las listas de
palabras reservadas que se producen
cuando se utiliza esta opcin.
*NOINZDLT
Los archivos relativos con acceso secuencial no se inicializan con registros suprimidos durante la operacin CLOSE si los
archivos se han abierto para OUTPUT.
Es decir, la cantidad de registros escritos
determinan el lmite de registros. Las
operaciones OPEN subsiguientes slo
permiten acceder hasta el lmite de registros.
*INZDLT
Los archivos relativos con acceso secuencial se inicializan con registros suprimidos
durante la operacin CLOSE si los
archivos se han abierto para OUTPUT.
Los registros activos de los archivos no se
vern afectados. En otras palabras, el
lmite de registro se define como el
tamao de archivo para ulteriores operaciones de E/S.
*NOBLK
El compilador permite bloquear slo los
archivos de acceso SEQUENTIAL que no
tengan una instruccin START.
Si se especifica una clusula BLOCK
CONTAINS, esta clusula se omite,
excepto para los archivos de cinta.
*BLK
Cuando se utilizan BLOCK CONTAINS, el
compilador permite el bloqueo desde los
archivos de acceso DYNAMIC y
SEQUENTIAL con una instruccin
START. Para los archivos RELATIVE que
se han abierto para operaciones de
salida, no est permitido el bloqueo.
Captulo 3. Compilacin de un Programa
23
*STDINZ
El compilador inicializa los tems de datos
del usuario a los valores por omisin del
sistema, siempre y cuando no dependan
de una clusula VALUE.
*NOSTDINZ
Para los tems de usuario que no tengan
una clusula VALUE, el compilador no
inicializa los tems de datos a los valores
por omisin del sistema.
*FS21DUPKY
El compilador informa de un estado de
archivo 21 cuando se procesa un archivo
indexado con claves duplicadas en modalidad dinmica o al azar, si el valor de la
clave se cambia entre la instruccin
READ obligatoria y una instruccin
REWRITE o DELETE siguiente.
*NOFS21DUPKY
El compilador no informa de un archivo de
estado 21 cuando se procesa un archivo
indexado con claves duplicadas en modalidad de acceso dinmica o al azar. Una
instruccin REWRITE puede cambiar la
clave de un registro.
Parmetro CVTOPT:
Especifica cmo maneja el compilador los
tipos de datos SAA de tiempo, fecha e indicacin horaria, as como los campos de
caracteres de longitud variable que se han
pasado desde archivos descritos externamente hasta el programa del usuario a
travs de COPY DDS. Los valores posibles
son:
*NOVARCHAR
Los campos de longitud variable se
omiten y se declaran como campos
FILLER.
*VARCHAR
Los campos de longitud variable se
declaran como tems de grupo de longitud
fija y son accesibles para el programa.
Para obtener ms informacin acerca de
los campos de longitud variable, consulte
el apartado Declaracin de tems de
Datos utilizando Tipos de Datos de
CVTOPT en la pgina 137.
*NODATETIME
Los tipos de datos de fecha, hora e indicacin horaria se omiten y se declaran
campos FILLER.
*DATETIME
Los tipos de datos de fecha, hora e indicacin horaria se declaran campos de longitud variable y son accesibles para el
programa.
*NOGRAPHIC
Los tipos de datos DBCS grficos se
omiten y se declaran campos FILLER.
*GRAPHIC
Los tipos de datos DBCS grficos de longitud variable se declaran campos
alfanumricos de longitud fija y son accesibles para el programa.
Cuando la opcin *VARCHAR tambin se
utiliza, los tipos de datos DBCS grficos
de longitud variable se declaran tems de
grupo y son accesibles para el programa.
Para obtener ms informacin sobre los
tipos de datos DBCS grficos, consulte el
apartado Campos Grficos DBCS en la
pgina 139.
Parmetro MSGLMT:
Controla la compilacin indicando el nmero
mximo de mensajes de un nivel de gravedad
de error determinado que pueden ocurrir
antes de que se detenga la compilacin.
Por ejemplo, es posible detener la compilacin si se producen ms de tres errores con
un nivel de gravedad 20 o superior. En este
24
lmite-mensaje
Los posibles valores para el nmero
mximo de mensajes de error son:
*NOMAX
La compilacin se completa con normalidad independientemente del
nmero de errores producidos.
1-9999
La compilacin se detiene si el
nmero de errores del nivel de gravedad especificado supera la cantidad
especificada por el usuario. Si la cantidad mxima de mensajes de error no
se supera ni se iguala, la compilacin
contina independientemente de la
cantidad de errores producidos.
gravedad-mensaje
Los posibles valores para el nivel mximo
de gravedad de error son:
29 La compilacin se detiene si la cantidad de errores con un nivel de gravedad 29 o superior sobrepasa el
nmero mximo de mensajes de error
especificado.
nivel-gravedad-mximo
Especifique un nmero de uno o dos
dgitos del 0 al 29. La compilacin se
detiene si la cantidad de errores con
el nivel de gravedad especificado o
superior sobrepasa la cantidad
mxima de mensajes de error especificada por el usuario.
Parmetro PRTFILE:
Especifica el nombre del archivo al que se
dirige el listado del compilador, as como la
biblioteca en la que est ubicado el archivo.
El archivo debe tener un longitud mnima de
registro de 132. Si se especifica un archivo
nombre-archivo
Entre el nombre del archivo al que se
dirige el listado del compilador.
Los valores posibles de la biblioteca son:
*LIBL
Si no se especifica un nombre de biblioteca, el sistema busca en la lista de bibliotecas *LIBL, para encontrar la biblioteca
en la que se encuentra el archivo.
*CURLIB
Se utiliza la biblioteca actual. Si no ha
asignado la biblioteca como biblioteca
actual, se utiliza QGPL.
nombre-biblioteca
Introduzca el nombre de la biblioteca en la
que se encuentra el archivo.
Parmetro FLAGSTD:
Especifica las opciones de la sealizacin
FIPS. (Seleccione la opcin *LINENUMBER
para asegurarse de que los nmeros de referencia que se utilizan en los mensajes FIPS
sean nicos.) Los valores posibles son:
*NOFIPS
El programa fuente no dispone de la
sealizacin FIPS.
*MINIMUM
Seal FIPS para el subconjunto menor o
mayor.
*INTERMEDIATE
Seal FIPS para el subconjunto intermedio o mayor.
*HIGH
Seal FIPS para el subconjunto mayor.
*NOSEG
No se seala con FIPS el mdulo
opcional SEGMENTATION.
25
*SEG1
Seal FIPS para el mdulo opcional
SEGMENTATION de nivel 1 y superior.
*SEG2
Seal FIPS para el mdulo opcional
SEGMENTATION de nivel 2.
*NODEB
El mdulo opcional DEBUG no se seala
con FIPS.
*NODFRWRT
Todas las instrucciones DISPLAY
ampliadas se ejecutan a medida que se
detectan.
*DEB1
Seal FIPS para el mdulo opcional
DEBUG de nivel 1 y superior.
*DEB2
Seal FIPS para el mdulo opcional
DEBUG de nivel 2.
*NOOBSOLETE
Los elementos de lenguaje obsoletos no
se sealan.
*OBSOLETE
Los elementos de lenguaje obsoletos se
sealan.
Parmetro SAAFLAG:
Especifica si se desea sealar las funciones
COBOL/400* que no estn soportadas por
COBOL SAA. (Seleccione la opcin
*LINENUMBER para asegurarse de que los
nmeros de referencia que se utilizan en los
mensajes COBOL SAA sean nicos.) Los
valores posibles son:
*NOFLAG
No se realiza la sealizacin de COBOL
SAA.
*FLAG
Se realiza la sealizacin de COBOL
SAA.
Parmetro EXTDSPOPT:
Especifica las opciones que se deben utilizar
para las instrucciones ACCEPT y DISPLAY
ampliadas para la estacin de trabajo de E/S.
Los valores posibles son:
*DFRWRT
Las instrucciones DISPLAY ampliadas se
mantienen en un almacenamiento intermedio hasta que se produce una instruc-
26
*UNDSPCHR
Las instrucciones ACCEPT y DISPLAY
ampliadas manejan los caracteres que se
pueden visualizar y los que no.
|
|
|
*NOUNDSPCHR
Utilice esta opcin cuando los datos que
se deben visualizar contengan caracteres
DBCS ampliados. Las instrucciones
ACCEPT y DISPLAY ampliadas manejan
nicamente caracteres que se pueden
visualizar.
Aunque el usuario debe utilizar esta
opcin para estaciones de pantallas
conectadas a controladores 3174 y 3274,
tambin puede utilizarla para estaciones
de trabajo locales. Si no se utiliza esta
opcin, los datos deben contener caracteres visualizables. Si los datos contienen
valores menores que el hexadecimal 20,
los resultados obtenidos no sern los
esperados, ya que aparecern errores
graves e incluso algn formato de pantalla
errneo.
*ACCUPDALL
Todos los tipos de datos se visualizan
previamente en las instrucciones ACCEPT
ampliadas, independientemente de la
existencia de la frase UPDATE.
*ACCUPDNE
Tan slo los datos de edicin numricos
se visualizan previamente en las instrucciones ACCEPT ampliadas que no contengan la frase UPDATE.
Parmetro FLAG:
Especifica el nivel de seguridad mnimo de los
mensajes que se van a imprimir. Los valores
posibles son:
0
nivel-gravedad
Entre un nmero de uno o dos dgitos que
especifique el nivel de gravedad mnimo
de los mensajes que se han de imprimir.
Se listan los mensajes que tienen niveles
de seguridad del valor especificado o
superior.
Parmetro REPLACE:
Especifica si se crea un objeto programa
nuevo cuando un objeto programa del mismo
nombre ya existe en la misma biblioteca. Los
valores posibles son:
*YES
Se crea un nuevo objeto programa y cualquier objeto programa existente del mismo
nombre de la biblioteca especificada se
traslada a la biblioteca QRPLOBJ.
*NO
No se crea ningn objeto programa si un
objeto programa del mismo nombre ya
existe en la biblioteca especificada.
Parmetro TGTRLS:
Especifica el release del sistema operativo en
el que el usuario pretende utilizar el objeto
que se est creando. Se puede especificar
un nivel de release exacto en el formato
VxRxMx, donde Vx es la versin, Rx el
release y Mx el nivel de modificacin. Por
ejemplo, V2R2M0 es versin 2, release 2 y
nivel de modificacin 0.
Nota: Para utilizar el objeto en el sistema
destino, es preciso guardar el objeto
con el nivel de release de destino
especificado en el mandato de
creacin y a continuacin restaurarlo
en el sistema destino.
Los valores posibles son:
*CURRENT
El objeto debe utilizarse en el release del
sistema operativo que se ejecute en ese
momento en el sistema. Tambin es
posible utilizar el objeto en un sistema con
cualquier release posterior del sistema
operativo instalado.
*PRV
El objeto debe utilizarse en el release
previo con un nivel de modificacin 0 del
sistema operativo. Tambin es posible
utilizar el objeto en un sistema con cualquier release ulterior del sistema operativo
instalado.
nivel-release
Especifique el release en el formato
VxRxMx. El objeto puede utilizarse en un
sistema con el release especificado o con
cualquier release posterior del sistema
operativo instalado.
Los valores vlidos dependen de la
versin actual, release y del nivel de
modificacin, que varan con cada release
nuevo.
Parmetro USRPRF:
Especifica el perfil del usuario que trabajar
con el programa COBOL compilado. El perfil
del propietario o del usuario de este programa
sirve para ejecutar el programa y para controlar los objetos que el programa puede utilizar (incluyendo la autorizacin que el
programa tiene para cada objeto). Este parmetro no se actualiza si el programa ya
existe. Para cambiar el valor de USRPRF,
suprima el programa y vuelva a compilarlo utilizando el valor correcto.
Los valores posibles son:
*USER
El perfil de usuario del usuario de este
programa se utiliza cuando se ejecuta el
programa.
*OWNER
El perfil de usuario del propietario del programa y del usuario se utilizan cuando se
ejecuta el programa. Los conjuntos de
autorizaciones para objetos en los dos
perfiles de usuario sirven para encontrar y
acceder a los objetos durante la ejecucin
del programa. El usuario del programa
ser el propietario de cualquier objeto que
se cree durante el programa.
Nota: Especifique el parmetro USRPRF
para reflejar los requisitos de
seguridad de la instalacin. Los
servicios de seguridad disponibles
en el sistema AS/400 se describen
27
28
nombre-lista-autorizacin
Entre el nombre de una lista de
autoridades de usuarios y autorizaciones
a las que el programa se aade. El
objeto programa est protegido por esta
lista de autorizaciones y la autorizacin
pblica del objeto programa se establece
a *AUTL. La lista de autorizaciones debe
estar en el sistema cuando se emite el
mandato CRTCBLPGM. Utilice el
mandato Crear Lista de Autorizaciones
(CRTAUTL) para obtener una lista de
Autorizaciones propia.
Nota: Especifique el parmetro AUT
para reflejar los requisitos de
seguridad de la instalacin. Los
servicios de seguridad disponibles
en el sistema AS/400 se describen
con detalle en el manual
Seguridad Manual de Consulta.
Parmetro DUMP:
Sistema de ayuda de depuracin COBOL/400
de IBM para el personal de servicio de IBM.
Parmetro ITDUMP (n):
Ayuda de depuracin IBM proporcionada para
el personal de servicio de IBM. Este parmetro obliga al compilador a volcar el texto
interno en determinados momentos durante la
compilacin del programa fuente.
Ejemplo 1
CRTCBLPGM SRCFILE(QGPL/QLBLSRC) SRCMBR(SAMPLE) SAAFLAG(\FLAG)
Ejemplo 2
CRTCBLPGM PGM(TEST) SRCFILE(SOURCE1) CVTOPT(\GRAPHIC)
En el ejemplo anterior, el compilador busca el archivo SOURCE1 en la lista de
bibliotecas y busca el miembro llamado TEST dentro de ese mismo archivo. (El
valor del parmetro SRCMBR ha tomado el valor por omisin *PGM, lo que significa que ha de buscar un miembro que tenga el mismo nombre que el programa
que se ha de crear). El compilador crea un programa COBOL/400 denominado
TEST a partir del programa fuente que se ha encontrado en el miembro TEST del
archivo SOURCE1. El hecho de especificar *GRAPHIC para el parmetro
CVTOPT indica que si DDS contiene tipos de datos DBCS grficos, el programa
COBOL deber poder referenciarlos como campos alfanumricos.
29
30
55
TGTRLS(\CURRENT
USRPRF(\USER)
\PRV
\OWNER
nivel-release
55
AUT(\LIBCRTAUT)
\ALL
\CHANGE
\USE
\EXCLUDE
nomb-lista-autorizacin
55
TEXT(\SRCMBRTXT)
\BLANK
'descripcin-text'
55
DUMP(instruccin-inicioinstrucin-final)
55%
ITDUMP(opc.-vuelco)
Detalles de OPTION:
5\SRC\NOXREF\GEN\NOSEQUENCE\NOVBSUM5
\SOURCE \XREF \NOGEN \SEQUENCE \VBSUM
\NOSRC
\NOSOURCE
5\NONUMBER\NOMAP\NOOPTIONS\QUOTE\NOSECLVL5
\NUMBER \MAP \OPTIONS \APOST \SECLVL
\LINENUMBER
5\PRTCORR\NOSRCDBG\NOLSTDBG\PRINT5
\NOPRTCORR \SRCDBG \LSTDBG \NOPRINT
Detalles de GENOPT:
5\NOLIST\NOXREF\NOPATCH\NODUMP\NOATR5
\LIST
\XREF
\PATCH
\DUMP
\ATR
31
32
55PROCESSopcin-15%
.
CRTCBLPGM
Opcin de parmetro GENLVL
GENLVL(nn)
nn
33
CRTCBLPGM
Opciones de parmetro OPTION
34
GEN
NOGEN
*GEN
*NOGEN
NOMAP
MAP
*NOMAP
*MAP
NONUMBER
NUMBER
LINENUMBER
*NONUMBER
*NUMBER
*LINENUMBER
NOSECLVL
SECLVL
*NOSECLVL
*SECLVL
NOOPTIONS
OPTIONS
*NOOPTIONS
*OPTIONS
QUOTE
APOST
*QUOTE
*APOST
NOSEQUENCE
SEQUENCE
*NOSEQUENCE
*SEQUENCE
SOURCE (o SRC)
NOSOURCE
(o NOSRC)
*SOURCE (o *SRC)
*NOSOURCE
(o *NOSRC)
NOVBSUM
VBSUM
*NOVBSUM
*VBSUM
NOXREF
XREF
*NOXREF
*XREF
PRTCORR
NOPRTCORR
*PRTCORR
*NOPRTCORR
CRTCBLPGM
Opciones de parmetro GENOPT
NOINZDLT
INZDLT
*NOINZDLT
*INZDLT
NOLIST
LIST
*NOLIST
*LIST
STDERR
NOSTDERR
*STDERR
*NOSTDERR
NODDSFILLER
DDSFILLER
*NODDSFILLER
*DDSFILLER
NOSYNC
SYNC
*NOSYNC
*SYNC
NOCRTF
CRTF
*NOCRTF
*CRTF
NODUPKEYCHK
DUPKEYCHK
*NODUPKEYCHK
*DUPKEYCHK
NOEXTACCDSP
EXTACCDSP
*NOEXTACCDSP
*EXTACCDSP
NOBLK
BLK
*NOBLK
*BLK
STDINZ
NOSTDINZ
*STDINZ
*NOSTDINZ
FS21DUPKEY
NOFS21DUPKEY
*FS21DUPKY
*NOFS21DUPKY
RANGE
NORANGE
*RANGE
*NORANGE
UNREF
NOUNREF
*UNREF
*NOUNREF
CRTCBLPGM
Opciones de parmetro CVTOPT
NOVARCHAR
VARCHAR
*NOVARCHAR
*VARCHAR
NODATETIME
DATETIME
*NODATETIME
*DATETIME
NOCVTGRAPHIC
CVTGRAPHIC
*NOGRAPHIC
*GRAPHIC
35
CRTCBLPGM
Opciones de parmetro FLAGSTD
NOFIPS
MINIMUM
INTERMEDIATE
HIGH
*NOFIPS
*MINIMUM
*INTERMEDIATE
*HIGH
NOSEG
SEG1
SEG2
*NOSEG
*SEG1
*SEG2
NODEB
DEB1
DEB2
*NODEB
*DEB1
*DEB2
NOOBSOLETE
OBSOLETE
*NOOBSOLETE
*OBSOLETE
CRTCBLPGM
Opciones de parmetro EXTDSPOPT
DFRWRT
NODFRWRT
*DFRWRT
*NODFRWRT
UNDSPCHR
NOUNDSPCHR
*UNDSPCHR
*NOUNDSPCHR
ACCUPDALL
ACCUPDNE
*ACCUPDALL
*ACCUPDNE
CRTCBLPGM
Opciones de parmetro SAAFLAG
NOSAAFLAG
SAAFLAG
*NOFLAG
*FLAG
CRTCBLPGM
Opcin de parmetro FLAG
FLAG(nn)
nn
CRTCBLPGM
NOFS9MTO0M
FS9MTO0M
no aplicable
NOGRAPHIC
GRAPHIC
no aplicable
36
37
Las opciones del compilador pueden indistintamente preceder y seguir a la instruccin COPY dentro de la instruccin PROCESS. La ltima aparicin detectada de
una opcin prevalece sobre todas las apariciones precedentes de esa opcin.
El ejemplo siguiente muestra el uso de la instruccin COPY dentro de la instruccin PROCESS. La instruccin COPY debe ir seguida de un punto. Observe
tambin que, en este ejemplo, NOMAP prevalece sobre la opcin correspondiente
en el miembro de la biblioteca:
1
2
4
1
PROCESS XREF
COPY DEFLTS.
MAP, SOURCE, LIST
NOMAP, FLAG(2)
IDENTIFICATION DIVISION.
MYPROG
MYPROG
DEFLTS
MYPROG
MYPROG
38
39
Columnas. . . :
1 71
Editar
XMPLIB/QLBLSRC
SEU==>
XMPLE
FMT CB ......-A+++B+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
14.
DATA DIVISION.
15.
FILE SECTION.
16.
FD FILE1
17.
RECORD CONTAINS 56 CHARACTERS
18.
LABEL RECORDS ARE OMITTED
19.
DATA RECORD IS REB-1.
2.
1 REC-1 PIC X(56).
_______________________________________________________________________________
Columnas . . . :
1 71
Examinar
Archivo Spool
. . :
XMPLE
SEU==>
.5
STMT
.51 \
19 MSGID: LBL1327 SEVERITY: 3 SEQNBR: 19
.52
Mensaje . . . . :
'REB-1' no definido en el programa. Clusula
.53
ignorada.
.54
\ \ \ \ \
F I N
D E
M E N S A J E S
\ \
.55
Resumen de Mensajes
.56
Total
Info(-4)
Aviso(5-19)
Error(2-29)
Gravedad(3-39)
F6=Mover lnea de divisin F19=Izquierda F2=Derecha
F21=Mandatos del sistema
F24=Ms teclas
Se ha encontrado error de sintaxis.
Al mismo tiempo que se examina el listado del compilador, se pueden corregir las
sentencias fuente que contengan errores. Para buscar errores, escriba F \ERR en
la lnea de mandatos del SEU.
Para obtener informacin completa sobre cmo examinar un listado del compilador,
consulte el manual SEU Gua del Usuario y Manual de Consulta.
Resumen de Mandatos
Este resumen, que se obtiene despus de la compilacin, lista todas las opciones
especificadas en el mandato CRTCBLPGM. Consulte el apartado Utilizacin del
Mandato Crear Programa COBOL (CRTCBLPGM) en la pgina 15 para obtener
ms informacin sobre las opciones definidas por el usuario.
40
5763CB1 V3RM5 1
Programa . . . . . . . . . . . . .
Biblioteca . . . . . . . . . . .
Archivo fuente . . . . . . . . . .
Biblioteca . . . . . . . . . . .
Miembro fuente . . . . . . . . . .
Nivel de gravedad de generacin .
"Descripcin" del texto. . . . . .
Opciones de listado fuente . . . .
Opciones de generacin . . . . . .
Opciones de conversin . . . . . .
Lmite de mensaje:
Cantidad de mensajes.. . . . . .
Gravedad lmite de mensaje
. .
Imprimir archivo. . . . . . . . .
Biblioteca . . . . . . . . . . .
Sealizacin FIPS. . . . . . . . .
Sealizacin SAA . . . . . . . . .
Opciones de visualizacin ampliada
Gravedad de sealizacin . . . . .
Sustituir programa . . . . . . . .
Release de destino . . . . . . . .
Perfil de usuario. . . . . . . . .
Autorizacin . . . . . . . . . . .
Compilador . . . . . . . . . . . .
:
:
:
:
:
:
:
:
:
:
:
:
:
AS4SYS
3/27/94 11:1:51
Pgina
\NOMAX
29
QSYSPRT
\LIBL
\NOFIPS \NOSEG \NODEB \NOOBSOLETE
\NOFLAG
\YES
\CURRENT
\USER
\LIBCRTAUT
IBM SAA COBOL/4
41
5763CB1 V3RM5 1
Fuente COBOL AS/4
TESTER/SAMPLE
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
1 1 PROCESS OPTIONS, SAAFLAG, SOURCE, MAP, XREF,
2 2
FLAG(), MINIMUM, VBSUM.
Opciones del Compilador COBOL Activas
OPTIONS
SOURCE
XREF
MAP
VBSUM
NONUMBER
NOSEQUENCE
GEN
GENLVL(29)
FLAG( )
MINIMUM
NOSEG
NODEB
NOOBSOLETE
SAAFLAG
QUOTE
NOSECLVL
NOSRCDBG
NOLSTDBG
PRINT
PRTCORR
Opciones de Generacin COBOL Activas
NOLIST
UNREF
RANGE
NOATR
NOXREF
NODUMP
NOPATCH
NOOPTIMIZE
NODDSFILLER
NOSYNC
NOCRTF
NODUPKEYCHK
STDERR
NOEXTACCDSP
NOINZDLT
NOFS9MTOM
NOBLK
STDINZ
FS21DUPKY
Opciones de Conversin COBOL Activas
NOVARCHAR
NODATETIME
NOGRAPHIC
Pgina
Listado Fuente
La Figura 8 muestra un listado fuente. Las instrucciones del programa fuente se
listan tal y como se someten. El fuente no se lista si se especifica la opcin
NOSOURCE. Despus de la pgina en la que aparece listado el prrafo
PROGRAM-ID, todas las pginas de salida del compilador tienen el nombre del
identificador de programa listado en el encabezamiento antes del nombre del
sistema.
42
5763CB1 V3RM5 1
Fuente COBOL AS/4
TESTER/SAMPLE
AS4SYS 3/27/94 11:1:51
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN S NOMCOPIA
FECH/CAM
.A/
.B/
.C/
.D/
.E/
3 3 IDENTIFICATION DIVISION.
4 4 PROGRAM-ID.
SAMPLE.
5 5
AUTHOR.
PROGRAMMER NAME.
6 6
INSTALLATION. COBOL DEVELOPMENT CENTRE.
7 7
DATE-WRITTEN. 11/27/87.
8 8
DATE-COMPILED. 3/27/94 11:1:51
.
9 9 ENVIRONMENT DIVISION.
1 1 CONFIGURATION SECTION.
11 11 SOURCE-COMPUTER. IBM-AS4.
3/27/94
12 12 OBJECT-COMPUTER. IBM-AS4.
3/27/94
13 13 INPUT-OUTPUT SECTION.
14 14 FILE-CONTROL.
15 15
SELECT FILE-1 ASSIGN TO DISK-SAMPLE.
16 16 DATA DIVISION.
17 17 FILE SECTION.
18 18 FD FILE-1
19 19
LABEL RECORDS ARE STANDARD
2 2
RECORD CONTAINS 2 CHARACTERS
21 21
DATA RECORD IS RECORD-1.
22 22 1 RECORD-1.
23 23
2 FIELD-A
PIC X(2).
24 24 WORKING-STORAGE SECTION.
25 25 1 FILLER.
26 26
5 KOUNT
PIC S9(2) COMP-3.
27 27
5 LETTERS
PIC X(26) VALUE "ABCDEFGHIJKLMNOPQRSTUVWXYZ".
28 28
5 ALPHA REDEFINES LETTERS
29 29
PIC X(1) OCCURS 26 TIMES.
3 3
5 NUMBR
PIC S9(2) COMP-3.
31 31
5 DEPENDENTS
PIC X(26) VALUE "12341234123412341234".
32 32
5 DEPEND REDEFINES DEPENDENTS
33 33
PIC X(1) OCCURS 26 TIMES.
34 34 COPY WRKRCD.
35 +1 1 WORK-RECORD.
WRKRCD
36 +2
5 NAME-FIELD
PIC X(1).
WRKRCD
37 +3
5 FILLER
PIC X(1) VALUE SPACE.
WRKRCD
38 +4
5 RECORD-NO
PIC S9(3).
WRKRCD
39 +5
5 FILLER
PIC X(1) VALUE SPACE.
WRKRCD
4 +6
5 LOCATION
PIC A(3) VALUE "NYC".
WRKRCD
41 +7
5 FILLER
PIC X(1) VALUE SPACE.
WRKRCD
42 +8
5 NO-OF-DEPENDENTS
WRKRCD
43 +9
PIC X(2).
WRKRCD
44 +1
5 FILLER
PIC X(7) VALUE SPACES.
WRKRCD
45 35 77 WORKPTR USAGE POINTER.
36\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
37\ EL SIGUIENTE PRRAFO ABRE EL ARCHIVO DE SALIDA QUE\
38\ HA DE CREARSE E INICIALIZA LOS CONTADORES
\
39\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
46 4 PROCEDURE DIVISION.
41 STEP-1.
47 42
OPEN OUTPUT FILE-1.
48 43
MOVE ZERO TO KOUNT, NUMBR.
44\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
45\ LOS 3 PRRAFOS SIGUIENTES CREAN INTERNAMENTE LOS \
46\ REGISTROS QUE HA DE CONTENER EL ARCHIVO, LOS
\
47\ GRABA EN DISCO Y LOS VISUALIZA
\
48\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
49 STEP-2.
49 5
ADD 1 TO KOUNT, NUMBR.
5 51
MOVE ALPHA (KOUNT) TO NAME-FIELD.
51 52
MOVE DEPEND (KOUNT) TO NO-OF-DEPENDENTS.
52 53
MOVE NUMBR
TO RECORD-NO.
54 STEP-3.
53 55
DISPLAY WORK-RECORD.
54 56
WRITE RECORD-1 FROM WORK-RECORD.
57 STEP-4.
Pgina
43
55
56
57
58
59
6
61
62
63
64
58
PERFORM STEP-2 THRU STEP-3 UNTIL KOUNT IS EQUAL TO 26.
59\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
6\ EL SIGUIENTE PRRAFO CIERRA EL ARCHIVO ABIERTO
\
61\ PARA SALIDA Y VUELVE A ABRIRLO PARA ENTRADA
\
62\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
63 STEP-5.
64
CLOSE FILE-1.
65
OPEN INPUT FILE-1.
66\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
67\ LOS SIGUIENTES PRRAFOS LEEN HACIA ATRS EL
\
68\ ARCHIVO Y SELECCIONAN EMPLEADOS SIN SUBORDINADOS \
69\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
7 STEP-6.
71
READ FILE-1 RECORD INTO WORK-RECORD
72
AT END GO TO STEP-8.
73 STEP-7.
74
IF NO-OF-DEPENDENTS IS EQUAL TO ""
75
MOVE "Z" TO NO-OF-DEPENDENTS.
76
GO TO STEP-6.
77 STEP-8.
78
CLOSE FILE-1.
79
STOP RUN.
\ \ \ \ \
F I N
D E
F U E N T E
\ \ \ \ \
44
.A/
.B/
Nmero de Referencia: Los nmeros aparecen a la izquierda de las instrucciones fuente. Los nmeros que aparecen en este campo y el encabezamiento de columnas (mostrado como SEQNBR en este listado) se
determinan mediante una opcin especificada en el mandato CRTCBLPGM
o en la instruccin PROCESS, como se muestra en la tabla siguiente:
Opcin
Encabezamiento
Origen
NONUMBER
NUMBER
LINENUMBER
SEQNBR
NUMBER
LINNBR
.C/
.D/
.E/
3/27/94 11:1:51
Pgina
Pgina
Nmero de instruccin: El nmero de instruccin generada por el compilador dnde se ha definido el tem de los datos se lista para cada tem de
datos en la correlacin de Divisin de Datos.
45
.G/
Nivel de tem de datos: Aqu se lista el nmero del nivel de tem de datos,
como se especifica en el programa fuente. Los nombres de ndice se identifican con una IX en el nmero de nivel y un campo de tipo en blanco.
.H/
.I/
Seccin de Archivo
Seccin de Almacenamiento de Trabajo
Seccin de Enlace
Seccin Clasificar/Fusionar
Registro Especial
.J/
.K/
.L/
tem de grupo
A
AN
ANE
INDEX
BOOLN
ZONED
PACKED
Alfabtico
Alfanumrico
Alfanumrico editado
tem de datos de ndice (USAGE INDEX)
Booleano
Decimal con Zona (decimal externo)
Decimal empaquetado (decimal interno) (USAGE COMP,
COMP-3 o PACKED-DECIMAL)
Binario (USAGE COMP-4 o BINARY)
Numrico editado
tem de datos del puntero (USAGE POINTER)
BINARY
NE
POINTR
.M/
Nombre de archivos
El nombre interno utiliza el formato .Fnn, donde .F indica el nombre de
archivo y nn es un nmero de dos dgitos nico.
Nombres de Datos
El nombre interno utiliza el formato .Dxxxxxx, donde .D indica un nombre
de ndice o un nombre de datos, y xxxxxx es un valor hexadecimal de seis
dgitos nico. Estos nombres aparecen en el listado IRP si se genera.
.N/
46
Se
Se
Se
Se
indica
indica
indica
indica
SAME AREA
CODE-SET
SAME RECORD AREA
LINAGE.
Mensajes FIPS
Los mensajes FIPS en la Figura 11, se listan cuando se especifica el parmetro
FLAGSTD. Consulte la pgina 25 para obtener ms informacin sobre cmo especificar la opcin para la opcin FIPS. Slo se listan los mensajes para el
subconjunto FIPS solicitado, los mdulos opcionales y/o los elementos obsoletos.
Nota: Se proporciona el nmero de secuencia y columna cada vez que se emite
el mensaje.
5763CB1 V3RM5 1
Mensajes FIPS COBOL AS/4
FIPS-ID
DESCRIPCIN Y NMEROS SECUENCIA SEALIZADOS.P/
.O/
LBL82
Los siguientes tems que no se ajustan al estndar son
LBL821
Instruccin COPY.
34 8
LBL83
Los siguientes tems que no se ajustan al estndar son
LBL833
Prrafo DATE-COMPILED.
8 1
LBL85
Los siguientes tems que no se ajustan al estndar son
LBL854
Nombre de asignacin en clusula ASSIGN.
15 36
LBL8518
USAGE IS COMPUTATIONAL-3.
26 36
3 36
LBL852
USAGE IS POINTER.
35 26
LBL8561
Instruccin COPY con bliblioteca por omisin asumida.
34 19
7 violaciones FIPS sealizadas. .R/
\ \ \
F I N
D E
M E N S A J E S
F I P S
C O B O
TESTER/SAMPLE
AS4SYS
3/27/94 11:1:51
Pgina
\ \ \
47
.P/
Encabezamiento
NONUMBER
NUMBER
LINENUMBER
.Q/
tems agrupados por nivel: Estos encabezamientos subdividen los mensajes FIPS por nivel y categora.
.R/
Mensajes SAA
La Figura 12 muestra los mensajes SAA que se listan cuando se especifica la
opcin de sealizacin SAA. Consulte el apartado Parmetro SAAFLAG en la
pgina 26 o Uso de la Instruccin PROCESS para Especificar las Opciones del
Compilador en la pgina 33 para obtener ms informacin sobre cmo especificar
esta opcin.
5763CB1 V3RM5 1
Mensajes COBOL SAA
TESTER/SAMPLE
MSGID
DESCRIPCIN, NMEROS DE SECUENCIA Y NMEROS DE COLUMNA SEALIZADOS
AS4SYS
3/27/94 11:1:51
Pgina 9
LBL88
LBL881
Los siguientes tems se han sealizado como no portables por otros sistemas COBOL SAA.
Las opciones APOST,NUMBER,SEQUENCE,GRAPHIC,NOCRTF,NODUPKEYCHK,NOSYNC y EXTACCDSP no son COBOL SAA.
1 8
LBL889
Instruccin PROCESS.
1 8
LBL8843
USAGE IS POINTER.
35 26
Se han sealizado 3 mensajes COBOL SAA.
\ \ \
F I N
D E
M E N S A J E S
C O B O L
S A A \ \ \
48
AS4SYS
3/27/94 11:1:51
Pgina 1
.T/
Campo definido: Aqu se lista el nmero de instruccin donde se ha definido el nombre dentro del programa fuente.
.U/
Mensajes
La Figura 14 muestra los mensajes que se generan durante la compilacin del programa.
49
5763CB1 V3RM5 1
Mensajes COBOL AS/4
TESTER/SAMPLE
INST
.X/
\.V/
18 MSGID: LBL65 GRAVEDAD: NUMSEC: 18 .W/
Mensaje . . . . :
Bloqueo/Desbloqueo para archivo 'FILE-1' se
ejecutar por cdigo generado por compilador. .Y/
\ \ \ \ \
F I N
D E
M E N S A J E S
\ \ \ \ \
Resumen Mensajes
Total
Info(-4)
Aviso(5-19)
Error(2-29)
Grave(3-39)
Terminal(4-99)
.Z/
1
1
AS4SYS
3/27/94 11:1:51
Pgina 11
Nmero de instruccin: Este campo lista el nmero de instrucciones generadas por el compilador asociadas con la instruccin del programa fuente
para la que se ha emitido el mensaje. 1
.W/
Encabezamiento
Origen
NONUMBER
NUMBER
LINENUMBER
SEQNBR
NUMBER
LINNBR
1
2
3
4
5
.Y/
Informativo
Aviso
Error
Error Grave
Irrecuperable (generalmente error del usuario)
Irrecuperable (generalmente error del compilador)
El nmero de instrucciones y el nmero de referencia no aparecen en ciertos mensajes que hacen referencia a tems desaparecidos. Por ejemplo, si el prrafo PROGRAM-ID no aparece, el mensaje LBL0031 aparecer en el listado sin ninguna instruccin
ni nmero de referencia listado.
50
.Z/
51
52
Un mandato CALL del lenguaje de control puede formar parte de un trabajo por
lotes, entrarlo un usuario de la estacin de trabajo en forma interactiva o incluirlo
en un programa CL. Un ejemplo del mandato CALL sera CALL NOMINA.
NOMINA es el nombre de un programa COBOL que se llama y se ejecuta.
Un programa COBOL puede llamar a otro programa con la instruccin CALL de
COBOL. (Consulte la seccin Instruccin CALL de la publicacin COBOL/400
Reference para ms informacin).
Otra forma de ejecutar el programa COBOL es mediante un men orientado a la
aplicacin. El usuario de la estacin de trabajo puede seleccionar una opcin de
un men y llamar al programa pertinente. La figura siguiente ilustra un ejemplo de
un men orientado a la aplicacin.
Opcin:____
53
54
LBE7604.
La lista de respuestas slo se utiliza cuando un trabajo que tiene especificado el
atributo de respuesta de mensajes de consulta (INQMSGRPY) como
INQMSGRPY(\SYSRPYL) enva un mensaje de consulta.
El parmetro INQMSGRPY se produce en los mandatos de lenguaje de control
siguientes:
RQD
DFT
SYSRPYL
55
56
Funciones COBOL/400
Puntos de interrupcin
Rastreos
Caractersticas de depuracin
Vuelco con formato
Las funciones OS/400 le permitirn probar programas a la vez que proteger los
archivos de produccin; podr, asimismo, observar y depurar operaciones a
medida que se ejecuta un programa. No se necesita ningn cdigo fuente especial
para utilizar las funciones OS/400.
Las funciones COBOL pueden utilizarse independientemente de las funciones
OS/400 o en combinacin con ellas para:
Depurar un programa
Producir un vuelco con formato de los contenidos de los campos, estructuras
de datos, matrices y tablas.
El cdigo fuente es necesario para la utilizacin de las caractersticas de depuracin de COBOL y la posibilidad de vuelco con formato. Un vuelco con formato
tambin puede obtenerse mediante una respuesta del usuario al mensaje en
tiempo de ejecucin.
El contenido de OPEN-FEEDBACK y de I-O-FEEDBACK proporciona informacin
de depuracin adicional. El mtodo para la obtencin de esta informacin se describe ms adelante en este captulo, concretamente en el apartado Estado de
Archivos y reas de Realimentacin en la pgina 108.
Mientras prueba los programas, asegrese de que la lista de bibliotecas haya cambiado, para direccionar los programas a una biblioteca de prueba que contenga
datos de prueba; de esta manera, ningn dato real existente se ver afectado.
Para evitar que los archivos de base de datos en bibliotecas de produccin se
modifiquen de manera no intencionada, puede especificar UPDPROD(*NO) en el
mandato Arrancar Depuracin (STRDBG) o utilizando el mandato Cambiar Depuracin (CHGDBG). Vea la publicacin CL Reference para ms informacin.
Nota: Consulte el manual CL Gua del Programador para los mandatos CL necesarios para los programas de prueba y depuracin.
No hay instrucciones especiales para la prueba en el programa que se va a probar.
El programa puede ejecutarse de forma normal sin modificacin alguna. Todas las
funciones de prueba se especifican en el trabajo que contiene el programa, no en
el mismo programa.
Las funciones de prueba slo se aplican al trabajo en el que se especifiquen. Un
programa puede utilizarse simultneamente en dos trabajos: uno que est en un
entorno de prueba y otro que est en un entorno normal de proceso.
57
58
Especificacin de USAGE para un tem de datos redefinido que sea distinto del
USAGE especificado originalmente para el tem redefinido, y despus olvidarse
del cambio una vez que se haya llevado a cabo la redefinicin.
Incluir una instruccin GO TO sin nombre de procedimiento, y no inicializarlo
con una instruccin ALTER antes de que el programa en ejecucin alcance
ese punto.
No incluir las clusulas AT END o INVALID KEY o los procedimientos USE en
archivos descritos en el programa.
No hacer coincidir la descripcin de registro fuente del archivo TRANSACTION
con la descripcin de registro del formato de pantalla.
59
TESTPRT
STMT(43)
STMT(52)
PGMVAR(KOUNT)
3/3/94
3/3/94
3/3/94
Figura 16 (Parte 1 de 2). Ejemplo de Programa COBOL que Utiliza Puntos de Interrupcin
60
Pgina
5763CB1 V3RM5 1
Fuente COBOL AS/4
TESTER/TESTPRT
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
5\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
51\ LOS 3 PARRAFOS SIGUIENTES CREAN INTERNAMENTE LOS \
52\ REGISTROS QUE HA DE CONTENER EL ARCHIVO, LOS
\
53\ GRABA EN DISCO Y LOS VISUALIZA
\
54\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
55 STEP-2.
45 56
ADD 1 TO KOUNT, NUMBR.
46 57
MOVE ALPHA (KOUNT) TO NAME-FIELD.
47 58
MOVE DEPEND (KOUNT) TO NO-OF-DEPENDENTS.
48 59
MOVE NUMBR
TO RECORD-NO.
6 STEP-3.
49 61
DISPLAY WORK-RECORD.
5 62
WRITE RECORD-1 FROM WORK-RECORD.
63 STEP-4.
51 64
PERFORM STEP-2 THRU STEP-3 UNTIL KOUNT IS EQUAL TO 26.
65\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
66\ EL SIGUIENTE PARRAFO CIERRA EL ARCHIVO ABIERTO
\
67\ PARA SALIDA Y VUELVE A ABRIRLO PARA ENTRADA
\
68\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
69 STEP-5.
52 7
CLOSE FILE-1. .2/
53 71
OPEN INPUT FILE-1.
72\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
73\ LOS SIGUIENTES PARRAFOS LEEN HACIA ATRAS EL
\
74\ ARCHIVO Y SELECCIONAN EMPLEADOS SIN SUBORDINADOS \
75\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
76 STEP-6.
54 77
READ FILE-1 RECORD INTO WORK-RECORD
55 78
AT END GO TO STEP-8.
79 STEP-7.
56 8
IF NO-OF-DEPENDENTS IS EQUAL TO ""
57 81
MOVE "Z" TO NO-OF-DEPENDENTS.
58 82
GO TO STEP-6.
83 STEP-8.
59 84
CLOSE FILE-1.
6 85
STOP RUN.
\ \ \ \ \
F I N
D E
F U E N T E
\ \ \ \ \
Pgina
Figura 16 (Parte 2 de 2). Ejemplo de Programa COBOL que Utiliza Puntos de Interrupcin
.1/
43 /17
TESTPRT
1
F1=Entrada de mandatos
61
.2/
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
:
:
:
:
:
:
52 /56
TESTPRT
1
1
\CHAR
\DCL
Variable. . . . . . . . . . . . . . . . : 5 KOUNT
Tipo. . . . . . . . . . . . . . . . . :
PACKED
Longitud . . . . . . . . . . . . . . :
2
' 26'
F1=Entrada de mandatos
Para especificar una variable para el parmetro PGMVAR, empiece cada nombre
que entre con un carcter alfanumrico (A a la Z, $, #, o @). Puede ir seguido de
los caracteres (de la A a la Z, del 0 al 9, $, #, @, o _ ).
El ejemplo siguiente muestra cmo visualizar una variable COBOL, RECORD-NO,
en el ejemplo de programa. Debido a que el sistema operativo OS/400 trata al
guin como un carcter especial, RECORD-NO debe ir entre comillas.
STRDBG
ADDBKP
TESTPRT
STMT(58)
PGMVAR('RECORD-NO')
Para visualizar el valor de un tem de tabla, entre los nmeros de apariciones adecuadas (subndices) con el nombre de variable. Se permiten hasta siete dimensiones de subndices, que deben estar separados por comas.
No utilice un nombre de ndice ni un tem de datos de ndices como subndice.
Cuando se introduce un ndice como subndice, el sistema operativo utiliza el valor
interno del ndice como subndice y pueden producirse resultados no deseados.
El ejemplo siguiente muestra cmo se debe especificar la variable COBOL TABLE1
con tres dimensiones.
PGMVAR('TABLE1(SUB1, SUB2, SUB3)')
Se permiten uno o ms espacios en blanco despus de cada coma que separa
subndices, pero la longitud total de la variable ms los subndices, parntesis,
comas y espacios en blanco especificados con la palabra clave PGMVAR no
puede sobrepasar los 132 caracteres. Para ms informacin acerca de la codificacin de variables en mandatos CL, consulte el manual CL Reference.
62
Pgina 4
.1/
63
Figura 20. Seccin del Listado de Referencias Cruzadas IRP para TESTPRT
.1/
Ahora podr utilizar el nmero ODT 021C (para NAME-FIELD), con los mandatos
siguientes, para aadir un punto de interrupcin al ejemplo de programa en la instruccin 52.
STRDBG
ADDBKP
TESTPRT
STMT(52)
PGMVAR('/21C')
64
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
:
:
:
:
:
:
52 /56
TESTPRT
1
1
\CHAR
\DCL
Variable. . . . . . . . . . . . . . . . : /21C
Tipo. . . . . . . . . . . . . . . . . :
CHARACTER
Longitud. . . . . . . . . . . . . . . :
2
\...+....1....+....2....+....3....+....4....+....5
'Z'
F1=Entrada de mandatos
65
Utilizacin de un Rastreo
Un rastreo es un registro de algunas o todas las instrucciones que se ejecutan en
un programa. Si se solicita, un rastreo tambin registra los valores de variables
especficas utilizadas en las instrucciones del programa.
Programa
Instruccin
1 ......
2 ......
3 ......
4 ......
5 ......
6 ......
7 ......
8 ......
Rastreo
Orden de Proceso
Variables
1
5
.......
6
5
.......
7
5
.......
8
5
.......
6
5
.......
7
5
.......
2
5
.......
6
5
.......
7
5
.......
Un rastreo se diferencia de un punto de interrupcin en que el nmero de instrucciones implicadas en el rastreo influye en el lugar en el que finalizar el rastreo. El
sistema registra todas las instrucciones rastreadas que se han procesado. Puede
solicitar una visualizacin de la informacin rastreada, que muestra la secuencia en
que se han procesado las instrucciones y, si se solicita, los valores de las variables
utilizadas en las instrucciones.
Especifique qu instruccin rastrear el sistema. Tambin puede especificar que
las variables se visualicen nicamente cuando su valor haya cambiado desde la
ejecucin de la ltima instruccin de rastreo.
Podr especificar un rastreo de una instruccin en un programa, un grupo de instrucciones en un programa o todas las instrucciones de todo un programa.
STMT((54 58))
PGMVAR('NO-OF-DEPENDENTS')
OUTVAR(\CHG)
66
5763CB1 V3RM5
Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
42\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
43\ EL SIGUIENTE PARRAFO ABRE EL ARCHIVO DE SALIDA QUE\
44\ HA DE CREARSE E INICIALIZA LOS CONTADORES
\
45\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
42 46 PROCEDURE DIVISION.
47 STEP-1.
43 48
OPEN OUTPUT FILE-1.
44 49
MOVE ZERO TO KOUNT, NUMBR.
5\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
51\ LOS 3 PARRAFOS SIGUIENTES CREAN INTERNAMENTE LOS \
52\ REGISTROS QUE HA DE CONTENER EL ARCHIVO, LOS
\
53\ GRABA EN DISCO Y LOS VISUALIZA
\
54\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
55 STEP-2.
45 56
ADD 1 TO KOUNT, NUMBR.
46 57
MOVE ALPHA (KOUNT) TO NAME-FIELD.
47 58
MOVE DEPEND (KOUNT) TO NO-OF-DEPENDENTS.
48 59
MOVE NUMBR
TO RECORD-NO.
6 STEP-3.
49 61
DISPLAY WORK-RECORD.
5 62
WRITE RECORD-1 FROM WORK-RECORD.
63 STEP-4.
51 64
PERFORM STEP-2 THRU STEP-3 UNTIL KOUNT IS EQUAL TO 26.
65\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
66\ EL SIGUIENTE PARRAFO CIERRA EL ARCHIVO ABIERTO
\
67\ PARA SALIDA Y VUELVE A ABRIRLO PARA ENTRADA
\
68\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
69 STEP-5.
52 7
CLOSE FILE-1.
53 71
OPEN INPUT FILE-1.
72\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
73\ LOS SIGUIENTES PARRAFOS LEEN HACIA ATRAS EL
\
74\ ARCHIVO Y SELECCIONAN EMPLEADOS SIN SUBORDINADOS \
75\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
76 STEP-6.
54 77
READ FILE-1 RECORD INTO WORK-RECORD
55 78
AT END GO TO STEP-8.
79 STEP-7.
56 8
IF NO-OF-DEPENDENTS IS EQUAL TO ""
57 81
MOVE "Z" TO NO-OF-DEPENDENTS.
58 82
GO TO STEP-6.
83 STEP-8.
59 84
CLOSE FILE-1.
6 85
STOP RUN.
\ \ \ \ \
F I N D E L F U E N T E
\ \ \ \ \
NOMCOPIA
FECH/CAM
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
La Figura 23 en la pgina 68 es un ejemplo de un listado de informacin rastreada. Esta informacin se produce mediante el mandato Visualizar Datos de
Rastreo (DSPTRCDTA):
DSPTRCDTA OUTPUT(\PRINT) CLEAR(\YES)
Este mandato se explica en el manual CL Reference.
67
5763SS1 V3RM5
Visualizar Datos de Rastreo
Trabajo. . :
DSP2
Usuario. . :
PGMRS
Nmero . . . . :
Sentencia/
Programa
Instruccin
Nivel de Recursividad
Nmero de
TESTPRT
54
1
Posicin inicial . . . . . . . . . . . : 1
Longitud . . . . . . . . . . . . . . . : \DCL
Formato . . . . . . . . . . . . . . . . : \CHAR
Variable . . . . . . . . . . . . . . . : 5 NO-OF-DEPENDENTS
Tipo . . . . . . . . . . . . . . . . :
CHARACTER
Longitud . . . . . . . . . . . . . . :
2
\...+....1....+....2....+....3....+....4....+....5
' '
Sentencia/
Programa
Instruccin
Nivel de Recursividad
Nmero de
TESTPRT
56
1
TESTPRT
57
1
TESTPRT
58
1
Posicin inicial . . . . . . . . . . . : 1
Longitud . . . . . . . . . . . . . . . : \DCL
Formato . . . . . . . . . . . . . . . . : \CHAR
\Variable . . . . . . . . . . . . . . . : 5 NO-OF-DEPENDENTS
Tipo . . . . . . . . . . . . . . . . :
CHARACTER
Longitud . . . . . . . . . . . . . . :
2
\...+....1....+....2....+....3....+....4....+....5
'Z '
Sentencia/
Programa
Instruccin
Nivel de Recursividad
Nmero de
TESTPRT
54
1
TESTPRT
56
1
Posicin inicial . . . . . . . . . . . : 1
Longitud . . . . . . . . . . . . . . . : \DCL
Formato . . . . . . . . . . . . . . . . : \CHAR
\Variable . . . . . . . . . . . . . . . : 5 NO-OF-DEPENDENTS
Tipo . . . . . . . . . . . . . . . . :
CHARACTER
Longitud . . . . . . . . . . . . . . :
2
\...+....1....+....2....+....3....+....4....+....5
'1 '
Sentencia/
Programa
Instruccin
Nivel de Recursividad
Nmero de
TESTPRT
58
1
TESTPRT
54
1
TESTPRT
56
1
Posicin inicial . . . . . . . . . . . : 1
Longitud . . . . . . . . . . . . . . . : \DCL
Formato . . . . . . . . . . . . . . . . : \CHAR
\Variable . . . . . . . . . . . . . . . : 5 NO-OF-DEPENDENTS
Tipo . . . . . . . . . . . . . . . . :
CHARACTER
Longitud . . . . . . . . . . . . . . :
2
\...+....1....+....2....+....3....+....4....+....5
'2 '
Sentencia/
Programa
Instruccin
Nivel de Recursividad
Nmero de
TESTPRT
58
1
TESTPRT
54
1
TESTPRT
56
1
4122
secuencia
1
Secuencia
2
3
4
Secuencia
5
6
Secuencia
7
8
9
Secuencia
1
11
12
68
69
70
71
|
|
72
|
|
Los procedimientos de manejo de errores toman el control despus de una operacin de entrada o salida no satisfactoria, que se indica mediante cualquier estado
del archivo en el que el primer carcter no sea cero. Antes de que se ejecute
cualquiera de estos procedimientos, el estado del archivo se copia en el estado del
archivo externo.
El estado del archivo se establece mediante una de las tres maneras siguientes:
Mtodo A (todos los archivos):
COBOL comprueba el contenido de variables en los bloques de control de
archivos. Si el contenido no es el esperado, se establece un estado de archivo
que no sea cero. La mayora de estados de archivo que se establecen de esta
forma son el resultado de la comprobacin del Bloque de Informacin de
Archivos (FIB) y del Bloque de Control de Archivos (UFCB).
Mtodo B (archivos de transaccin):
COBOL comprueba los cdigos de retorno principal y secundario del sistema.
Si el cdigo de retorno principal no es cero, el cdigo de retorno (compuesto
por cdigos de retorno principal y secundario) se transforma en estado de
archivo. Si el cdigo de retorno principal es cero, el Mtodo A o C puede establecer el estado de archivo.
Observe que para las operaciones READ, WRITE y REWRITE de subarchivo,
slo se aplican los Mtodos A y C.
Para obtener una lista de cdigos de retorno y sus correspondientes estado de
archivo, consulte el apartado Resumen del soporte de estructuras de archivos
y valores claves de estado en la publicacin COBOL/400 Reference.
Mtodo C (todos los archivos):
El sistema enva un mensaje cuando el COBOL llama la gestin de datos para
realizar una operacin de E/S. COBOL supervisa estos mensajes y establece
un estado de archivo concordante.
Captulo 6. Manejo de Errores y Excepciones COBOL/400
73
74
75
76
77
Nota: Para obtener una lista de los mensajes supervisados que se desactivan bajo un estado de
archivo determinado, consulte el apartado Resumen de soporte de estructura de archivos y valores
clave del estado de la publicacin COBOL/400 Reference.
78
Si una unidad de ejecucin COBOL est compuesta por varios programas COBOL
y no COBOL, el programa principal COBOL puede emitir el mensaje de escape.
As pues, cualquier programa no COBOL que se llame despus del programa principal no puede supervisar el mensaje de escape.
Cdigos de Retorno
Cuando se especifica un archivo TRANSACTION en el programa, la clusula FILE
STATUS de la instruccin SELECT puede contener dos nombres de datos: el
estado de archivo externo y el cdigo de retorno (principal y secundario). Tal y
como se describe en el apartado Estado de archivo Interno y Externo en la
pgina 73, un estado de archivo puede establecerse en una de las tres formas
descritas; no obstante, el sistema establece los cdigos de retorno despus de
cualquier transaccin de E/S que llame la gestin de datos. Por lo tanto, la
mayora de condiciones de error que dan como resultado un mensaje del sistema
tambin poseen un cdigo de retorno asociado.
Los cdigos de retorno son similares a los valores del estado de archivo. Es decir,
los mensajes CPF que enva el sistema se agrupan juntos bajo supervisores de
mensaje, y cada supervisor de mensajes establece uno o ms estados de archivo.
De forma similar, los mensajes CPF se agrupan juntos, y cada grupo de mensajes
genera el mismo cdigo de retorno principal. (El cdigo de retorno secundario no
tiene que ser el mismo).
La principal diferencia entre los estados de archivo y los cdigos de retorno es que
la agrupacin de mensajes CPF es distinta.
Aunque COBOL slo establece cdigos de retorno para archivos TRANSACTION,
otros tipos de archivos (como por ejemplo los archivos de impresora) tambin los
establecen. Se puede acceder a los cdigos de retorno para estos archivos
mediante una operacin ACCEPT desde I-O-FEEDBACK.
79
La operacin de E/S
no es satisfactoria
Error
grave no
Ye s
supervisado?
Emitir mensaje
Cul es la
de error
respuesta a
LBE7200
LBE7200?
C,D,F
No
Vo l v e r a l
Establecer
programa COBOL
estado del
archivo interno
Emitir mensaje
De qu
Fin de archivo
Resto
Error
grave
error
informativo (por
ejemplo, LBE7421);
supervisado?
se trata?
establecer estado
de archivo en 90
No
Clave no
vlida
Existe
Existe
Existe
No
una frase
una frase
AT E N D ?
I N VA L I D K E Y ?
Ejecutar
Ejecutar
sentencia
sentencia
imperativa
imperativa
AT E N D
I N VA L I D K E Y
No
Existe una
No
una clasula
Declarativa
de estado de
de error?
archivo?
No
Ejecutar
declarativa
de error
Vuelva a l
programa COBOL
N ota:
80
= Ir a
Finalizar
programa COBOL
en la pgina siguiente
E m i t ir
sa je
m e n -
d e
e rro r
L B E 7 2 0 7
Realizar
vuelco
Cul
D,F
es
la
respuesta
L B E 7 2 0 7 ?
F ina liza r
programa
COBOL
COBOL
F ina liza r
programa
COBOL
Vo l v e r
programa
COBOL
E x is t e
u n
V o lv e r a l
m a n e ja d o r
d e
d ia g r a m a
e r r o r e s ?
a n t e r io r
L la m a r a l
m a n e ja d o r d e
e r r o r e s
El
d e
c d ig o
re to rn o
es
e s p a c io
un
n o
v lid o ?
N o
E je c u t a r
v u e lc o
C u l e s
e l
e l c d ig o
C O B O L
d e
F in a liz a r e l
p ro g ra m a
d e
C O B O L
r e t o r n o ?
F in a liz a r e l
F in a liz a r e l
p ro g ra m a d e C O B O L
p ro g ra m a d e C O B O L
81
Operacin de E/S
no satisfactoria
Vo l v e r a l
programa COBOL
G
*1
Error
grave no
supervisado?
error?
Emitir mensaje
Cul es
de error
la respuesta
LBE7200
a LBE7200?
No
*2
Error
Emitir mensaje
grave
Finalizar
d e e r r o r, p o r e j e m p l o
supervisado?
programa COBOL
LBE7021
No
Establecer
estado de
archivo interno
*3
El estado
Existe
una declarativa
declarativa
igual a 90
de error?
de error
9P?
No
Fin de archivo
No
De
Resto
qu error se
trata?
Clave no
vlida
Existe
una frase
AT E N D ?
Existe
No
una frase
I N VA L I D K E Y ?
No
Existe una
No
declarativa de
error?
Ejecutar
Ejecutar
sentencia
sentencia
Ejecutar
imperativa
imperativa
declarativa
AT E N D
I N VA L I D K E Y
de error
Vo l v e r a l
programa COBOL
82
Ejecutar
de archivo es
C,D,F
Finalizar
programa COBOL
83
|
|
Con *STDERR, cualquier estado de archivo cuyo primer carcter no sea cero
cuando no hay la frase AT END/INVALID KEY, el procedimiento USE, ni la
clusula FILE STATUS, origina la emisin de un mensaje de consulta LBE7207
(con las opciones de respuesta C, D, F y G).
|
|
Cul
el
es
carcter
El
2
su p erior
que
la
carcter
se
encuentra
No
Existe
un
procedimiento
de estado ms a
ms
la
izquierda
el
procedimiento
U S E
U S E ?
izquierda?
E je c u ta r
S
es el 2?
E je c u ta r
E x is te
S
una
AT
la
frase
sentencia
imperativa
END?
AT
E x is te
una
E x is te
E je c u ta r
frase
I N VA L I D
K E Y ?
END
la
sentencia
imperativa
I N VA L I D
No
un
No
K E Y
No
E je c u ta r
S
procedimiento
U S E ?
el
procedimiento
U S E
No
Continuar
programa
el
COBOL
N o ta :
84
= Ir a
en la pgina siguiente
La
condicin
Ejecutar la
Existe
S
una
N O D ATA e s
frase
sentencia imperativa
NO DATA
N O D ATA ?
verdadera?
No
El
Existe
carcter
una
d e l e s ta d o d e
NOT
arc hivo es
Ejecutar la
S
m s a la izq uierd a
frase
sentencia imperativa
I N VA L I D
N O T I N VA L I D
KEY
K E Y ?
el 0?
No
El
carcter
S
m s a la izq uierd a
d e l e s ta d o d e
Existe
una
Ejecutar la
frase
sentencia imperativa
N O T AT
N O T AT E N D
arc hivo es
END?
el 0?
No
No
Continuar
el programa COBOL
Nota: Siga las partes del diagrama que se apliquen en sus instrucciones.
85
86
87
88
G X 2 1 - 9 8 9 1 - 0
A S / 4 0 0 E S P E C I F I C A C I O N E S D E D E S C R I P C I O N D E D AT O S
Inter national
Business
Machines
*El
Archivo
Signo
nm e ro
de
hojas
por
rea
de
Impreso
re lleno
Descripcin
puede
variar
Pgina
U M / 0 5 0 *
en
Espaa
ligeramente.
de
Instrucciones
de Grabacin
1 0
1 1
1 2
1 3
1 4
1 5
1 8
19
D E
2 0
2 1
2 2
2 3
2 4
2 5
2 6
2 7
2 8
P A N T A L L A
2 9
3 0
3 1
3 2
3 3
3 4
P A R A
3 5
(b/O/I/B/H/M/N/P)
Referencia (R)
Reservado
Nombre
1 7
A R C H I VO
(/b / R / H / J / K / S / O )
1 6
Tipo
No (N)
Indicador
No (N)
Indicador
Espec
(A/O/*)
7
A *
Longitud
3 6
U t i l i z a c/i n
N om b re
D ecimales
Indicador
de
2
And/Or/Coment.
Tipo
1
Nombre Co ndicin
No (N)
Secuencia
Formula rio
Condicionamiento
N mero de
Tecla
Fecha
Posiciones
Programador
3 7
3 8
Ubicacin
Funciones
Lnea
3 9
4 0
4 1
E J E MP L O
P os
4 2
4 3
4 4
4 5
D E
4 6
4 7
4 8
4 9
5 0
5 1
5 2
5 3
5 4
5 5
5 6
5 7
5 8
R E C U P E R AC I ON
5 9
6 0
D E
6 1
6 2
6 3
6 4
6 5
6 6
6 7
6 8
6 9
7 0
7 1
7 2
7 3
7 4
7 5
7 6
7 7
7 8
7 9
E R R OR
A *
A
A
I ND A R A
R
F O R MA T 1
C F 0 1 ( 0 1
'
I N
D E
P R OG R A M A '
A *
A
A
A
I N P U T F L D
1 2
2 8
1 2
4 2
2 8
2 6
'
I N T R OD U C I R
'
F 1
E N T R AD A
T E R M I N A R
'
'
A
A
A
A
A
A
A
A
A
A
A
A
89
8 0
5763CB1 V3RM5
Fuente COBOL AS/4
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
1 1 IDENTIFICATION DIVISION.
2 2 PROGRAM-ID. RECOVERY.
3 3 ENVIRONMENT DIVISION.
4 4 CONFIGURATION SECTION.
5 5 SOURCE-COMPUTER. IBM-AS4.
6 6 OBJECT-COMPUTER. IBM-AS4.
7 7 INPUT-OUTPUT SECTION.
8 8 FILE-CONTROL.
9 9
SELECT RECOVFILE
1 1
ASSIGN TO WORKSTATION-RECVFILE-SI
11 11
ORGANIZATION IS TRANSACTION
12 12
ACCESS MODE IS SEQUENTIAL
13 13
FILE STATUS IS STATUS-FLD, STATUS-FLD-2
14 14
CONTROL-AREA IS CONTROL-FLD.
15 15
SELECT PRINTER-FILE
16 16
ASSIGN TO PRINTER-QPRINT.
17
17 18 DATA DIVISION.
18 19 FILE SECTION.
19 2 FD RECOVFILE
2 21
LABEL RECORDS ARE OMITTED
21 22
DATA RECORD IS RECOV-REC.
22 23 1 RECOV-REC.
23 24
COPY DDS-ALL-FORMATS OF RECVFILE.
24 +1
5 RECVFILE-RECORD PIC X(5).
+2\ INPUT FORMAT:FORMAT1
FROM FILE RECVFILE
OF LIBRARY COBNATEX
+3\
25 +4
5 FORMAT1-I
REDEFINES RECVFILE-RECORD.
26 +5
6 INPUTFLD
PIC X(5).
+6\ OUTPUT FORMAT:FORMAT1
FROM FILE RECVFILE
OF LIBRARY COBNATEX
+7\
+8\
5 FORMAT1-O
REDEFINES RECVFILE-RECORD.
25
27 26 FD PRINTER-FILE.
28 27 1 PRINTER-REC.
29 28
5 PRINTER-RECORD
PIC X(132).
29
3 3 WORKING-STORAGE SECTION.
31
31 32 1 I-O-VERB
PIC X(1).
32 33 1 STATUS-FLD
PIC X(2).
33 34
88 NO-ERROR
VALUE "".
34 35
88 ACQUIRE-FAILED
VALUE "9H".
35 36
88 TEMPORARY-ERROR
VALUE "9N".
36 37 1 STATUS-FLD-2
PIC X(4).
37 38 1 CONTROL-FLD.
38 39
5 FUNCTION-KEY
PIC X(2).
39 4
5 PGM-DEVICE-NAME
PIC X(1).
4 41
5 RECORD-FORMAT
PIC X(1).
41 42 1 END-INDICATOR
PIC 1
INDICATOR 1
42 43
VALUE B"".
43 44
88 END-NOT-REQUESTED
VALUE B"".
44 45
88 END-REQUESTED
VALUE B"1".
45 46 1 USE-PROC-FLAG
PIC 1
46 47
VALUE B"".
47 48
88 USE-PROC-NOT-EXECUTED
VALUE B"".
48 49
88 USE-PROC-EXECUTED
VALUE B"1".
49 5 1 RECOVERY-FLAG
PIC 1
5 51
VALUE B"".
51 52
88 NO-RECOVERY-DONE
VALUE B"".
52 53
88 RECOVERY-DONE
VALUE B"1".
53 54 1 HEADER-LINE.
54 55
5 FILLER
PIC X(6)
55 56
VALUE SPACES.
56 57
5 FILLER
PIC X(72)
57 58
VALUE "ERROR REPORT".
58 59 1 DETAIL-LINE.
59 6
5 FILLER
PIC X(15)
6 61
VALUE SPACES.
61 62
5 DESCRIPTION
PIC X(25)
62 63
VALUE SPACES.
63 64
5 DETAIL-VALUE
PIC X(92)
64 65
VALUE SPACES.
NOMCOPIA
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
90
FECH/CAM
2/1/94
2/5/94
2/1/94
2/1/94
2/2/94
2/2/94
2/1/94
2/1/94
2/5/94
3/22/94
2/5/94
2/1/94
2/5/94
2/5/94
2/5/94
2/5/94
2/1/94
2/1/94
2/1/94
2/5/94
2/5/94
2/5/94
2/5/94
3/22/94
5763CB1 V3RM5
Fuente COBOL AS/4
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
65 66 1 MESSAGE-LINE.
66 67
5 FILLER
PIC X(15)
67 68
VALUE SPACES.
68 69
5 DESCRIPTION
PIC X(117)
69 7
VALUE SPACES.
7 71 PROCEDURE DIVISION.
72 DECLARATIVES.
73 HANDLE-ERRORS SECTION.
74
USE AFTER STANDARD ERROR PROCEDURE ON RECOVFILE. .1/
75 DISPLAY-ERROR.
71 76
SET USE-PROC-EXECUTED TO TRUE.
72 77
WRITE PRINTER-REC FROM HEADER-LINE AFTER ADVANCING PAGE.
73 78
MOVE "ERROR OCCURRED IN" TO DESCRIPTION OF DETAIL-LINE.
74 79
MOVE I-O-VERB TO DETAIL-VALUE OF DETAIL-LINE.
75 8
WRITE PRINTER-REC FROM DETAIL-LINE AFTER ADVANCING 5 LINES.
76 81
MOVE "FILE STATUS =" TO DESCRIPTION OF DETAIL-LINE.
77 82
MOVE STATUS-FLD TO DETAIL-VALUE OF DETAIL-LINE. .2/
78 83
WRITE PRINTER-REC FROM DETAIL-LINE AFTER ADVANCING 2 LINES.
79 84
MOVE "EXTENDED FILE STATUS =" TO DESCRIPTION OF DETAIL-LINE.
8 85
MOVE STATUS-FLD-2 TO DETAIL-VALUE OF DETAIL-LINE.
81 86
WRITE PRINTER-REC FROM DETAIL-LINE AFTER ADVANCING 2 LINES.
82 87
MOVE "CONTROL-AREA =" TO DESCRIPTION OF DETAIL-LINE.
83 88
MOVE CONTROL-FLD TO DETAIL-VALUE OF DETAIL-LINE.
84 89
WRITE PRINTER-REC FROM DETAIL-LINE AFTER ADVANCING 2 LINES.
9 CHECK-ERROR.
85 91
IF TEMPORARY-ERROR AND NO-RECOVERY-DONE THEN
86 92
MOVE "\\\ERROR RECOVERY BEING ATTEMPTED\\\" .3/
93
TO DESCRIPTION OF MESSAGE-LINE
87 94
WRITE PRINTER-REC FROM MESSAGE-LINE
95
AFTER ADVANCING 3 LINES
88 96
PERFORM ERROR-RECOVERY
97
ELSE
89 98
IF RECOVERY-DONE THEN .4/
9 99
MOVE "\\\ERROR AROSE FROM RETRY AFTER RECOVERY\\\"
1
TO DESCRIPTION OF MESSAGE-LINE
91 11
WRITE PRINTER-REC FROM MESSAGE-LINE
12
AFTER ADVANCING 3 LINES
92 13
MOVE "\\\PROGRAM TERMINATED\\\"
14
TO DESCRIPTION OF MESSAGE-LINE
93 15
WRITE PRINTER-REC FROM MESSAGE-LINE
16
AFTER ADVANCING 2 LINES
94 17
GO TO ERROR-EXIT
18
ELSE
95 19
SET NO-RECOVERY-DONE TO TRUE.
96 11
MOVE "\\\EXECUTION CONTINUES\\\"
111
TO DESCRIPTION OF MESSAGE-LINE.
97 112
WRITE PRINTER-REC FROM MESSAGE-LINE
113
AFTER ADVANCING 2 LINES.
98 114
GO TO END-OF-DECLARATIVES.
115 ERROR-RECOVERY.
99 116
SET RECOVERY-DONE TO TRUE.
1 117
DROP PGM-DEVICE-NAME FROM RECOVFILE.
11 118
ACQUIRE PGM-DEVICE-NAME FOR RECOVFILE. .5/
119 ERROR-EXIT.
12 12
CLOSE RECOVFILE
121
PRINTER-FILE.
122 END-OF-DECLARATIVES.
123 END DECLARATIVES.
124
125 MAIN-PROGRAM SECTION.
126 MAINLINE.
13 127
MOVE "OPEN" TO I-O-VERB.
14 128
OPEN I-O
RECOVFILE
129
OUTPUT PRINTER-FILE.
15 13
PERFORM I-O-PARAGRAPH UNTIL END-REQUESTED. .6/
16 131
CLOSE RECOVFILE
132
PRINTER-FILE.
17 133
STOP RUN.
134 I-O-PARAGRAPH.
18 135
MOVE "WRITE" TO I-O-VERB.
19 136
SET USE-PROC-NOT-EXECUTED TO TRUE.
11 137
WRITE RECOV-REC FORMAT IS "FORMAT1"
138
INDICATOR IS END-INDICATOR.
111 139
IF USE-PROC-EXECUTED AND RECOVERY-DONE THEN .7/
112 14
GO TO I-O-PARAGRAPH.
NOMCOPIA
FECH/CAM
91
5763CB1 V3RM5
Fuente COBOL AS/4
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
113 141
MOVE "READ" TO I-O-VERB.
114 142
SET USE-PROC-NOT-EXECUTED TO TRUE.
115 143
SET NO-RECOVERY-DONE TO TRUE.
116 144
READ RECOVFILE FORMAT IS "FORMAT1"
145
INDICATOR IS END-INDICATOR. .8/
117 146
IF NO-ERROR THEN
118 147
PERFORM SOME-PROCESSING.
148 SOME-PROCESSING.
119 149
(INSERT SOME DATABASE PROCESSING, FOR EXAMPLE).
\ \ \ \ \
F I N
D E
F U E N T E
\ \ \ \ \
NOMCOPIA
FECH/CAM
92
.1/
.2/
.3/
.4/
.5/
.6/
.7/
Si la operacin WRITE ha sido anmala pero se ha efectuado la recuperacin, se intenta de nuevo WRITE.
.8/
P ro g ra m a e n C O B O L
F IL E X
S E L E C T n o m b r e a r c h iv o
A S S IG N T O P R IN T E R -F IL E X
( n o m b r e - a s ig n a c i n )
D E V (Q P R IN T )
Im p re s o ra
93
P ro g ra m a e n C O B O L
F IL E Y
S E L E C T n o m b r e - a r c h iv o
A S S IG N T O F O R M A T F IL E -F IL E Y
D E V (Q P R IN T )
Im p re s o ra
F IL E X
T ie m p o d e
C o m p ila c i n
D E V (Q P R IN T )
P ro g ra m a e n C O B O L
S E L E C T n o m b r e - a r c h iv o
A S S IG N T O F O R M A T F IL E -F IL E X
M a n d a to d e A lte r a c i n T e m p o r a l:
O V R D K T F F IL E (F IL E X ) T O F IL E (F IL E A )
F IL E A
D is q u e te
T ie m p o d e
E je c u c i n
D E V (Q D K T )
94
Spooling
El sistema AS/400 proporciona la utilizacin de funciones de spool de entrada y
salida. Cada descripcin de archivo AS/400 contiene un atributo de spool que
determina si se utiliza el spooling para el archivo en tiempo de ejecucin. El programa COBOL no sabe que est utilizando el spool. El lector o el transcriptor de
spool determinan el dispositivo fsico real desde el que se lee un archivo o al que
se graba un archivo. Consulte la publicacin Gua para la Gestin de Datos para
obtener una informacin ms detallada acerca del spooling.
Spool de Salida
El spool de salida es vlido para los trabajos por lotes e interactivos. La descripcin del archivo que se especifica en COBOL mediante el nombre del sistema contiene la especificacin para el spool, tal como se muestra en el ejemplo siguiente:
95
P ro g ra m a e n C O B O L
A r c h iv o
Q P R IN T
C o la d e
S a lid a
S E L E C T n o m b r e - a r c h iv o
A S S IG N T O P R IN T E R -Q P R IN T
S P O O L (*Y E S )
O U T Q (Q P R IN T )
Q P R IN T
T ie m p o d e E je c u c i n
T r a n s c r ip to r
d e Im p r e s i n
T ie m p o d e
T r a n s c r ip to r
d e Im p r e s i n
D is p o s itiv o
Im p re s o ra
Spool de Entrada
El spool de entrada slo es vlido para los archivos de datos incorporados en trabajos por lotes. Si los datos de entrada que lee COBOL provienen de un archivo
en spool, COBOL no sabe desde qu dispositivo se han puesto en spool los datos.
Los datos se leen desde un archivo incorporado en spool:
D is q u e te
F IL E A
P ro g ra m a e n C O B O L
*N O
Spool
D E V (Q D K T )
S P O O L (*Y E S )
S E L E C T n o m b r e - a r c h iv o
A S S IG N T O D IS K E T T E -F IL E A
*Y E S
A r c h iv o
en Spool
Consulte la publicacin Gua para la Gestin de Datos para obtener ms informacin acerca de los archivos de datos incorporados.
96
FILE(OUTPUT)
COPIES(3)
97
Tipo OPEN
Estado de Bloqueo
INPUT
I/O
Compartido
Compartido
zacin
Compartido
zacin
Compartido
zacin
EXTEND
OUTPUT
para lectura
para actualipara actualipara actuali-
98
99
100
DELETE
MODALIDAD
APERTURA
NIVEL BLOQUEO
6
DELETE
.
I-O
Sin control de compromiso
Con control de compromiso
COMMIT o
ROLLBACK
5
5
*CHG
*ALL
READ
READ
.
INPUT
Sin control de compromiso
Con control de compromiso
*CHG
.
5
*ALL
READ
WITH
NO
LOCK
I-O
READ
I-O
READ
.
*CHG
.
5
*ALL
Sin control de compromiso
Con control de compromiso
*CHG
READ
5
5
*ALL
REWRITE
REWRITE
.
I-O
Sin control de compromiso
Con control de compromiso
5
5
*CHG
*ALL
START
START
.
INPUT
Sin control de compromiso
Con control de compromiso
*CHG
.
5
*ALL
START
I-O
Sin control de compromiso
Con control de compromiso
*CHG
START
5
5
*ALL
WRITE
WRITE
.
I-O
Sin control de compromiso
Con control de compromiso
*CHG
5
5
*ALL
WRITE
WRITE
.
OUTPUT
Sin control de compromiso
Con control de compromiso
*CHG
5
5
*ALL
101
102
A *
10
11
12
13
14
N OM B R E
15
16
17
18
19
20
21
22
23
24
25
D E
A R CH I VO
ACC T P M T
26
27
28
29
30
31
Descripcin
32
33
34
No (N)
Indicador
No (N)
Indicador
Indicador
9
Longitud
Referencia (R)
Nom bre
Reservado
T i p o N o m b r e o E s p e c (/b / R / H / J / K / S / O )
Nombre Condicin
Impreso en Espaa
Pgina
de
Tecla
35
P AN T A L L A
36
U t i l i z a c/i n ( b / O / I / B / H / M / N / P )
de Grabacin
D ecimales
Secuencia
N mero d e
No (N)
Condicionamiento
Signo
Instrucciones
Fecha
Posiciones
Archivo
Programador
GX21-9891-0 UM/050*
37
38
D E
Ubicacin
Funciones
Lnea
39
40
41
Pos
42
43
44
45
46
47
SOL I C I T UD
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
A *
A
I ND A R A
A
A
T E X T ( ' SOL I C I T UD
CU E N T A
CL I E N T E ' )
CA 0 1 ( 1 5
P R OG R A M A ' )
P U T R E T A I N
OV E R L A Y
MA E S T R A
A
' F I N
3 ' AC T U A L I Z
3 ' N UME R O
A
A
A C C T F R OM
5 Y
0 I
E R RM S G ( ' N UME R O
NO
9 8
A
A
A
A
ACC T T O
5 Y
0 I
VA L I DO '
I N S U F I C I E N T E S
9 8 )
OR I G E N '
CU E N T A
E R RM S G ( ' N UME R O
5
T R A N S AM T
R
1 0 Y 0 2 I
OR I GE N
E R R M S G ( ' F ONDO S
NO
CU E N T A
9 9 )
CU E N T A
3 ' N UME R O
9 7
CU E N T A '
OR I GE N '
E N
D E S T I NO '
2 3CH ECK ( ME )
CU E N T A
2 3CH ECK ( ME )
9 9
A
A
D E
VA L I DO '
3 ' I MP OR T E
CU E N T A
D E S T I NO
9 7 )
T R AN S F E R I DO '
2 3
E R R FMT
9 6
5 ' E S T ADO
9 6
5 ' T ECL A
A R C H I VO
D E
NO
GR A V AC I N
VA L I DO '
NO
VA L I DA '
A
A
A
A
A
A
A
A
A
A
A
103
78
79
80
5763CB1 V3RM5
Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN S NOMCOPIA
1 1 IDENTIFICATION DIVISION.
2 2 PROGRAM-ID.
ACCOUNT.
3 3
AUTHOR.
PROGRAMMER NAME.
4 4
INSTALLATION. COBOL DEVELOPMENT CENTRE.
5 5
DATE-WRITTEN. 2/2/88.
8 8
DATE-COMPILED. 5/24/92 14:2:39
.
7 7 ENVIRONMENT DIVISION.
8 8 CONFIGURATION SECTION.
9 9 SOURCE-COMPUTER. IBM-AS4.
1 1 OBJECT-COMPUTER. IBM-AS4.
11 11 INPUT-OUTPUT SECTION.
12 12 FILE-CONTROL.
13 13
SELECT ACCOUNT-FILE ASSIGN TO DATABASE-ACCTMST
14 14
ORGANIZATION IS INDEXED
15 15
ACCESS IS DYNAMIC
16 16
RECORD IS EXTERNALLY-DESCRIBED-KEY
17 17
FILE STATUS IS ACCOUNT-FILE-STATUS.
18 18
SELECT DISPLAY-FILE ASSIGN TO WORKSTATION-ACCTFMTS-SI .1/
19 19
ORGANIZATION IS TRANSACTION.
2\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
2 21 CONTROL DE E-S
21 22
CONTROL DE COMPROMISO PARA ACCOUNT-FILE. .2/
23\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
22 24 DATA DIVISION.
23 25 FILE SECTION.
24 26 FD ACCOUNT-FILE
25 27
LABEL RECORDS ARE STANDARD.
26 28 1 ACCOUNT-RECORD.
27 29
COPY DDS-ALL-FORMATS OF ACCTMST.
28 +1
5 ACCTMST-RECORD PIC X(82).
<-ALL-FMTS
+2\
FORMATO E-S:ACCNTREC DESDE ARCHIVO ACCTMST
DE BIBLIOTECA XMPLIB
<-ALL-FMTS
+3\
<-ALL-FMTS
+4\DEFINICIONES CLAVE PARA FORMATO DE REGISTRO ACCNTREC
<-ALL-FMTS
+5\ NMERO
NOMBRE
RECUPERACIN TIPO
SECALT
<-ALL-FMTS
+6\
1
ACCNTKEY
ASCENDENTE CON SIGNO NO
<-ALL-FMTS
29 +7
5 ACCNTREC
REDEFINES ACCTMST-RECORD.
<-ALL-FMTS
3 +8
6 ACCNTKEY
PIC S9(5).
<-ALL-FMTS
31 +9
6 NAME
PIC X(2).
<-ALL-FMTS
32 +1
6 ADDR
PIC X(2).
<-ALL-FMTS
33 +11
6 CITY
PIC X(2).
<-ALL-FMTS
34 +12
6 STATE
PIC X(2).
<-ALL-FMTS
35 +13
6 ZIP
PIC S9(5).
<-ALL-FMTS
36 +14
6 BALANCE
PIC S9(8)V9(2).
<-ALL-FMTS
3
37 31 FD DISPLAY-FILE
38 32
LABEL RECORDS ARE STANDARD.
39 33 1 DISPLAY-REC.
4 34
COPY DDS-ALL-FORMATS OF ACCTFMTS.
41 +1
5 ACCTFMTS-RECORD PIC X(2).
<-ALL-FMTS
+2\ FORMATO ENTRADA:ACCTPMT
DESDE ARCHIVO ACCTFMTS
DE BIBLIOTECA XMPLIB
<-ALL-FMTS
+3\
SOLICITUD CUENTA CLIENTE
<-ALL-FMTS
42 +4
5 ACCTPMT-I
REDEFINES ACCTFMTS-RECORD.
<-ALL-FMTS
43 +5
6 ACCTFROM
PIC S9(5).
<-ALL-FMTS
44 +6
6 ACCTTO
PIC S9(5).
<-ALL-FMTS
45 +7
6 TRANSAMT
PIC S9(8)V9(2).
<-ALL-FMTS
+8\ FORMATO SALIDA:ACCTPMT
DESDE ARCHIVO ACCTFMTS
DE BIBLIOTECA XMPLIB
<-ALL-FMTS
+9\
SOLICITUD CUENTA CLIENTE
<-ALL-FMTS
+1\
5 ACCTPMT-O
REDEFINES ACCTFMTS-RECORD.
<-ALL-FMTS
+11\ FORMATO ENTRADA:ERRFMT
DESDE ARCHIVO ACCTFMTS
DE BIBLIOTECA XMPLIB
<-ALL-FMTS
+12\
<-ALL-FMTS
+13\
5 ERRFMT-I
REDEFINES ACCTFMTS-RECORD.
<-ALL-FMTS
+14\ FORMATO SALIDA:ERRFMT
DESDE ARCHIVO ACCTFMTS
DE BIBLIOTECA XMPLIB
<-ALL-FMTS
+15\
<-ALL-FMTS
+16\
5 ERRFMT-O
REDEFINES ACCTFMTS-RECORD.
<-ALL-FMTS
46 35 WORKING-STORAGE SECTION.
47 36 77 ACCOUNT-FILE-STATUS
PIC X(2).
104
FECH/CAM
2/1/94
2/4/94
1/27/94
1/27/94
2/4/94
3/1/94
1/27/94
1/27/94
1/27/94
1/27/94
1/27/94
1/27/94
2/4/94
2/4/94
2/4/94
2/4/94
2/4/94
2/4/94
2/4/94
2/4/94
2/4/94
2/4/94
2/4/94
2/4/94
2/4/94
2/4/94
2/4/94
2/4/94
2/4/94
5763CB1 V3RM5
AS/4 COBOL Source
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN S NOMCOPIA
48 37 77 IND-ON
PIC 1
VALUE B"1".
49 38 77 IND-OFF
PIC 1
VALUE B"".
5 39 1 DISPFILE-INDICS.
51 4
COPY DDS-ALL-FORMATS-INDIC OF ACCTFMTS. .3/
52 +1
5 ACCTFMTS-RECORD.
<-ALL-FMTS
+2\ FORMATO ENTRADA:ACCTPMT
DESDE ARCHIVO ACCTFMTS
DE BIBLIOTECA XMPLIB
<-ALL-FMTS
+3\
SOLICITUD CUENTA CLIENTE
<-ALL-FMTS
53 +4
6 ACCTPMT-I-INDIC.
<-ALL-FMTS
54 +5
7 IN15
PIC 1 INDIC 15.
<-ALL-FMTS
+6\
FIN DE PROGRAMA
<-ALL-FMTS
55 +7
7 IN97
PIC 1 INDIC 97.
<-ALL-FMTS
+8\
NMERO DE CUENTA DESTINO NO VLIDO
<-ALL-FMTS
56 +9
7 IN98
PIC 1 INDIC 98.
<-ALL-FMTS
+1\
FONDOS INSUFICIENTES EN CUENTA ORIGEN
<-ALL-FMTS
57 +11
7 IN99
PIC 1 INDIC 99.
<-ALL-FMTS
+12\
NMERO DE CUENTA ORIGEN NO VLIDO
<-ALL-FMTS
+13\ FORMATO SALIDA:ACCTPMT
DESDE ARCHIVO ACCTFMTS
DE BIBLIOTECA XMPLIB
<-ALL-FMTS
+14\
SOLICITUD CUENTA CLIENTE
<-ALL-FMTS
58 +15
6 ACCTPMT-O-INDIC.
<-ALL-FMTS
59 +16
7 IN97
PIC 1 INDIC 97.
<-ALL-FMTS
+17\
NMERO DE CUENTA DESTINO NO VLIDO
<-ALL-FMTS
6 +18
7 IN98
PIC 1 INDIC 98.
<-ALL-FMTS
+19\
FONDOS INSUFICIENTES EN CUENTA ORIGEN
<-ALL-FMTS
61 +2
7 IN99
PIC 1 INDIC 99.
<-ALL-FMTS
+21\
NMERO DE CUENTA ORIGEN NO VLIDO
<-ALL-FMTS
+22\ FORMATO ENTRADA:ERRFMT
DESDE ARCHIVO ACCTFMTS
DE BIBLIOTECA XMPLIB
<-ALL-FMTS
+23\
<-ALL-FMTS
+24\
6 ERRFMT-I-INDIC.
<-ALL-FMTS
+25\ FORMATO SALIDA:ERRFMT
DESDE ARCHIVO ACCTFMTS
DE BIBLIOTECA XMPLIB
<-ALL-FMTS
+26\
<-ALL-FMTS
62 +27
6 ERRFMT-O-INDIC.
<-ALL-FMTS
63 +28
7 IN95
PIC 1 INDIC 95.
<-ALL-FMTS
64 +29
7 IN96
PIC 1 INDIC 96.
<-ALL-FMTS
41
65 42 PROCEDURE DIVISION.
43 DECLARATIVES.
44 ERROR-SECTION SECTION.
45
USE AFTER STANDARD EXCEPTION PROCEDURE ON ACCOUNT-FILE.
46 ERROR-PARAGRAPH.
66 47
IF ACCOUNT-FILE-STATUS IS NOT EQUAL "23" THEN
67 48
MOVE IND-ON TO IN96 OF ERRFMT-O-INDIC
.4/
49
ELSE
68 5
MOVE IND-ON TO IN95 OF ERRFMT-O-INDIC. .5/
69 51
WRITE DISPLAY-REC FORMAT IS "ERRFMT"
52
INDICATORS ARE ERRFMT-O-INDIC.
7 53
READ DISPLAY-FILE.
71 54
CLOSE DISPLAY-FILE
55
ACCOUNT-FILE.
72 56
STOP RUN.
57 END DECLARATIVES.
58 MAIN-PROGRAM SECTION.
59 MAINLINE.
73 6
OPEN I-O DISPLAY-FILE
61
I-O ACCOUNT-FILE.
74 62
MOVE ZEROS TO ACCTPMT-I-INDIC
63
ACCTPMT-O-INDIC.
75 64
PERFORM WRITE-READ-DISPLAY.
76 65
PERFORM VERIFY-ACCOUNT-NO UNTIL IN15 EQUAL IND-ON.
77 66
CLOSE DISPLAY-FILE
67
ACCOUNT-FILE.
78 68
STOP RUN.
69 VERIFY-ACCOUNT-NO.
79 7
PERFORM VERIFY-TO-ACCOUNT.
8 71
IF IN97 OF ACCTPMT-O-INDIC EQUAL IND-OFF THEN
81 72
PERFORM VERIFY-FROM-ACCOUNT.
82 73
PERFORM WRITE-READ-DISPLAY.
74 VERIFY-FROM-ACCOUNT.
83 75
MOVE ACCTFROM TO ACCNTKEY.
84 76
READ ACCOUNT-FILE
85 77
INVALID KEY MOVE IND-ON TO IN99 OF ACCTPMT-O-INDIC.
86 78
IF IN99 OF ACCTPMT-O-INDIC EQUAL IND-ON THEN .6/
79\
\
8
ROLLBACK
81\
\
87 82
ELSE
88 83
PERFORM UPDATE-FROM-ACCOUNT.
FECH/CAM
105
5763CB1 V3RM5
Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
84 VERIFY-TO-ACCOUNT.
89 85
MOVE ACCTTO TO ACCNTKEY.
9 86
READ ACCOUNT-FILE
91 87
INVALID KEY MOVE IND-ON TO IN97 OF ACCTPMT-O-INDIC. .7/
92 88
IF IN97 OF ACCTPMT-O-INDIC EQUAL IND-ON THEN
89\
\
9
ROLLBACK .8/
91\
\
93 92
ELSE
94 93
PERFORM UPDATE-TO-ACCOUNT.
94 UPDATE-TO-ACCOUNT.
95 95
ADD TRANSAMT TO BALANCE.
96 96
REWRITE ACCOUNT-RECORD.
97 UPDATE-FROM-ACCOUNT.
97 98
SUBTRACT TRANSAMT FROM BALANCE.
98 99
REWRITE ACCOUNT-RECORD.
99 1
IF BALANCE IS LESS THAN THEN
1 11
MOVE IND-ON TO IN98 OF ACCTPMT-O-INDIC
12\
\
13
ROLLBACK .9/
14\
\
11 15
ELSE
16\
\
17
COMMIT. .1/
18\
\
12 19 WRITE-READ-DISPLAY.
13 11
WRITE DISPLAY-REC FORMAT IS "ACCTPMT"
111
INDICATORS ARE ACCTPMT-O-INDIC. .11/
14 112
MOVE ZEROS TO ACCTPMT-I-INDIC
113
ACCTPMT-O-INDIC.
15 114
READ DISPLAY-FILE RECORD
115
INDICATORS ARE ACCTPMT-I-INDIC.
116
\ \ \ \ \
F I N
D E L F U E N T E \ \ \ \ \
NOMCOPIA
FECH/CAM
106
.1/
.2/
.3/
.4/
.5/
.6/
.7/
.8/
.9/
.1/
Si la transferencia de fondos ha sido vlida (no se han activado indicadores), se procesa la instruccin COMMIT, y todos los cambios realizados
en los archivos de base de datos bajo control de compromiso sern permanentes.
.11/
107
55ACCEPTidentific.FROMnomb-nemotc.5%
FORnomb-arch
108
Descripciones de Archivos
Todos los archivos en el sistema AS/400 se definen en el sistema operativo
OS/400. La amplitud hasta la que pueden definirse los archivos presenta las
siguientes diferencias:
Un archivo descrito por programa se describe a nivel de campo dentro del
programa COBOL en la Divisin de Datos. La descripcin del archivo para el
sistema operativo incluye la informacin acerca del tipo de archivo y de la longitud de los registros en el archivo.
Un archivo descrito externamente se describe a nivel de campo para el
sistema operativo mediante el IDDU, los mandatos SQL/400* o las DDS. Si
crea un archivo (por ejemplo, utilizando el mandato CRTPF) sin especificar las
DDS para ste, dicho archivo todava tendr una descripcin de campo. El
campo nico tendr el mismo nombre que el archivo, y tendr la longitud de
registro especificada en el mandato de crear.
La descripcin incluye la informacin acerca del tipo de archivo, como por
ejemplo de base de datos o de dispositivo, y una descripcin de cada campo y
sus atributos. El archivo debe crearse antes de que se compile el programa.
Tanto los archivos descritos externamente como los archivos descritos por programa deben definirse en el programa COBOL dentro de las secciones
INPUT-OUTPUT SECTION y FILE SECTION. Las descripciones de registros en la
seccin FILE SECTION para los archivos descritos externamente pueden definirse
con la instruccin COPY de Formato 2.
Las funciones dependientes de dispositivo, como por ejemplo el control de formularios, no las obtiene la operacin COPY de Formato 2. Slo se obtienen las descripciones a nivel de campo.
109
110
Descripcin a
Descripcin a
Descripcin a
Nivel de Campo
Nivel Registro
Nivel de campo
de un Archivo
de un Archivo
de un Archivo
6
6
6
6 6
COBOL .1/
COBOL .2/
COBOL .3/
COBOL .4/
Archivo
Archivo
Archivo
Archivo
Descrito
Descrito por
Descrito
Descrito
Externamente
Programa. El
por Programa.
Externamente
mediante
compilador no
mediante
DDS.
copia de la
DDS.
descripcin a
nivel de
campo.
Figura 31. Ejemplo que Muestra Cmo se Relaciona el COBOL con Archivos del AS/400
.1/
.2/
Un archivo descrito externamente se utiliza como archivo descrito por programa en el programa COBOL. Toda la descripcin de registro para el
archivo se codifica en el programa COBOL. Este archivo no tiene que existir
en tiempo de compilacin.
.3/
.4/
111
Nota: Para los archivos descritos externamente, los dos formatos de archivo
deben ser los mismos. De lo contrario, se produce un error de comprobacin de nivel.
112
G X 2 1 - 9 8 9 1 - 0
A S / 4 0 0 E S P E C I F I C A C I O N E S D E D E S C R I P C I O N D E D AT O S
Inter national
B usiness
Machines
*El
Archivo
Signo
nmero
de
hojas
por
rea
de
Impreso
relleno puede
Descripcin
variar
Pgina
U M / 0 5 0 *
en
Espaa
ligeramente.
de
Instrucciones
de Grabacin
10
1 1
1 2
1 3
1 4
1 5
A
A *
1 8
1 9
2 0
2 1
2 2
2 3
2 4
2 5
D S T R E F
R
C AMP O S
2 6
2 7
2 8
2 9
Tipo
3 0
3 1
3 2
T E X T O
3 3
3 4
3 5
(b/O /I/B/H/M/N/P)
Referencia (R)
Reservado
Nombre
1 7
Datos/Desplazamiento Teclado
(/b / R / H / J / K / S / O )
1 6
Tipo
No (N)
Indicador
No (N)
Indicador
Espec
(A/O/*)
7
A * * F L D R E F
Longitud
3 6
U t i l i z a c/i n
Nom bre
D ecimales
Indicador
de
2
And/Or/Coment.
Tipo
1
Nombre Condicin
No (N)
Secuencia
Formula rio
Condicionamiento
N mero d e
Tecla
Fecha
Posiciones
Programador
3 7
3 8
Ubicacin
Funciones
Lnea
3 9
CON S U L
4 0
4 1
T A
P o s
4 2
4 3
D S T R E F
U S U A L M E N T E
B A S D A T
Z A DO S
6
C OMO
U T
Z A DO S
P O R
C U S T
A R C H .
MA E S T R O
N AM E
A D D R
C I
2 0
C L
' C AM P O
5 9
T A
6 0
6 1
6 2
6 3
6 4
6 5
6 6
6 7
D E
C AMP O
D A T O S
6 8
6 9
D I
D I
7 0
7 1
7 2
S T R
S T R
7 3
7 4
7 5
7 6
7 7
7 8
7 9
' N OM B R E
CO L H DG (
T E X T (
I E N T E
I B U C I ON '
B A S E )
'
' N UM E R O '
D E
C L
' D I R E CC I ON
D E
' C I U D A D
E N T E
)
'
C L
I E N T E
'
T E X T (
U S
8
A
R
A
R
'
'
)
C L
I E N T E
'
)
' P O S T A L
'
5 )
' C L
I E N '
I P O
C L
E N T E
5 = O T R
'
CO L H DG (
' C U E N T
E D T CD E (
J )
R E F F L D ( A R B A L
)
E N
'
I MP
R E F F L D ( A R B A L
' U L
' U L
'
'
I P O '
P O R
CO L H DG (
T E X T (
E N T E
B U S Q U E D A
4 = P T
CO L H DG (
' B U S Q U E D A '
R A NG E ( 1
CO L H DG (
C L
' P R OV I NC I A '
C H E C K ( M F
D E
' COD I GO
CO L H DG (
1 = GO B
CO B R A R
A / R
'
2 = P L A N
'
' A R C H
'
3 = B +
S A L D O '
P E D I D O S
'
)
'
I MP
I MP OR T E
'
E N
)
A / R
'
A
A
A
A
8 0
I B U C I N
CO L H DG (
CO L H DG (
L S T AM T
5 8
' C L
C H E C K ( M F
OR D B A L
5 7
CO L H DG (
A R B A L
5 6
I C AC I ON E S
E N T E S
S R H COD
C U S T Y P
5 5
E D T CD E ( Y )
C H E C K ( M F
I P
5 4
' CON S U L
CO L H DG (
5 3
T A
5 2
A P L
S T A T E
5 1
R E F F L D ( N OM B R E )
5 0
CO L H DG (
T Y
4 9
D E
R E F F L D ( N OM B R E )
4 8
C H E C K ( M F
4 7
T E X T (
C AMP O S
4 6
CON S U L
4 5
T E X T (
U T
A
A *
4 4
C AMP O
113
.3/
.4/
.5/
.6/
.7/
114
G X 2 1 - 9 8 9 1 - 0
A S / 4 0 0 E S P E C I F I C A C I O N E S D E D E S C R I P C I O N D E D AT O S
Inter national
Business
Machines
*El
Archivo
Signo
nm e ro
de
hojas
por
rea
de
Impreso
re lleno
Descripcin
puede
variar
Pgina
U M / 0 5 0 *
en
Espaa
ligeramente.
de
Instrucciones
de Grabacin
1 0
1 1
1 2
1 3
1 4
1 5
1 8
19
2 0
2 1
2 2
2 3
2 4
2 6
2 7
2 8
2 9
3 0
3 1
3 2
3 3
3 4
3 5
A R C H I VO
(b/O/I/B/H/M/N/P)
3 6
3 7
3 8
Ubicacin
Funciones
Lnea
3 9
4 0
4 1
P os
4 2
4 3
MA E S T R O
4 4
4 5
4 6
4 7
D E
4 8
4 9
C L
5 0
5 1
5 2
5 3
5 4
5 5
5 6
5 7
5 8
5 9
6 0
6 1
6 2
6 3
6 4
6 5
6 6
6 7
6 8
6 9
7 0
7 1
7 2
7 3
7 4
7 5
7 6
'
7 7
7 8
7 9
I E N T E
U N I Q U E
R
C U S R E C
P F
L E ( C U S M S T P )
T E X T
C U S T
N AM E
A D D R
C I
S T A T E
S R H COD
' R E G I
S T R O
MA E S T R O
C L
I E N T E
C U S T Y P
I P
A R B A L
OR D B A L
L S T AM T
L S T D A T
C R D L M T
T Y
S L S Y R
A
A
2 5
C U S M S T L
A
A *
Referencia (R)
Reservado
Nombre
1 7
L OG I C A L
(/b / R / H / J / K / S / O )
1 6
Tipo
No (N)
Indicador
No (N)
Indicador
Espec
(A/O/*)
7
A * *
Longitud
U t i l i z a c/i n
N om b re
D ecimales
Indicador
de
2
And/Or/Coment.
Tipo
1
Nombre Co ndicin
No (N)
Secuencia
Formula rio
Condicionamiento
N mero de
Tecla
Fecha
Posiciones
Programador
S L S L Y R
K
C U S T
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
Figura 33. Ejemplo de las Especificaciones de Descripcin de Datos para un Archivo Lgico
.1/
.2/
.3/
.4/
.5/
115
8 0
CUS-MASTER.
COPY DDS-CUSREC OF CUSLIB-CUSTMAST.
\FORMATO E-S: CUSREC DE ARCHIVO CUSTMAST DE BIBL. CUSLIB
\
REGISTRO MAESTRO CLIENTE
\LAS DEFINICIONES DE CLAVE PARA FORMATO DE REGISTRO CUSREC
\NUMERO
NOMBRE RECUPERAC. TIPO
SECALT
\1
CLIENTE ASCENDENTE AN
NO
5
CUSREC.
6 CUST
PIC X(5).
\
NUMERO CLIENTE
6 NAME
PIC X(2).
\
NOMBRE CLIENTE
6 ADDR
PIC X(2).
\
DIRECCION CLIENTE
6 CITY
PIC X(2).
\
CIUDAD CLIENTE
6 STATE
PIC X(2).
\
ABREVIATURA PROVINCIA
6 ZIP
PIC S9(5)
COMP-3.
\
CODIGO POSTAL
6 SHRCOD
PIC X(6).
\
CODIGO BUSQUEDA NOMBRE CLIENTE
6 CUSTYP
PIC 9(1).
\
TIPO CLIENTE
6 ARBAL
PIC S9(6)V9(2)
COMP-3.
\
SALDO CUENTAS PEND.
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
116
G X 2 1 - 9 8 9 1 - 0
A S / 4 0 0 E S P E C I F I C A C I O N E S D E D E S C R I P C I O N D E D AT O S
Inter national
B usiness
Machines
*El
Archivo
Signo
nmero
de
hojas
por
rea
de
Impreso
relleno puede
Descripcin
variar
Pgina
U M / 0 5 0 *
en
Espaa
ligeramente.
de
Instrucciones
de Grabacin
A * *
10
1 1
1 2
1 3
1 4
1 5
1 8
1 9
2 0
2 1
2 2
2 3
2 4
A
A *
2 5
C U S M S T L
2 6
2 7
2 8
2 9
3 0
3 1
3 2
3 3
3 4
3 5
(b/O /I/B/H/M/N/P)
3 6
A R C H I VO
3 7
Ubicacin
Funciones
U t i l i z a c/i n
Tipo
Datos/Desplazamiento Teclado
Longitud
Referencia (R)
Reservado
Nombre
1 7
L OG I C A L
Nom bre
D ecimales
(/b / R / H / J / K / S / O )
1 6
Tipo
No (N)
Indicador
No (N)
Indicador
Espec
(A/O/*)
7
Indicador
de
2
And/Or/Coment.
Tipo
1
Nombre Condicin
No (N)
Secuencia
Formula rio
Condicionamiento
N mero d e
Tecla
Fecha
Posiciones
Programador
3 8
Lnea
3 9
4 0
4 1
P o s
4 2
4 3
4 4
MA E S T R O
4 5
4 6
4 7
C L
4 8
4 9
5 0
5 1
5 2
5 3
5 4
5 5
5 6
5 7
5 8
5 9
6 0
6 1
6 2
6 3
6 4
6 5
6 6
6 8
6 9
7 0
7 1
7 2
7 3
7 4
7 5
7 6
'
7 7
7 8
7 9
U N I Q U E
R
C U S R E C
P F
L E ( C U S M S T P )
T E X T (
' R E G I
S T R O
MA E S T R O
C U S T
A L
I A S ( N U M E R O _C L
I E N T E )
N AM E
A L
I A S ( N OM B R E
I E N T E )
A D D R
A L
I A S ( D I R E CC I ON )
C I
I A S ( COD I GO _B U S Q U E D A )
_C L
S T A T E
S R H COD
A L
C U S T Y P
A L
I A S (
A R B A L
A L
I A S ( S A L D O _C U E N T A S
OR D B A L
I E N T E
L S T AM T
I P
L S T D A T
C R D L M T
C L
T Y
I P O _C L
E N T E
)
_P O R
CO B R A R )
S L S Y R
A
A
6 7
I E N T E S
S L S L Y R
K
C U S T
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
.1/
117
8 0
CUS-MASTER.
COPY DD-CUSREC OF CUSLIB-CUSTMAST.
\FORMATO E-S: CUSREC DESDE CUSTMAST DE BIBLIOTECA CUSLIB
\
REGISTRO MAESTRO CLIENTE
\LAS DEFINICIONES DE CLAVE PARA FORMATO DE REGISTRO CUSREC
\NUMERO
NOMBRE
RECUPERAC. TIPO
SECALT
\1
NUMERO-CLIENTE
ASCENDENTE AN
NO
5
\
\
\
\
\
\
\
\
\
CUSREC.
6 CUSTOMER-NUMBER PIC X(5).
NUMERO CLIENTE
6 CUSTOMER-NAME
PIC X(2).
NOMBRE CLIENTE
6 ADDRESS
PIC X(2).
DIRECCION CLIENTE
6 CITY
PIC X(2).
CIUDAD CLIENTE
6 STATE
PIC X(2).
ABREVIATURA PROVINCIA
6 ZIP
PIC S9(5)
COMP-3.
CODIGO POSTAL
6 SEARCH-CODE
PIC X(6).
CODIGO BUSQUEDA NOMBRE CLIENTE
6 CUSTOMER-TYPE
PIC 9(1)
TIPO CLIENTE
6 ACCT-REC-BALANCE PIC S9(6)V9(2)
COMP-3.
SALDO CUENTAS PEND.
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
Figura 36. Ejemplo de los Resultados de la Instruccin COPY de Formato 2 (DD) con la
Palabra Clave ALIAS
Ampliacin de IBM
55COPYDD-nombre-formato 5
DD-ALL-FORMATS -I -INDICATOR
DDR-nombre-formato -O -INDICATORS
DDS-nombre-formato
DDS-ALL-FORMATS
DDSR-nombre-formato
DDSR-ALL-FORMATS
5OFnombre-archivo5
IN nombre-biblioteca
SUPPRESS
55%
identificador-1
identificador-2
literal-1
literal-2
palabra-1
palabra-2
118
Puede utilizar la instruccin COPY de Formato 2 (opcin DD, DDR, DDS o DDSR)
para crear instrucciones de Divisin de Datos COBOL para describir un archivo
existente en el sistema. Estas descripciones se basan en la versin del archivo
existente en tiempo de compilacin. No utilizan ninguna sentencia fuente DDS del
archivo. Consulte la seccin Instruccin COPY de la publicacin COBOL/400
Reference para ms informacin acerca de la instruccin COPY
Nota: El trmino instruccin COPY de Formato 2 indicar la instruccin COPY de
Formato 2 (opcin DD, DDR, DDS o DDSR) a travs de este manual.
La instruccin COPY de Formato 2 slo se utiliza en la Divisin de Datos. Debe
asegurarse que un tem a nivel de grupo que tiene un nmero de nivel menor que
05 precede a la instruccin.
La opcin DD se utiliza para hacer referencia a los nombres ALIAS (alternativos).
La especificacin de un nombre de ALIAS en las DDS permite que un nombre de
datos de hasta 30 caracteres se incluya en el programa COBOL.
Cuando se utiliza la opcin DD, cualquier nombre de ALIAS presente sustituye a
los nombres de campos de las DDS correspondientes. Todos los subrayados en
los nombres ALIAS se convierten en guiones antes de producirse alguna sustitucin.
La opcin DDR hace todo lo que hace la opcin DD. Tambin copia los nombres
de campo de formato DDS internos, sustituyendo los caracteres COBOL no vlidos
(@, #, $ y _) por los caracteres COBOL vlidos A, N, D y - segn proceda. Esta
opcin tambin elimina cualquier subrayado desde el final de los nombres de
campo.
La opcin DDS copia los nombres de campos de formato interno DDS. Para ver
ejemplos de claves y nombres de claves que pueden generarse cuando utilice la
opcin DDS de la instruccin COPY de Formato 2, consulte las pginas 127 a 133.
La opcin DDSR hace todo lo que hace la opcin DDS. Tambin copia los
nombres de campo de formato DDS internos, sustituyendo los caracteres COBOL
no vlidos (@, #, $, y _) por los caracteres COBOL vlidos A, N, D, y -, segn
proceda. Esta opcin tambin elimina cualquier subrayado desde el final de los
nombres de campo.
El ejemplo siguiente muestra el efecto de la opcin DDR o DDSR en nombres de
campos COBOL no vlidos:
Nombre de campo original
FLD_A
NUMBER#1
NUMBERN1
POINT@7
POINTA7
BALANCE$
BALANCED
119
120
SELECT FILE-X
ASSIGN TO DATABASE-CUSTMASTER.
..
.
FD
FILE-X
LABEL RECORDS ARE STANDARD.
01 FILE-X-RECS.
COPY DDS-ALL-FORMATS OF
CUSTMASTER-QGPL. (Vea Nota 1.)
..
.
WORKING-STORAGE SECTION.
01 ADR-REC.
COPY DDS-CUSTADR OF
CUSTMASTER.
(Vea Nota 2.)
01 DETAIL-REC.
COPY DDS-CUSTDETL OF
CUSTMASTER.
(Vea Nota 2.)
Notas:
1. Esta instruccin COPY slo genera un rea de almacenamiento para todos los
formatos.
2. Estas instrucciones COPY generan reas de almacenamiento separadas.
Indicadores
Los indicadores son tems de datos Booleanos que pueden tener los valores B"0"
B"1".
Cuando define un formato de registro para un archivo utilizando las DDS, puede
condicionar las opciones utilizando indicadores; los indicadores tambin pueden utilizarse para reflejar respuestas particulares. Estos indicadores se conocen como
OPTION y RESPONSE, respectivamente. Los indicadores de opcin proporcionan
opciones tales como espaciado, subrayado y permiso o peticin de transferencia
de datos desde un programa a una impresora o dispositivo de pantalla. Los indicadores de respuesta proporcionan informacin de respuesta a un programa desde
un dispositivo, como por ejemplo las teclas de funcin pulsadas por un usuario de
estacin de trabajo, y si se han introducido los datos.
Pueden utilizarse indicadores con archivos TRANSACTION y FORMATFILE, pero
nunca con archivos de base de datos.
121
Posible entrada
NMERO
NOMBRE
RECUPERACION
TIPO
SECALT
122
Tipo de datos
(pos. 35)
A
H
L
T
Z
J
E
O
G
Por omisin
PIC X(n)
PIC S9(n-m)V9(m)
Decimal empaquetado
Caracteres numricos
decimales/marcados con zona
Binario
Coma flotante
precisin simple
precisin doble
Carcter
Datos hexadecimales
Fecha
Hora
Indicacin horaria
Datos nicamente DBCS
Cualquier tipo de datos DBCS
Datos DBCS abiertos
Datos DBCS grficos
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
9(5) COMP-4
9(10) COMP-4
X(n)
X(n)
X(n)
X(n)
X(n)
X(n)
X(n)
X(n)
X(2n)
ARCHIVOS DE PANTALLA
(En
blanco)
X
N
Y
I
W
A
D
F
M
S
E
J
O
G
Por omisin
PIC X(n)
PIC S9(n-m)V9(m)
Slo alfabtico
Desplazamiento numrico
Slo numrico
Entrada de teclado no habilitada
Katakana
Desplazamiento alfanumrico
Slo dgitos
Coma flotante
precisin simple
precisin doble
Carcter slo numrico
Desplazamiento numrico
marcado
Cualquier tipo de datos DBCS
Slo DBCS
Datos DBCS abiertos
Datos DBCS grficos
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
X(n)
X(n)
X(n)
X(n)
X(n)
X(n)
S9(n-m)V9(m)
S9(n-m)V9(m)
S9(n-m)V9(m)
S9(n)
PIC S9(n-m)V9(m)
PIC
PIC
PIC
PIC
X(n)
X(n)
X(n)
X(2n)
COBOL considera los campos de coma flotante como de RELLENO. Vase "Campos de coma flotante".
En DDS, si el campo tiene un atributo VARLEN, se aaden dos bytes adicionales al comienzo del campo.
tems FILLER por omisin. Vase "Campos de Fecha, Hora y de indicacin horaria".
Estructuras de Indicador
Si se solicitan los indicadores, y existen en el formato, se genera un nombre de
grupo adicional (nivel 06) al principio de la estructura, seguido de las entradas
(nivel 07) para los indicadores individuales relevantes.
06
nombre-formato(-I o -O)-INDIC.
07 INxx PIC 1 INDIC xx.
Captulo 7. Gestin de Archivos y Datos
123
Por ejemplo:
06
SAMPLE1-I-INDIC.
07 IN01 PIC 1 INDIC
07 IN04 PIC 1 INDIC
07 IN05 PIC 1 INDIC
07 IN07 PIC 1 INDIC
06 FLD1 PIC ... .
06 FLD2 PIC ... .
01.
04.
05.
07.
124
1 RCUSREC.
COPY DDS-CUSREC-I OF CUSFILE.
\
FORMATO E-S: CUSREC DESDE ARCHIVO CUSFILE DE BIBL. CUSLIB
\
DEFINICIONES DE CLAVE PARA FORMATO DE REGISTRO CUSREC
\
NUMERO NOMBRE RECUPERACION TIPO SECALT
\
1 ARBAL ASCENDING SIGNED NO
\
2 AREACD DESCENDING ABSVAL NO
5
CUSREC.
6
ARBAL
PIC S9(7)V9(2)
COMP-3
6
AREACD
PIC S9(3)
COMP-3.
6
BOSTAZ
PIC X(1).
6
CNTCT
PIC X(15).
6
CRCHKZ
PIC S9(2).
6
CSTAT
PIC X(1).
6
CUSTNZ
PIC S9(6).
6
DLORD
PIC S9(6).
6
DSCPCZ
PIC S9(2)V9(3)
COMP-3.
6
INDUS
PIC S9(2).
6
NAME1
PIC X(25).
6
NAME2
PIC X(25).
6
NAME3
PIC X(25).
6
NAME4
PIC X(25).
6
PHONE
PIC S9(7)
COMP-3.
6
PRICIZ
PIC S9(2).
6
SHPINZ
PIC X(25).
6
SLSMAZ
PIC X(3).
6
TAXCDZ
PIC S9(2).
6
TERMSZ
PIC S9(2).
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
CUSREC
Redefinicin de Formatos
Preste especial atencin a la clusula REDEFINES que puede generarse para las
frases ALL-FORMATS o -I-O. Debido a que todos los formatos se redefinen en la
misma rea (generalmente un rea de almacenamiento intermedio), varios
nombres de campo pueden describir la misma rea de almacenamiento, y pueden
producirse resultados imprevisibles si no se vuelve a inicializar todo el rea del
formato antes de cada operacin de salida.
Los tems de datos que estn subordinados a los tems de datos especificados en
una instruccin MOVE CORRESPONDING no se corresponden y no se trasladan
cuando contienen una clusula REDEFINES o estn subordinados a un tem
redefinitorio.
Para evitar la reinicializacin, se pueden utilizar varias instrucciones COPY de
Formato 2 que utilicen sufijos -I y -O para crear reas de almacenamiento separadas en la Seccin de Almacenamiento de Trabajo (Working Storage) de cada
125
..
.
..
.
..
.
..
.
..
.
126
FD ORDER-ENTRY-SCREEN ...
1 ORDER-ENTRY-RECORD ...
WORKING-STORAGE SECTION.
1 ORDSFL-I-FORMAT.
COPY DDS-ORDSFL-I OF DOESCR.
1 ORDSFL-O-FORMAT.
COPY DDS-ORDSFL-O OF DOESCR.
PROCEDURE DIVISION.
READ SUBFILE ORDER-ENTRY-SCREEN NEXT MODIFIED RECORD
INTO ORDSFL-I-FORMAT FORMAT IS "ORDSFL"
AT END SET NO-MODIFIED-SUBFILE-RCD TO TRUE.
MOVE CORR ORDSFL-I TO ORDSFL-O.
REWRITE SUBFILE ORDER-ENTRY-RECORD FROM ORDSFL-O-FORMAT
FORMAT IS "ORDSFL" ...
10
11
12
13
14
15
16
17
AR CH I VO
18
19
20
21
22
23
24
F I S I CO
25
26
27
28
P F 1
29
30
31
Descripcin
32
33
P AR A
34
No (N)
Indicador
No (N)
Indicador
Indicador
9
Longitud
Referencia (R)
Nom bre
Reservado
T i p o N o m b r e o E s p e c (/b / R / H / J / K / S / O )
A *
Nombre Condicin
Impreso en Espaa
Pgina
de
Tecla
35
36
U t i l i z a c/i n ( b / O / I / B / H / M / N / P )
de Grabacin
D ecimales
Secuencia
N mero d e
No (N)
Condicionamiento
Signo
Instrucciones
Fecha
Posiciones
Archivo
Programador
GX21-9891-0 UM/050*
37
38
Ubicacin
Funciones
Lnea
39
40
41
Pos
42
E J E MP L O S
43
44
45
D E
46
47
48
49
50
51
52
53
54
55
56
G E N E R AC I ON
57
58
59
D E
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
C L AV E S
A *
A
P F R E COR C
A *
A
M T H
A *
DA Y
Y E AR
I T EM
A
A
A
M T H
DA Y
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
El archivo fsico de la Figura 40 constituye una base para los ejemplos que aparecen a continuacin. Cada ejemplo hace referencia a un archivo lgico (derivado
del archivo fsico) que especifica EXTERNALLY-DESCRIBED-KEY en su clusula
SELECT.
127
80
10
11
12
13
14
15
16
17
A R CH I VO
18
19
20
21
22
23
L OG I C O
24
25
26
27
L F 1
28
29
30
31
Descripcin
No (N)
Indicador
No (N)
Indicador
Indicador
9
Longitud
Referencia (R)
Nom bre
Reservado
T i p o N o m b r e o E s p e c (/b / R / H / J / K / S / O )
A *
Nombre Condicin
Impreso en Espaa
Pgina
de
Tecla
32
P AR A
33
34
35
36
U t i l i z a c/i n ( b / O / I / B / H / M / N / P )
de Grabacin
D ecimales
Secuencia
N mero d e
No (N)
Condicionamiento
Signo
Instrucciones
Fecha
Posiciones
Archivo
Programador
GX21-9891-0 UM/050*
37
38
Ubicacin
Funciones
Lnea
39
40
41
E J E MP L O S
Pos
42
43
44
D E
45
46
47
48
49
50
51
52
53
54
55
CONCA T E N A R
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
C L AV E S
A *
A
R E COR D 1
P F I L E ( P F 1 )
DA T E
CONCA T ( ME S
A *
A
D I A
A O )
A *
A
M T H
DA Y
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
Para el archivo lgico de la Figura 41, COPY DDS genera claves y nombres de
claves derivados del archivo fsico:
128
78
79
80
FD
1
\
DE BIBLIOTECA COPYDDS
\
\DEFINICIONES DE CLAVE PARA FORMATO DE REGISTRO RECORD1
\ NUMERO
NOMBRE
RECUPERAC.
TIPO
SECALT
\
1
MTH-DDS
ASCENDENTE
AN
NO
\
NOMBRE DE CLAVE ORIGINADO DEL ARCHIVO FISICO
\
2
DAY-DDS-DDS
ASCENDENTE
AN
NO
\
NOMBRE DE CLAVE ORIGINADO DEL ARCHIVO FISICO
5 RECORD1
REDEFINES LF1-RECORD.
6 DATE-DDS
PIC X(8).
6 FILLER REDEFINES DATE-DDS.
7 MTH-DDS
PIC X(2).
7 DAY-DDS-DDS
PIC X(2).
7 FILLER
PIC X(4).
La instruccin COPY aade el sufijo -DDS a los nombres de campos MTH y DATE
porque MTH es una clave que tiene su origen en el archivo fsico, y DATE es una
palabra reservada COBOL. La instruccin COPY aade el sufijo -DDS dos veces
en el nombre de campo DAY porque DAY es a la vez una clave que se origina en
el archivo fsico y una palabra reservada COBOL.
Observe que si mueve la instruccin COPY de la Seccin de Archivos a la Seccin
de Almacenamiento de Trabajo o a la Seccin de Enlace, los campos subordinados a DATE-DDS ya no estn disponibles:
WORKING-STORAGE SECTION.
1
WRK-RECORD.
COPY DDS-ALL-FORMATS OF LF1.
5 LF1-RECORD PIC X(8).
\
FORMATO E-S:RECORD1
DESDE ARCHIVO LF1
\
5 RECORD1
REDEFINES LF1-RECORD.
6 DATE-DDS
PIC X(8).
DE BIBLIOTECA COPYDDS
Figura 43. Ejemplo que Utiliza la Palabra Clave CONCAT-- Seccin de Almacenamiento de
Trabajo
129
10
11
12
13
14
15
16
17
AR CH I VO
18
19
20
21
22
23
24
25
L OG I C O
26
27
28
L F 2
29
30
31
Descripcin
32
33
P AR A
34
No (N)
Indicador
No (N)
Indicador
Indicador
9
Longitud
Referencia (R)
Nom bre
Reservado
T i p o N o m b r e o E s p e c (/b / R / H / J / K / S / O )
A *
Nombre Condicin
Impreso en Espaa
Pgina
de
Tecla
35
36
U t i l i z a c/i n ( b / O / I / B / H / M / N / P )
de Grabacin
D ecimales
Secuencia
N mero d e
No (N)
Condicionamiento
Signo
Instrucciones
Fecha
Posiciones
Archivo
Programador
GX21-9891-0 UM/050*
37
38
Ubicacin
Funciones
Lnea
39
40
41
Pos
42
E J E MP L O S
43
44
45
46
47
48
49
50
51
52
53
54
55
R E D E N OM I N A R
56
57
58
59
60
61
62
P A L AB R A
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
C L AV E
A *
A
R E COR D 2
P F I L E ( P F 1 )
MO N T H
R E N AM E ( M E S )
A *
A
A *
A
M T H
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
Para el archivo lgico descrito en la Figura 44, COPY DDS genera una clave y un
nombre de clave derivados del archivo fsico:
130
80
FD
1
\
DE BIBLIOTECA COPYDDS
\
\DEFINICIONES DE CLAVE PARA FORMATO DE REGISTRO RECORD2
\ NUMERO
NOMBRE
RECUPERAC.
TIPO
SECALT
\
1
MTH-DDS
ASCENDENTE
AN
NO
\
NOMBRE DE CLAVE ORIGINADO DEL ARCHIVO FISICO
5 RECORD2
REDEFINES LF2-RECORD.
6 MONTH
PIC X(2).
6 MTH-DDS REDEFINES MONTH PIC X(2).
La instruccin COPY aade el sufijo -DDS al nombre de campo MTH porque MTH
es una clave que tiene su origen en el archivo fsico.
131
10
11
12
13
14
15
16
17
AR CH I VO
18
19
20
21
22
23
24
25
L OG I C O
26
27
28
L F 3
29
30
31
Descripcin
32
33
P AR A
34
No (N)
Indicador
No (N)
Indicador
Indicador
9
Longitud
Referencia (R)
N om b re
Reservado
T i p o N o m b r e o E s p e c (/b / R / H / J / K / S / O )
A *
Nombre Co ndicin
35
36
37
38
Lnea
39
40
41
Pos
42
E J E MP L O S
R E COR D 3
Y Y
43
44
45
D E
46
47
48
49
50
51
52
53
54
P A L AB R A
55
56
57
58
59
C L AV E
P F I L E ( P F 1 )
S S T ( AO
2 )
A *
A
Y Y
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
Figura 46. Especificaciones de Descripcin de Datos que Utilizan la Palabra Clave SST
132
de
Funciones
A *
A
Pgina
Ubicacin
A *
A
Impreso en Espaa
Tecla
U t i l i z a c/i n ( b / O / I / B / H / M / N / P )
de Grabacin
D ecimales
And/Or/Coment. (A/O/*)
Secuencia
N mero de
No (N)
Condicionamiento
Signo
Instrucciones
Fecha
Posiciones
Archivo
Programador
GX21-9891-0 UM/050*
*El nm e ro de hojas por rea de re lleno puede variar lige ram ente .
60
61
62
63
S S T
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
FD
1
\
DE BIBL. COPYDDS
\
\DEFINICIONES DE CLAVE PARA FORMATO DE REGISTRO RECORD3
\ NUMERO
NOMBRE
RECUPERAC.
TIPO
SECALT
\
1
YY
ASCENDENTE
AN
NO
5 RECORD3
REDEFINES LF3-RECORD.
6 YY
PIC X(2).
133
Por ejemplo:
5763CB1 V3RM5
Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
15\
16\ COPY DDS S I N OPCIN REPLACING
17\
14 18 COPY DDS-CUSMST OF CUSMSTP.
+1\
FORMATO E-S:CUSMST
DESDE ARCHIVO CUSMSTP DE BIBL. COBNATEX
+2\
REGISTRO MAESTRO CLIENTE
15 +3
5 CUSMST.
16 +4
6 CUST
PIC X(5).
+5\
NMERO CLIENTE
17 +6
6 NAME
PIC X(25).
+7\
NOMBRE CLIENTE
18 +8
6 ADDR
PIC X(2).
+9\
DIRECCIN CLIENTE
19 +1
6 CITY
PIC X(2).
+11\
CIUDAD CLIENTE
2 +12
6 STATE
PIC X(2).
+13\
PROVINCIA
21 +14
6 ZIP
PIC S9(5)
COMP-3.
+15\
CDIGO POSTAL
NOMCOPIA
FECH/CAM
3/25/94
3/25/94
3/25/94
3/25/94
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
5763CB1 V3RM5
Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
19\
2\ COPY DDS C O N OPCION REPLACING
21\
31 22 COPY DDS-CUSMST OF CUSMSTP
32 23
REPLACING NAME BY ADDR-LINE-1
33 24
ADDR BY ADDR-LINE-2
34 25
CITY BY ADDR-LINE-3.
+1\
FORMATO E-S:CUSMST
DESDE ARCHIVO CUSMSTP DE BIBL. COBNATEX
+2\
REGISTRO MAESTRO CLIENTE
35 +3
5 CUSMST.
36 +4
6 CUST
PIC X(5).
+5\
NMERO CLIENTE
37 +6
6 ADDR-LINE-1
PIC X(25).
+7\
NOMBRE CLIENTE
38 +8
6 ADDR-LINE-2
PIC X(2).
+9\
DIRECCIN CLIENTE
39 +1
6 ADDR-LINE-3
PIC X(2).
+11\
CIUDAD CLIENTE
4 +12
6 STATE
PIC X(2).
+13\
PROVINCIA
41 +14
6 ZIP
PIC S9(5)
COMP-3.
+15\
CDIGO POSTAL
NOMCOPIA
FECH/CAM
3/25/94
3/25/94
3/25/94
3/25/94
3/25/94
3/25/94
3/25/94
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
Va de Acceso
La descripcin de un archivo descrito externamente contiene la va de acceso que
describe cmo se recuperan los registros del archivo. Los registros pueden recuperarse basndose en una va de acceso en secuencia de llegada (sin clave) o en
una va de acceso en secuencia de claves.
134
135
Comprobacin de Nivel
Cuando un programa COBOL/400 utiliza un archivo descrito externamente, el
sistema operativo proporciona una funcin de comprobacin de nivel (LVLCHK).
Esta funcin asegura que el formato no se ha modificado desde el momento de la
compilacin.
El compilador siempre proporciona la informacin requerida por la comprobacin
de nivel cuando se utiliza un archivo descrito externamente (es decir, cuando una
descripcin de registro del archivo se ha definido utilizando la instruccin COPY de
Formato 2). Slo se comprueba el nivel de aquellos formatos que ha copiado la
instruccin COPY de Formato 2 bajo el FD para un archivo. La funcin de comprobacin de nivel se iniciar en tiempo de ejecucin basndose en la seleccin
realizada en los mandatos de crear, cambiar o alterar temporalmente archivo. La
opcin por omisin en el mandato de crear archivo es pedir la comprobacin de
nivel. Si se solicit la comprobacin de nivel, se produce segn el formato de
registro cuando se abre el archivo. Si se produce un error en la comprobacin de
nivel, COBOL establece el estado de archivo a 39 en tiempo de OPEN.
Si no se ha solicitado comprobacin de nivel, y el archivo se vuelve a crear utilizando un formato existente, puede que los programas COBOL que utilicen dicho
formato no trabajen sin recompilacin, dependiendo de los cambios en el formato.
Por ejemplo,
Un cambio de claves provocar, con toda certeza, una anomala en el programa o en cualquier instruccin I/O
Un cambio en la longitud de registro provocar una anomala de cualquier
REWRITE
Un cambio en el diseo de registro puede provocar diversos errores en el
proceso de dicho registro.
Deber extremar las precauciones cuando utilice programas COBOL sin comprobacin de nivel o sin recompilar los programas.
136
ITEM1.
49 ITEM1-LENGTH
49 ITEM1-DATA
donde n representa la longitud mxima del campo de longitud variable. Dentro del
programa, PIC S9(4) COMP-4 se considera como cualquier otra declaracin de este
tipo, y PIC X(n) como un estndar alfanumrico.
Puesto que el valor mximo que ITEM1-LENGTH puede mantener es 9 999, sta
ser la longitud del campo de longitud variable ms largo que se pueda escribir
desde un programa COBOL.
Cuando no se especifica *VARCHAR, se hace caso omiso de los campos de longitud variable y se declaran como campos FILLER en programas COBOL/400. Si
se especifica *NOVARCHAR, el tem se declara como sigue:
6
FILLER
PIC x(n+2).
137
5 long. datos-caract.
5
BIN(2)
CHAR(N)
&
longitud declarada en DDS
Para campos de caract. de solo byte:
+ 2(N)
138
139
1 byte 1 byte 1 byte 1 byte
Datos de un
solo byte
Datos DBCS
grficos
1 carcter
1 carcter
Figura 51. Comparacin de Datos de un Solo Byte y Datos Grficos
6 FILLER
PIC X(2n+2).
(Campo de longitud variable)
140
6 NAME
(Campo de longitud variable)
49 NAME-LENGTH
PIC S9(4) COMP-4.
(Nmero de caracteres de 2 bytes)
49 FILLER
PIC X(2n).
(Campo grfico)
6 NAME
(Campo de longitud variable)
49 NAME-LENGTH
PIC S9(4) COMP-4.
(Nmero de caracteres de 2 bytes)
49 NAME-DATA
PIC X(2n).
(Campo grfico)
Ejemplos
La Figura 52 muestra un ejemplo de archivo DDS que define un tem de datos
DBCS grficos de longitud variable. La Figura 53 en la pgina 142 muestra un
programa COBOL/400 que utiliza una instruccin DDS COPY, as como el listado
resultante que se obtiene cuando se compila el programa.
A
A\
A
A\
A
A
A
A\
A
A
R SAMPLEFILE
VARITEM
TIMEITEM
DATEITEM
TIMESTAMP
GRAPHITEM
VGRAPHITEM
VARLEN
T
L
Z
1G
1G
TIMFMT(\HMS)
DATFMT(\YMD)
VARLEN
Figura 52. Archivo DDS que Define un Campo de Datos Grficos de Longitud Variable
141
5763CB1 V3RM5 1
IBM SAA COBOL/4 TESTER/PGM1
AS4SYS 4/24/94 8:55:54
Pgina
1
Programa . . . . . . . . . . . . . . :
PGM1
Biblioteca . . . . . . . . . . . . :
TESTER
Archivo fuente . . . . . . . . . . . :
QLBLSRC
Biblioteca . . . . . . . . . . . . :
TESTER
Miembro fuente . . . . . . . . . . . :
PGM1
4/24/94 8:23:6
Nivel de gravedad de generacin . . :
29
Texto 'descripcin' . . . . . . . . :
Ejemplos de tipos de datos
Opciones de listado fuente . . . . . :
\NONE
Opciones de generacin . . . . . . . :
\NONE
Opciones de conversin . . . . . . . :
\VARCHAR \DATETIME \GRAPHIC
Lmite de mensaje:
Cantidad de mensajes.. . . . . . . :
\NOMAX
Gravedad lmite de mensaje
. . . :
29
Imprimir archivo. . . . . . . . . . :
QSYSPRT
Biblioteca . . . . . . . . . . . . :
\LIBL
Sealizacin FIPS. . . . . . . . . . :
\NOFIPS \NOSEG \NODEB \NOOBSOLETE
Sealizacin SAA . . . . . . . . . . :
\NOFLAG
Opciones de visualizacin ampliada . :
Gravedad de sealizacin . . . . . . :
Sustituir programa . . . . . . . . . :
\YES
Release de destino . . . . . . . . . :
\CURRENT
Perfil de usuario. . . . . . . . . . :
\USER
Autorizacin . . . . . . . . . . . . :
\LIBCRTAUT
Compilador . . . . . . . . . . . . . :
IBM SAA COBOL/4
5763CB1 V3RM5 1
Fuente COBOL AS/4
TESTER/PGM1
AS4SYS 4/24/94 8:55:54
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN S NOMCOPIA
FECH/CAM
1 1 Identification division.
1/2/94
2 2
Program-id. pgm1.
2/13/94
3 3 Environment division.
1/2/94
4 4 Configuration section.
1/2/94
5 5
Source-computer. ibm-as4.
1/2/94
6 6
Object-computer. ibm-as4.
1/2/94
7 7 Input-output section.
1/2/94
8 8
File-control.
1/2/94
9 9
Select file1
4/23/94
1 1
assign to database-samplefile
2/13/94
11 11
organization is sequential
4/23/94
12 12
access is sequential
4/23/94
13 13
file status is fs1.
4/23/94
14 14 Data division.
1/2/94
15 15 File section.
1/2/94
16 16 fd file1.
1/2/94
17 17 1 record1.
1/2/94
18 18 copy dds-all-formats of samplefile.
2/13/94
19 +1
5 SAMPLEFILE-RECORD PIC X(546).
<-ALL-FMTS
+2\
FORMATO E-S:SAMPLEFILE
DESDE ARCHIVO SAMPLEFILE DE BIBLO TESTER
<-ALL-FMTS
+3\
<-ALL-FMTS
2 +4
5 SAMPLEFILE
REDEFINES SAMPLEFILE-RECORD.
<-ALL-FMTS
21 +5
6 VARITEM.
<-ALL-FMTS
+6\
(Campo de longitud variable)
<-ALL-FMTS
22 +7
49 VARITEM-LENGTH
PIC S9(4) COMP-4.
<-ALL-FMTS
23 +8
49 VARITEM-DATA
PIC X(1).
<-ALL-FMTS
24 +9
6 TIMEITEM
PIC X(8).
<-ALL-FMTS
+1\
(Campo de hora)
<-ALL-FMTS
25 +11
6 DATEITEM
PIC X(8).
<-ALL-FMTS
+12\
(Campo de fecha)
<-ALL-FMTS
26 +13
6 TIMESTAMP
PIC X(26).
<-ALL-FMTS
+14\
(Campo de indicacin de la hora)
<-ALL-FMTS
27 +15
6 GRAPHITEM
PIC X(2).
<-ALL-FMTS
+16\
(Campo grfico)
<-ALL-FMTS
28 +17
6 VGRAPHITEM.
<-ALL-FMTS
+18\
(Campo de longitud variable)
<-ALL-FMTS
29 +19
49 VGRAPHITEM-LENGTH PIC S9(4) COMP-4.
<-ALL-FMTS
+2\
(Nmero de caracteres de 2 bytes)
<-ALL-FMTS
3 +21
49 VGRAPHITEM-DATA
PIC X(2).
<-ALL-FMTS
+22\
(Campo grfico)
<-ALL-FMTS
31 19 working-storage section.
4/22/94
32 2 77 fs1
pic x(2).
4/23/94
33 21 Procedure division.
1/9/94
22 Mainline.
1/2/94
34 23
stop run.
1/2/94
\ \ \ \ \
F I N
D E
F U E N T E
\ \ \ \ \
5738CB1 V2R2M 1
Mensajes COBOL AS/4
TESTER/PGM1
AS4SYS 4/24/94 8:55:54
INST
\
16 MSGID: LBL65 GRAVEDAD: NUMSEC: 16
Mensaje . . . . :
Bloqueo/Desbloqueo para archivo 'FILE-1' se
se realizar por medio del cdigo generado por el compilador.
\ \ \ \ \
F I N
D E
M E N S A J E S
\ \ \ \ \
Resumen Mensajes
Total
Info(-4)
Aviso(5-19)
Error(2-29)
Grave(3-39)
Terminal(4-99)
1
1
Pgina
Pgina
Figura 53. Programa COBOL/400 que utiliza tems de Datos DBCS Grficos de Longitud Variable
142
143
144
145
146
Campos de Salida: Los campos de salida pasan desde el programa al dispositivo cuando aqul graba un registro a una pantalla. El programa o el formato
de registro del archivo de dispositivo puede proporcionar campos de salida.
Campos de Entrada/Salida: Un campo de entrada/salida es un campo de
salida que puede cambiarse y convertirse en campo de entrada. Los campos
de entrada/salida pasan desde el programa cuando el programa graba un
registro a una pantalla y pasan al programa cuando ste lee un registro de una
pantalla. Los campos de entrada/salida se utilizan cuando el usuario va a
cambiar o actualizar los datos que se graban a la pantalla desde el programa.
Para una descripcin detallada de un archivo de comunicaciones de datos, consulte la publicacin ICF Programmers Guide. Para ms informacin acerca de los
archivos de pantalla descritos externamente, vea la publicacin Gua para la
Gestin de Datos. Para una lista de las palabras clave de las especificaciones de
descripciones de datos vlidos (DDS), vea la publicacin DDS Reference.
La Figura 54 muestra un ejemplo de las DDS para un archivo de dispositivo de
pantalla:
147
G X 2 1 - 9 8 9 1 - 0
A S / 4 0 0 E S P E C I F I C A C I O N E S D E D E S C R I P C I O N D E D AT O S
International
Business
Machines
*El nmero
Signo
Archivo
Impreso
de
re lleno
Descripcin
U M / 0 5 0 *
en
Espaa
Pgina
de
Instrucciones
de Grabacin
1 0
1 1
1 2
1 3
1 4
1 5
1 8
1 9
2 0
2 1
2 2
2 3
2 4
2 5
D E
2 6
2 7
2 8
2 9
Tipo
3 0
3 1
3 2
3 3
3 4
3 5
CON S U L T A S
(b/O/I/B/H/M/N/P)
Referencia (R)
Reservado
Nombre
1 7
MA E S T R O
Datos/Desplazamiento Teclado
(/b / R / H / J / K / S / O )
1 6
Tipo
No (N)
Indicador
No (N)
Indicador
Espec
(A/O/*)
7
A * A R C H I VO
Longitud
3 6
U t i l i z a c/i n
Nom bre
D ecimales
Indicador
de
2
And/Or/Coment.
Tipo
1
Nombre Condicin
No (N)
Secuencia
Formula rio
Condicionamiento
N mero d e
Tecla
Fecha
Posiciones
Programador
3 7
3 8
D E
Ubicacin
Funciones
Lnea
3 9
4 0
4 1
C L
P os
4 2
4 3
4 4
4 5
4 6
4 7
I E N T E
4 8
4 9
5 0
5 1
5 2
5 3
5 4
5 5
5 6
5 7
5 8
5 9
6 0
6 1
6 2
6 3
6 4
6 5
6 6
6 7
6 8
6 9
7 0
7 1
7 2
7 3
7 4
7 5
7 6
7 7
7 8
7 9
8 0
C U S M I NQ
A *
A
R E F ( C U S M S T P )
C U S P M T
T E X T (
'
S O L
C A 0 3 ( 1 5
'
' CON S U L T A
' N UM E R O
2 /0
A
A
C U S T
9 9
E R R M S G (
ADO
A
5
' U T
I L
C U S F L D S
I E N T E
3
1 1
AD D R
1 1
1 /
0
C I
1 /
0
1 1
A
A
A
A
T Y
A
A
1 1
1 1
2 1
1 1
3 1
1 2
1 2
1 7
I P
A
A
1 1
A
A
1 1
S T A T E
A R B A L
V A L
F
R E C U B R
N UM E R O
P A R A
C L
C A 0 3 ( 1 5
'
I E N T E S
I N
NO
'
E NCON T R +
CON T
I DO '
I N A L
T E X T O
'
C L
I E N T E
P A R A
C L
R E S T A U R A R ,
P A N T A L L A .
I E N T E
'
P A R A
N AM E
D E
I E N T E
F 3
T A R
C L
P R OG R A M A )
I N T R O
C I
C L
' N UM E R O
I C E
D E
D E
MA E S T R A
D E
P U L S E
P U L S E
T U D
I N
I N T R OD U Z C A
I C I
F
Z A R
I N U AC I ON +
9 9 )
P R OG R A M A , +
VO L V E R
S O L
( P A N T A L L A
D E
D E
P R OG R A M A '
I M I E N T O
' N OM B R E
'
' D I R E CC I ON '
' C I U D AD '
' P R OV I NC I A '
' COD I GO
' B A L A NC E
P O S T A L
A / R
'
'
A
A
Figura 54. Ejemplo de las Especificaciones de Descripcin de Datos para un Archivo de Dispositivo de Pantalla
148
.1/
.2/
.3/
.4/
'
.5/
.6/
149
150
55nmero-nivel5
nomb-fech-1 REDEFINESnomb-fech-2
55
PICTURE1
PIC IS
55
DISPLAY
USAGE
IS
55
OCCURSentero--1TOentero--2DEPENDINGnomb-fech-45
TIMES
ON
entero--2
TIMES
55
INDEXEDnom-ndice-1
BY
55
INDICATORentero--3
INDICATORS
INDIC
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
55
\ SYNCHRONIZED JUSTIFIED \
\
SYNC LEFT
JUST RIGHT
\
\
RIGHT
\
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
5.5%
VALUELiteral-boolean
IS
151
Consideraciones Especiales
A continuacin se dan las consideraciones especiales para las clusulas utilizadas
con datos booleanos. El resto de reglas para las clusulas son las mismas que
aqullas descritas en la seccin Estructura del Programa COBOL de la publicacin COBOL/400 Reference.
SWITCHES
PIC 1
OCCURS 1 TIMES
INDICATOR 16.
Frase INDICATORS
Cuando la frase INDICATORS se utiliza en las instrucciones READ, REWRITE y
WRITE (vea la Figura 57 en la pgina 158), especifica los indicadores que se van
a leer, regrabar y grabar.
El identificador especificado en la frase INDICATORS puede ser uno de los
siguientes:
Un tem elemental de datos booleanos
152
153
154
G X 2 1 - 9 8 9 1 - 0
A S / 4 0 0 E S P E C I F I C A C I O N E S D E D E S C R I P C I O N D E D AT O S
International
Business
Machines
Impreso
U M / 0 5 0 *
en
Espaa
*El nm ero de hojas por rea de re lleno puede variar lige ram ente.
Archivo
Signo
Descripcin
Pgina
de
Instrucciones
de Grabacin
1 0
1 1
1 2
1 3
D D S
1 4
1 5
D E
1 8
1 9
2 0
2 1
2 2
2 3
2 4
2 5
2 6
D E
2 7
2 8
2 9
3 0
3 1
3 2
3 3
3 4
3 5
P A N T A L L A
(b/O/I/B/H/M/N/P)
Referencia (R)
Reservado
Nombre
1 7
A R C H I VO
(/b / R / H / J / K / S / O )
1 6
Tipo
No (N)
Indicador
No (N)
Indicador
Indicador
Espec
(A/O/*)
7
A *
Longitud
3 6
Utilizacin
Nom bre
D ecimales
And/Or/Coment.
Tipo
1
Nombre Condicin
No (N)
Secuencia
de Formula rio
Condicionamiento
N mero d e
Tecla
Fecha
Posiciones
Programador
3 7
3 8
Ubicacin
Funciones
Lnea
3 9
4 0
4 1
P A R A
P os
4 2
4 3
4 4
4 5
4 6
4 7
4 8
4 9
E J E MP L O S
5 0
5 1
5 2
5 3
D E
5 4
5 5
5 6
5 7
5 8
5 9
6 0
6 1
6 2
6 3
6 4
6 5
6 6
6 7
6 8
6 9
7 0
7 1
7 2
7 3
7 4
7 5
7 6
7 7
7 8
7 9
I ND I C ADOR E S
A *
/ 3 ( 9 9
C F 0
' F
/ 5 ( 5 1
C F 0
'
I N F OR M E
D I A R I O '
C F 0
/ 9 ( 5 2
'
I N F OR M E
ME N S U A L
'
F OR MA T 1
I N
D E
P R OG R A M A '
A *
A
A
A
D E P T NO
0 1
1 0
1 0
1 0
3 2
2 0
2 6
' N UM E R O
D E
' P R OD U C I R
D S P A T R ( B L
D E P A R T AM E N T O :
I N F OR M E S
'
M E N S U A L E S
'
A *
A
2 4
0 1 ' F 5
I N F OR M E
D I A R
2 4
2 6
' F 9
I N F OR M E
M E N S U A L
I O '
2 4
5 3
' F 3
T E R M I N A R
'
'
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
Figura 55. Ejemplo de un Programa que Utiliza Indicadores en el rea de Registros sin Utilizar la Frase
INDICATORS en la SentenciaDatos de E/S: Especificaciones de Descripcin
.1/
.2/
.3/
.4/
.5/
.6/
155
8 0
5763CB1 V3RM5
Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
1 1 IDENTIFICATION DIVISION.
2 2
PROGRAM-ID.
XMPLE71.
3\
PROGRAMA EJEMPLO CON INDICADORES EN REA DE REGISTRO.
3 4
AUTHOR.
PROGRAMMER NAME.
4 5
INSTALLATION. TORONTO COBOL DEVELOPMENT CENTRE.
5 6
DATE-WRITTEN. 12/8/88.
6 7
DATE-COMPILED. 5/24/94 11:2:36
.
7 8 ENVIRONMENT DIVISION.
8 9
CONFIGURATION SECTION.
9 1
SOURCE-COMPUTER. IBM-AS4.
1 11
OBJECT-COMPUTER. IBM-AS4.
11 12
INPUT-OUTPUT SECTION.
12 13
FILE-CONTROL.
13 14
SELECT DISPFILE
14 15
ASSIGN TO WORKSTATION-DSPFILEX .1/
15 16
ORGANIZATION IS TRANSACTION
16 17
ACCESS
IS SEQUENTIAL.
17 18 DATA DIVISION.
18 19
FILE SECTION.
19 2
FD DISPFILE
2 21
LABEL RECORDS ARE OMITTED
21 22
DATA RECORD IS DISP-REC.
22 23
1 DISP-REC.
23 24
COPY DDS-ALL-FORMATS OF DSPFILEX. .2/
24 +1
5 DSPFILEX-RECORD PIC X(8).
+2\FORMATO ENTRADA:FORMAT1 DESDE ARCHIVO DSPFILEX DE BIBLIOTECA XMPLIB
+3\
25 +4
5 FORMAT1-I
REDEFINES DSPFILEX-RECORD.
26 +5
6 FORMAT1-I-INDIC.
27 +6
7 IN99
PIC 1 INDIC 99. .3/
+7\
FIN DE PROGRAMA
28 +8
7 IN51
PIC 1 INDIC 51.
+9\
INFORME DIARIO
29 +1
7 IN52
PIC 1 INDIC 52.
+11\
INFORME MENSUAL
3 +12
6 DEPTNO
PIC X(5).
+13\FORMATO SALIDA:FORMAT1 DESDE ARCHIVO DSPFILEX DE BIBLIOTECA XMPLIB
+14\
31 +15
5 FORMAT1-O
REDEFINES DSPFILEX-RECORD.
32 +16
6 FORMAT1-O-INDIC.
33 +17
7 IN1
PIC 1 INDIC 1.
25
34 26 WORKING-STORAGE SECTION.
35 27 1 CURRENT-DATE.
36 28
5 CURR-YEAR
PIC 9(2).
37 29
5 CURR-MONTH
PIC 9(2).
38 3
5 CURR-DAY
PIC 9(2).
39 31 1 INDIC-AREA. .4/
4 32
5 IN1
PIC 1.
41 33
88 NEW-MONTH .5/
VALUE B"1".
42 34
5 IN51
PIC 1.
43 35
88 WANT-DAILY
VALUE B"1".
44 36
5 IN52
PIC 1.
45 37
88 WANT-MONTHLY
VALUE B"1".
46 38
5 IN99
PIC 1.
47 39
88 NOT-END-OF-JOB
VALUE B"".
48 4
88 END-OF-JOB
VALUE B"1".
49 41 PROCEDURE DIVISION.
42 XAMPLE3-MAIN.
5 43
OPEN I-O DISPFILE.
51 44
ACCEPT CURRENT-DATE FROM DATE.
52 45
SET NOT-END-OF-JOB TO TRUE.
53 46
PERFORM DISPLAY-SCREEN THRU READ-AND-PROCESS-SCREEN
47
UNTIL END-OF-JOB.
54 48
CLOSE DISPFILE.
55 49
STOP RUN.
5 DISPLAY-SCREEN.
56 51
MOVE ZEROS TO INDIC-AREA. .6/
57 52
IF CURR-DAY = 1 THEN
58 53
SET NEW-MONTH TO TRUE. .7/
59 54
MOVE CORR INDIC-AREA TO FORMAT1-O-INDIC. .8/
6 55
WRITE DISP-REC FORMAT IS "FORMAT1". .9/
56 READ-AND-PROCESS-SCREEN.
61 57
MOVE ZEROS TO INDIC-AREA.
62 58
READ DISPFILE FORMAT IS "FORMAT1". .1/
NOMCOPIA
FECH/CAM
3/9/94
3/22/94
3/9/94
3/9/94
3/9/94
3/9/94
3/9/94
3/9/94
3/25/94
3/25/94
3/9/94
3/9/94
3/9/94
3/9/94
3/9/94
3/9/94
3/9/94
3/9/94
3/9/94
3/9/94
3/9/94
3/9/94
3/9/94
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
Figura 56 (Parte 1 de 2). Ejemplo de un Programa que Utiliza Indicadores en el rea de Registros sin la Frase
INDICATORS en la SentenciaCOBOL de E/S: Programa Fuente
156
5763CB1 V3RM5
Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
63 59
MOVE CORR FORMAT1-I-INDIC TO INDIC-AREA. .11/
64 6
IF WANT-DAILY THEN
65 61
CALL "DAILY" USING DEPTNO .12/
62
ELSE
66 63
IF WANT-MONTHLY THEN
67 64
CALL "MONTHLY" USING DEPTNO.
\ \ \ \ \
F I N
D E
F U E N T E \ \
5763CB1 V3RM5
Mensajes AS/4 COBOL
INST
\ \ \ \ \
F I N
D E
M E N S A J E S
\ \ \ \ \
Resumen Mensajes
Total
Info(-4)
Aviso(5-19)
Error(2-29)
Grave(3-39)
Terminal(4-99)
NOMCOPIA
FECH/CAM
Figura 56 (Parte 2 de 2). Ejemplo de un Programa que Utiliza Indicadores en el rea de Registros sin la Frase
INDICATORS en la SentenciaCOBOL de E/S: Programa Fuente
.1/
.2/
La instruccin COPY con Formato 2 define los campos de datos y los indicadores en el rea de registro.
.3/
Dado que el archivo no tiene un rea de indicadores separada, los indicadores de respuesta y de opcin se definen en el orden en que se utilizan
en las DDS, y los nmeros de indicadores se tratan como documentacin.
.4/
.5/
.6/
.7/
.8/
.9/
157
5763CB1 V3RM5
Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
1 1 IDENTIFICATION DIVISION.
2 2
PROGRAM-ID.
XMPLE713.
3\ PROGRAMA EJEMPLO - ARCHIVO CON INDICADORES EN REA DE REGISTRO
3 4
AUTHOR.
PROGRAMMER NAME.
4 5
INSTALLATION. TORONTO COBOL DEVELOPMENT CENTRE.
5 6
DATE-WRITTEN. 12/1/88.
6 7
DATE-COMPILED. 5/24/94 11:4:34
.
7 8 ENVIRONMENT DIVISION.
8 9
CONFIGURATION SECTION.
9 1
SOURCE-COMPUTER. IBM-AS4.
1 11
OBJECT-COMPUTER. IBM-AS4.
11 12
INPUT-OUTPUT SECTION.
12 13
FILE-CONTROL.
13 14
SELECT DISPFILE
14 15
ASSIGN TO WORKSTATION-DSPFILEX .1/
15 16
ORGANIZATION IS TRANSACTION
16 17
ACCESS
IS SEQUENTIAL.
17 18 DATA DIVISION.
18 19
FILE SECTION.
19 2
FD DISPFILE
2 21
LABEL RECORDS ARE OMITTED
21 22
DATA RECORD IS DISP-REC.
22 23
1 DISP-REC.
23 24
COPY DDS-ALL-FORMATS OF DSPFILEX. .2/
24 +1
5 DSPFILEX-RECORD PIC X(8).
+2\FORMATO ENTRADA:FORMAT1 DESDE ARCHIVO DSPFILEX DE BIBLIOTECA XMPLIB
+3\
25 +4
5 FORMAT1-I
REDEFINES DSPFILEX-RECORD.
26 +5
6 FORMAT1-I-INDIC.
27 +6
7 IN99
PIC 1 INDIC 99. .3/
+7\
FIN DE PROGRAMA
28 +8
7 IN51
PIC 1 INDIC 51.
+9\
INFORME DIARIO
29 +1
7 IN52
PIC 1 INDIC 52.
+11\
INFORME MENSUAL
3 +12
6 DEPTNO
PIC X(5).
+13\FORMATO SALIDA:FORMAT1 DESDE ARCHIVO DSPFILEX DE BIBLIOTECA XMPLIB
+14\
31 +15
5 FORMAT1-O
REDEFINES DSPFILEX-RECORD.
32 +16
6 FORMAT1-O-INDIC.
33 +17
7 IN1
PIC 1 INDIC 1.
25
34 26 WORKING-STORAGE SECTION.
35 27 1 CURRENT-DATE.
36 28
5 CURR-YEAR
PIC 9(2).
37 29
5 CURR-MONTH
PIC 9(2).
38 3
5 CURR-DAY
PIC 9(2).
31
39 32 77 IND-OFF
PIC 1
VALUE B"".
4 33 77 IND-ON
PIC 1
VALUE B"1".
34
41 35 1 RESPONSE-INDICS.
42 36
5 END-OF-PROGRAM
PIC 1. .4/
43 37
5 DAILY-REPORT
PIC 1.
44 38
5 MONTHLY-REPORT
PIC 1.
45 39 1 OPTION-INDICS.
46 4
5 NEW-MONTH
PIC 1.
41
47 42 PROCEDURE DIVISION.
43 XMPLE3-MAIN.
48 44
OPEN I-O DISPFILE.
49 45
ACCEPT CURRENT-DATE FROM DATE.
5 46
MOVE IND-OFF TO END-OF-PROGRAM.
51 47
PERFORM DISPLAY-SCREEN THRU READ-AND-PROCESS-SCREEN
48
UNTIL END-OF-PROGRAM = IND-ON.
52 49
CLOSE DISPFILE.
53 5
STOP RUN.
51
52 DISPLAY-SCREEN.
54 53
MOVE ZEROS TO OPTION-INDICS.
55 54
IF CURR-DAY = 1 THEN .5/
56 55
MOVE IND-ON TO NEW-MONTH.
57 56
WRITE DISP-REC FORMAT IS "FORMAT1" .6/
57
INDICATORS ARE OPTION-INDICS.
58
NOMCOPIA
FECH/CAM
3/7/94
3/22/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/22/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/22/94
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
Figura 57 (Parte 1 de 2). Ejemplo de un Programa que Utiliza Indicadores en el rea de Registros y la Frase
INDICATORS en las Instrucciones de E/SPrograma Fuente COBOL
158
5763CB1 V3RM5
Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
59 READ-AND-PROCESS-SCREEN.
58 6
MOVE ZEROS TO RESPONSE-INDICS.
59 61
READ DISPFILE FORMAT IS "FORMAT1" .7/
62
INDICATORS ARE RESPONSE-INDICS. .8/
6 63
IF DAILY-REPORT = IND-ON THEN
61 64
CALL "DAILY" USING DEPTNO .9/
65
ELSE
62 66
IF MONTHLY-REPORT = IND-ON THEN
63 67
CALL "MONTHLY" USING DEPTNO.
\ \ \ \ \
F I N
D E
F U E N T E \ \
5763CB1 V3RM5
Mensajes AS/4 COBOL
INST
\ \ \ \ \
E N D
O F
M E S S A G E S
\ \ \ \ \
Resumen Mensajes
Total
Info(-4)
Aviso(5-19)
Error(2-29)
Grave(3-39)
Terminal(4-99)
NOMCOPIA
FECH/CAM
Figura 57 (Parte 2 de 2). Ejemplo de un Programa que Utiliza Indicadores en el rea de Registros y la Frase
INDICATORS en las Instrucciones de E/SPrograma Fuente COBOL
.1/
.2/
La instruccin COPY con Formato 2 define los campos de datos y los indicadores en el rea de registro.
.3/
Dado que el archivo no tiene un rea de indicadores separada, los indicadores de respuesta y de opcin se definen en el orden en que se utilizan
en las DDS, y los nmeros de indicadores se tratan como documentacin.
.4/
Todos los indicadores que utiliza el programa se definen con nombres significativos en entradas de descripcin de datos en WORKING-STORAGE.
Aqu se omiten los nmeros de los indicadores debido a que no tienen
efecto. Los indicadores deben definirse en el orden necesario mediante el
archivo de pantalla.
.5/
.6/
.7/
.8/
La frase INDICATORS hace que los bytes se copien desde el comienzo del
rea de registro a RESPONSE-INDICS.
.9/
159
G X 2 1 - 9 8 9 1 - 0
A S / 4 0 0 E S P E C I F I C A C I O N E S D E D E S C R I P C I O N D E D AT O S
International
Business
Machines
Impreso
U M / 0 5 0 *
en
Espaa
*El nm ero de hojas por rea de re lleno puede variar lige ram ente.
Archivo
Signo
Descripcin
Pgina
de
Instrucciones
de Grabacin
1 0
1 1
1 2
1 3
1 4
V I
1 5
1 8
1 9
2 0
2 1
2 2
2 3
Z A R
2 4
2 5
2 6
D D S
2 7
2 8
2 9
D E
3 0
3 1
3 2
3 3
3 4
3 5
(b/O/I/B/H/M/N/P)
Referencia (R)
Reservado
Nombre
1 7
S U A L
(/b / R / H / J / K / S / O )
1 6
Tipo
No (N)
Indicador
No (N)
Indicador
Indicador
Espec
(A/O/*)
7
A *
Longitud
3 6
U t i l i z a c/i n
Nom bre
D ecimales
And/Or/Coment.
Tipo
1
Nombre Condicin
No (N)
Secuencia
de Formula rio
Condicionamiento
N mero d e
Tecla
Fecha
Posiciones
Programador
3 7
3 8
A R C H I VO
Ubicacin
Funciones
Lnea
3 9
4 0
4 1
P os
4 2
P A R A
4 3
4 4
4 5
4 6
4 7
4 8
4 9
5 0
5 1
E J E MP L O S
5 2
5 3
5 4
D E
5 5
5 6
5 7
5 8
5 9
6 0
6 1
6 2
6 3
6 4
6 5
6 6
6 7
6 8
6 9
7 0
7 1
7 2
7 3
7 4
7 5
7 6
7 7
7 8
7 9
I ND I C ADOR E S
A *
A
I ND A R A
F OR MA T 1
C F 0 3 ( 9 9
' F
C F 0 5 ( 5 1
'
I N F OR M E
I N
D E
P R OG R A M A '
D I A R I O '
C F 0 9 ( 5 2
'
I N F OR M E
ME N S U A L
'
A *
A
A
A
D E P T NO
0 1
1 0
1 0
1 0
3 2
2 0
2 6
' N UM E R O
D E
' P R OD U C I R
D S P A T R ( B L
D E P A R T AM E N T O :
I N F OR M E S
'
M E N S U A L E S
'
A *
A
2 4
0 1 ' F 5
I N F OR M E
D I A R
2 4
2 6
' F 9
I N F OR M E
M E N S U A L
I O '
2 4
5 3
' F 3
T E R M I N A R
'
'
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
Figura 58. Ejemplo de un Programa que Utiliza Indicadores en una rea de Separada de Indicadores, Definido en
WORKING-STORAGE mediante la Sentencia COPY, Formato DDS
.1/
160
8 0
5763CB1 V3RM5
Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
1 1 IDENTIFICATION DIVISION.
2 2 PROGRAM-ID.
XMPLE717.
3\ PROGRAMA EJEMPLO - ARCHIVO CON REA DE INDICADORES SEPARADA
3 4 AUTHOR.
PROGRAMMER NAME.
4 5 INSTALLATION. TORONTO COBOL DEVELOPMENT CENTRE.
5 6 DATE-WRITTEN. 12/8/88.
6 7 DATE-COMPILED. 5/24/94 12:53:17
.
7 8 ENVIRONMENT DIVISION.
8 9 CONFIGURATION SECTION.
9 1 SOURCE-COMPUTER. IBM-AS4.
1 11 OBJECT-COMPUTER. IBM-AS4.
11 12 INPUT-OUTPUT SECTION.
12 13 FILE-CONTROL.
13 14
SELECT DISPFILE
14 15
ASSIGN TO WORKSTATION-DSPFILE-SI .1/
15 16
ORGANIZATION IS TRANSACTION
16 17
ACCESS IS SEQUENTIAL.
18
17 19 DATA DIVISION.
18 2 FILE SECTION.
19 21 FD DISPFILE
2 22
LABEL RECORDS ARE OMITTED
21 23
DATA RECORD IS DISP-REC.
22 24 1 DISP-REC.
23 25
COPY DDS-ALL-FORMATS OF DSPFILE. .2/
24 +1
5 DSPFILE-RECORD PIC X(5).
+2\FORMATO ENTRADA:FORMAT1 DESDE ARCHIVO DSPFILE DE BIBLIOTECA XMPLIB
+3\
25 +4
5 FORMAT1-I
REDEFINES DSPFILE-RECORD.
26 +5
6 DEPTNO
PIC X(5).
+6\FORMATO SALIDA:FORMAT1 DESDE ARCHIVO DSPFILE
DE BIBLIOTECA XMPLIB
+7\
+8\
5 FORMAT1-O
REDEFINES DSPFILE-RECORD.
26
27 27 WORKING-STORAGE SECTION.
28 28 1 CURRENT-DATE.
29 29
5 CURR-YEAR
PIC 9(2).
3 3
5 CURR-MONTH
PIC 9(2).
31 31
5 CURR-DAY
PIC 9(2).
32
32 33
77 IND-OFF
PIC 1 VALUE B"".
33 34
77 IND-ON
PIC 1 VALUE B"1".
34 35 1 DISPFILE-INDICS.
35 36
COPY DDS-ALL-FORMATS-INDIC OF DSPFILE. .3/
36 +1
5 DSPFILE-RECORD.
+2\FORMATO ENTRADA:FORMAT1 DESDE ARCHIVO DSPFILE DE BIBLIOTECA XMPLIB
+3\
37 +4
6 FORMAT1-I-INDIC.
38 +5
7 IN51
PIC 1 INDIC 51. .4/
+6\
INFORME DIARIO
39 +7
7 IN52
PIC 1 INDIC 52.
+8\
INFORME MENSUAL
4 +9
7 IN99
PIC 1 INDIC 99.
+1\
FIN DE PROGRAMA
+11\FORMATO SALIDA:FORMAT1 DESDE ARCHIVO DSPFILE DE BIBLIOTECA XMPLIB
+12\
41 +13
6 FORMAT1-O-INDIC.
42 +14
7 IN1
PIC 1 INDIC 1.
37
43 38 PROCEDURE DIVISION.
39
4 MAIN-PROCESS.
41
44 42
OPEN I-O DISPFILE.
45 43
ACCEPT CURRENT-DATE FROM DATE.
46 44
MOVE IND-OFF TO IN99 IN FORMAT1-I-INDIC.
47 45
PERFORM DISPLAY-SCREEN THRU READ-AND-PROCESS-SCREEN
46
UNTIL IN99 IN FORMAT1-I-INDIC = IND-ON.
48 47
CLOSE DISPFILE.
49 48
STOP RUN.
49
5 DISPLAY-SCREEN.
51
5 52
MOVE ZEROS TO FORMAT1-O-INDIC.
51 53
IF CURR-DAY = 1 THEN
52 54
MOVE IND-ON TO IN1 IN FORMAT1-O-INDIC. .5/
NOMCOPIA
FECH/CAM
3/9/94
3/22/94
3/9/94
3/9/94
3/9/94
3/9/94
3/9/94
3/9/94
3/9/94
3/9/94
3/9/94
3/9/94
3/9/94
3/22/94
3/9/94
3/9/94
3/9/94
3/9/94
3/9/94
3/9/94
3/9/94
3/9/94
3/9/94
3/22/94
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
Figura 59 (Parte 1 de 2). Listado COBOL que Utiliza Indicadores en un rea de Indicadores Separada
161
5763CB1 V3RM5
Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
53 55
WRITE DISP-REC FORMAT IS "FORMAT1"
56
INDICATORS ARE FORMAT1-O-INDIC. .6/
57
58 READ-AND-PROCESS-SCREEN.
59
54 6
MOVE ZEROS TO FORMAT1-I-INDIC.
55 61
READ DISPFILE FORMAT IS "FORMAT1"
62
INDICATORS ARE FORMAT1-I-INDIC. .7/
56 63
IF IN51 IN FORMAT1-I-INDIC = IND-ON THEN
57 64
CALL "DAILY" USING DEPTNO .8/
65
ELSE
58 66
IF IN52 IN FORMAT1-I-INDIC = IND-ON THEN
59 67
CALL "MONTHLY" USING DEPTNO.
\ \ \ \ \
F I N
D E
F U E N T E \ \
5763CB1 V3RM5
Mensajes AS/4 COBOL
INST
\
23 MSGID: LBL6 GRAVEDAD: 1 NUMSEC: 25
Mensaje . . . . :
No se encontraron campos OUTPUT para formato FORMAT1.
\ \ \ \ \
F I N
D E
M E N S A J E S
\ \ \ \ \
Resumen Mensajes
Total
Info(-4)
Aviso(5-19)
Error(2-29)
Grave(3-39)
Terminal(4-99)
1
NOMCOPIA
FECH/CAM
Figura 59 (Parte 2 de 2). Listado COBOL que Utiliza Indicadores en un rea de Indicadores Separada
162
.1/
.2/
.3/
.4/
.5/
.6/
La frase INDICATORS es necesaria para enviar los valores de los indicadores a la pantalla de estacin de trabajo.
.7/
.8/
5763CB1 V3RM5
Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
1 1 IDENTIFICATION DIVISION.
2 2 PROGRAM-ID.
XMPLE72.
3\
PROGRAMA EJEMPLO
4\
ARCHIVO CON REA DE IND.SEPARADA EN REA ALMACENAMIENTO
3 5 AUTHOR.
PROGRAMMER NAME.
4 6 INSTALLATION. TORONTO COBOL DEVELOPMENT CENTRE.
5 7 DATE-WRITTEN. 12/8/88.
6 8 DATE-COMPILED. 5/24/94 12:46:
.
7 9 ENVIRONMENT DIVISION.
8 1 CONFIGURATION SECTION.
9 11 SOURCE-COMPUTER. IBM-AS4.
1 12 OBJECT-COMPUTER. IBM-AS4.
11 13 INPUT-OUTPUT SECTION.
12 14 FILE-CONTROL.
13 15
SELECT DISPFILE
14 16
ASSIGN TO WORKSTATION-DSPFILE-SI .1/
15 17
ORGANIZATION IS TRANSACTION
16 18
ACCESS IS SEQUENTIAL.
19
17 2 DATA DIVISION.
18 21 FILE SECTION.
19 22 FD DISPFILE
2 23
LABEL RECORDS ARE OMITTED
21 24
DATA RECORD IS DISP-REC.
22 25 1 DISP-REC.
23 26
COPY DDS-ALL-FORMATS OF DSPFILE. .2/
24 +1
5 DSPFILE-RECORD PIC X(5).
+2\FORMATO ENTRADA:FORMAT1 DESDE ARCHIVO DSPFILE DE BIBLIOTECA XMPLIB
+3\
25 +4
5 FORMAT1-I
REDEFINES DSPFILE-RECORD.
26 +5
6 DEPTNO
PIC X(5).
+6\FORMATO SALIDA:FORMAT1 DESDE ARCHIVO DSPFILE
DE BIBLIOTECA XMPLIB
+7\
+8\
5 FORMAT1-O
REDEFINES DSPFILE-RECORD.
27
27 28 WORKING-STORAGE SECTION.
28 29 1 CURRENT-DATE.
29 3
5 CURR-YEAR
PIC 9(2).
3 31
5 CURR-MONTH
PIC 9(2).
31 32
5 CURR-DAY
PIC 9(2).
33
32 34 1 INDIC-AREA.
33 35
5 INDIC-TABLE OCCURS 99
PIC 1
INDICATOR 1. .3/
34 36
88 IND-OFF
VALUE B"".
35 37
88 IND-ON
VALUE B"1".
38
36 39 1 DISPFILE-INDIC-USAGE.
37 4
5 IND-NEW-MONTH
PIC 9(2) VALUE 1.
38 41
5 IND-DAILY
PIC 9(2) VALUE 51. .4/
39 42
5 IND-MONTHLY
PIC 9(2) VALUE 52.
4 43
5 IND-EOJ
PIC 9(2) VALUE 99.
44
41 45 PROCEDURE DIVISION.
46
47 XMPLE-MAIN.
42 48
OPEN I-O DISPFILE.
43 49
ACCEPT CURRENT-DATE FROM DATE.
44 5
SET IND-OFF (IND-EOJ) TO TRUE.
45 51
PERFORM DISPLAY-SCREEN THRU READ-AND-PROCESS-SCREEN
52
UNTIL IND-ON (IND-EOJ).
46 53
CLOSE DISPFILE.
47 54
STOP RUN.
55
56 DISPLAY-SCREEN.
57
48 58
MOVE ZEROS TO INDIC-AREA.
49 59
IF CURR-DAY = 1 THEN
5 6
SET IND-ON (IND-NEW-MONTH) TO TRUE. .5/
51 61
WRITE DISP-REC FORMAT IS "FORMAT1"
62
INDICATORS ARE INDIC-TABLE. .6/
63
64 READ-AND-PROCESS-SCREEN.
65
52 66
READ DISPFILE FORMAT IS "FORMAT1"
67
INDICATORS ARE INDIC-TABLE. .7/
NOMCOPIA
FECH/CAM
1/22/94
3/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
3/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
3/22/94
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
Figura 60 (Parte 1 de 2). Ejemplo de un Programa que Utiliza Indicadores en una rea Separada de Indicadores,
Definido en una Tabla en WORKING-STORAGE
Captulo 8. Archivos Transaccin
163
5763CB1 V3RM5
Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
53 68
IF IND-ON (IND-DAILY) THEN .8/
54 69
CALL "DAILY" USING DEPTNO
7
ELSE
55 71
IF IND-ON (IND-MONTHLY) THEN
56 72
CALL "MONTHLY" USING DEPTNO.
\ \ \ \ \
F I N
D E
F U E N T E \ \
5763CB1 V3RM5
Mensajes AS/4 COBOL
INST
\
23 MSGID: LBL6 GRAVEDAD: 1 NUMSEC: 26
Mensaje . . . . :
No se encontraron campos OUTPUT para formato FORMAT1.
\ \ \ \ \
F I N
D E
M E N S A J E S
\ \ \ \ \
Resumen Mensajes
Total
Info(-4)
Aviso(5-19)
Error(2-29)
Grave(3-39)
Terminal(4-99)
1
NOMCOPIA
FECH/CAM
Figura 60 (Parte 2 de 2). Ejemplo de un Programa que Utiliza Indicadores en una rea Separada de Indicadores,
Definido en una Tabla en WORKING-STORAGE
.1/
.2/
.3/
.4/
Se define una serie de tems de datos en WORKING-STORAGE para proporcionar nombres de subndices significativos con los que referirse a la tabla de
indicadores. La utilizacin de tales tems de datos no es necesaria.
.5/
Si es el primer da del mes, se activa INDIC-TABLE (01) en el rea de indicadores separada para FORMAT1.
.6/
.7/
.8/
Subarchivos
Pueden especificarse subarchivos en las DDS para un archivo de pantalla que permitan al usuario manejar varios registros del mismo tipo en una pantalla. Consulte
la Figura 61 en la pgina 165 para ver un ejemplo de una pantalla de subarchivo.
Un subarchivo es un grupo de registros que se leen desde un dispositivo de pantalla o se graban a dicho dispositivo. El programa procesa un registro a la vez,
164
_____
Nmero Nombre
Direccin
Ciudad
XXXXX
XXXXX
XXXXX
XXXXX
XXXXX
XXXXX
XXXXX
XXXXX
XXXXX
XXXXX
XXXXX
XXXXX
XXXXX
XXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
Provincia
XX
XX
XX
XX
XX
XX
XX
XX
XX
XX
XX
XX
XX
XX
165
Utilizacin de Subarchivos
Algunas utilizaciones tpicas de los subarchivos incluyen:
Utilizacin
Significado
Slo Visualizar
Visualizar con Seleccin
Modificacin
Slo Entrada (sin comprobacin de
validez)
Slo Entrada (con comprobacin de
validez)
Combinacin de Tareas
166
G X 2 1 - 9 8 9 1 - 0
A S / 4 0 0 E S P E C I F I C A C I O N E S D E D E S C R I P C I O N D E D AT O S
International
Business
Machines
*El nmero
Signo
Archivo
Impreso
U M / 0 5 0 *
en
Espaa
Descripcin
Pgina
de
Instrucciones
de Grabacin
1 0
A *
1 1
1 2
1 3
D D S
A *
1 4
1 5
1 8
1 9
P A R A
AC T U A L
2 0
2 1
2 2
E L
I
2 3
2 4
2 5
2 6
2 7
2 8
2 9
A R C H I VO
Z AC I ON
D E
Tipo
3 0
3 1
3 2
3 3
D E
3 4
3 5
D I
P AGO
(b/O/I/B/H/M/N/P)
Referencia (R)
Reservado
Nombre
1 7
Datos/Desplazamiento Teclado
(/b / R / H / J / K / S / O )
16
Tipo
No (N)
Indicador
No (N)
Indicador
Espec
(A/O/*)
7
Longitud
3 6
U t i l i z a c/i n
Nom bre
D ecimales
Indicador
de
2
And/Or/Coment.
Tipo
1
Nombre Condicin
No (N)
Secuencia
Formula rio
Condicionamiento
N mero d e
Tecla
Fecha
Posiciones
Programador
3 7
3 8
Ubicacin
Funciones
Lnea
3 9
S P O S
4 0
4 1
P os
4 2
4 3
4 4
4 5
I VO
I N T E R AC T
4 6
4 7
4 8
D E
I VO
4 9
5 0
5 1
5 2
5 3
5 4
5 5
5 6
5 7
P A N T A L L A
D E
5 8
5 9
6 0
6 1
6 2
6 3
6 4
6 5
6 6
6 7
6 8
6 9
7 0
7 1
7 2
7 3
7 4
7 5
7 6
7 7
'
7 8
7 9
P A Y U P D T D
C U E N T A S
P OR
CO B R A R
A *
A
S U B A R C H 1
S F L
T E X T (
'
S U B A R C H
P A R A
P AGO
P AGO '
C L
I E N T E
A *
A
AC P P M T
4 A
A
A
5 1
N 5 1
4 T E X T (
' AC E P T A R
V A L OR E S (
'
D S P A T R ( R
* S
'
MD T
D S P A T R ( ND
'
* NO '
P R )
A *
A
C U S T
1 5 T E X T (
' N UM E R O
5 2
D S P A T R ( R
5 3
D S P A T R ( ND )
5 4
D S P A T R ( P R )
C L
I E N T E
'
P AGA DO '
A *
A
AMP A I D
0 2 B
2 4 T E X T (
'
I MP OR T E
C H E C K ( F E )
A U T O ( R A B )
CMP ( G T
0 )
5 2
D S P A T R ( R
5 3
D S P A T R ( ND )
5 4
D S P A T R ( P R )
A *
A
E C P M S G
3 1 A
3 7 T E X T (
' M E N S A J E
5 2
D S P A T R ( R
5 3
D S P A T R ( ND )
5 4
D S P A T R ( B L
D E
E X C E P C I ON '
A *
A
OV R P M T
8 Y
2 O
7 0 T E X T (
' E X C E S O
E N
E L
P AGO '
D E
E S T ADO '
E D T CD E ( 1 )
5 5
N 5 6
D S P A T R ( B L
D S P A T R ( ND )
A *
A
S T S CD E
1 A
T E X T (
' COD I GO
.2/
.3/
.4/
167
8 0
.5/
.6/
.7/
.8/
.9/
168
BL (parpadeo)
RI (contraste invertido)
PR (proteccin)
MDT (establece indicador de datos modificados)
ND (no visualizar)
G X 2 1 - 9 8 9 1 - 0
A S / 4 0 0 E S P E C I F I C A C I O N E S D E D E S C R I P C I O N D E D AT O S
Inter national
B usiness
Machines
*El
Signo
Archivo
nmero
de
hojas
por
rea
de
Impreso
relleno
Descripcin
puede
variar
Pgina
U M / 0 5 0 *
en
Espaa
ligeramente.
de
Instrucciones
de Grabacin
1 0
1 1
1 2
1 3
1 4
1 5
1 8
1 9
2 0
2 1
2 2
2 3
2 4
2 5
2 6
2 7
2 8
2 9
Tipo
3 0
3 1
3 2
3 3
3 4
3 5
(b/O /I/B/H/M/N/P)
Referencia (R)
Reservado
Nombre
1 7
Datos/Desplazamiento
Teclado
(b/R/H/J/K/S/O)
16
Tipo
No (N)
Indicador
No (N)
Indicador
Espec
(A/O/*)
7
Longitud
3 6
U t i l i z a c/i n
Nom bre
D ecimales
Indicador
de
2
And/Or/Coment.
Tipo
1
Nombre Condicin
No (N)
Secuencia
Formula rio
Condicionamiento
N mero d e
Tecla
Fecha
Posiciones
Programador
3 7
3 8
Ubicacin
Funciones
Lnea
3 9
4 0
4 1
P o s
4 2
4 3
4 4
CON T R O L 1
4 5
4 6
4 7
4 8
4 9
T E X T (
5 0
S F L C T L
S F L S
5 1
5 2
5 3
5 4
5 5
5 6
5 7
5 8
' CON T R O L
5 9
6 0
6 1
6 2
6 3
6 4
6 5
6 6
6 7
6 8
6 9
S U B A R C H I VO '
7 0
7 1
7 2
7 3
7 4
7 5
7 6
7 7
7 8
7 9
8 0
( S U B A R C H 1 )
Z ( 1 7 )
S F L P AG ( 1 7 )
6 1
S F L C L R
6 2
S F L D S P
6 2
S F L D S P C T L
R E C U B R
B L OQ U E O
I M I E N T O
A *
A
H E L P ( 9 9
'
T E C L A
C A 1 2 ( 9 8
'
C A 1 1 ( 9 7
'
I G NO R A R
I N
D E
D E
A Y U D A '
AC T U A L
Z AC I ON
E N T R AD A '
P AGO '
A *
A
9 9
S F L M S G (
'
F 1 1 -
I G NO R A R
F 1 2
Z AC I ON
D E
P AGO '
E N T R
I N
NO
D E
V A L
I D A +
AC T U A L
I +
A *
A
'
S O L
6 5
'
F E C H A '
7 8 F E C H A
I C I
T U D
6 3
' AC E P T A R
6 3
1 4
' C L
2 6
3 7
' M E N S A J E
6 4
P AGO
C L
I E N T E
'
E D T CD E ( Y )
AC T U A L
I E N T E
'
'
D E
E X C E P C I ON '
A
A
A
A
A
A
A
A
A
Figura 63. Especificaciones de Descripcin de Datos para un Formato de Registro de Control de Subarchivo
El formato de registro de control del subarchivo define los atributos del subarchivo,
el campo de entrada de bsqueda, las constantes y las teclas de mandatos. Las
palabras clave utilizadas indican lo siguiente:
.1/
.2/
.3/
.4/
.5/
.6/
169
.7/
.8/
HELP permite que el usuario pulse la tecla Ayuda y active el indicador 99.
.9/
Adems de la informacin de control, el formato de registro de control de subarchivo define las constantes a utilizar como encabezamientos de columna para el
formato de registro de subarchivo. Consulte la Figura 63 en la pgina 169 para
ver un ejemplo de formato de registro de control de subarchivo.
170
171
GX21-9891-0 UM/050*
A S / 4 0 0 E S P E C I F I C A C I O N E S D E D E S C R I P C I O N D E D ATO S
International Business Machines
de Grabacin
10
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
No (N)
Indicador
Indicador
No (N)
11
Referencia (R)
Reservado
T i p o N o m b r e o E s p e c (/b / R / H / J / K / S / O )
Longitud
35
36
U t i l i z a c/i n ( b / O / I / B / H / M / N / P )
Nom bre
Descripcin
Pgina
de
Tecla
D ecimales
Nombre Condicin
Indicador
Secuencia
N mero d e
No (N)
Condicionamiento
Signo
Instrucciones
Fecha
Posiciones
Archivo
Programador
Impreso en Espaa
*El nm ero de hojas por rea de re lleno puede variar lige ram ente.
37
38
Ubicacin
Funciones
Lnea
39
40
41
Pos
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
A*
A*
DD S
P AR A
E L
A R C H I VO
DE
P AN T A L L A
DE
MU L T I P L E S
D I S P O S I T I VO S
A*
A
S I GNON
I NV I T E
/ b
/ /b /b /b /b /b /b/b/b/b/b/b/b/ b/ b/ b/ b/ b
/b
/ '
/ ' b
20
DSPATR ( R I )
/ ' b
20
/b
/ '
DSPATR ( R I )
/b
/ '
38 ' b
DSPATR ( R I )
/ ' b
/b
/ '
20
27 'M
DSPATR ( H I
/b
/ '
38 ' b
DSPATR ( R I )
/ ' b
20
/b
/ '
/
2 0
A
A
A
A
A
E
l formato SIGNON tiene
A
DSPATR ( R I )
Aia d a . A s, si se u tiliza
asoc
e l f oAr m a t o S I G N O N e n u n a
A
s e n tAe n c i a W R I T E , s e i n v i t a r
a l dA
ispositivo en el que se
e s t A e s c r i b i e n d o .
F '
A
A
A
A
38 ' b
/b
/ '
DSPATR ( R I )
/ ' /b /b /b /b/b/b/b/b/b/b/ b/ b/ b/ b/ b/ b
/b
/b
/ b
/ b
/ '
20
DSPATR ( R I )
/ ' I N I C I E L A
2 0
S E S I ON '
DSPATR ( H I )
P A S S WO R D
WR ONG
1 /0 A
2 /0 A
20
/
4 3D S P A T R ( PC
2 1
4 3
ND )
UPDA T E
A
A
5 ' AC T U A L I Z AC I ON
A R C H I VO
5 ' T ECL E E
A
N UM
R
7A
N UM
7A
N UME R O
E MP L E ADO
AC T U A L I Z A R '
4 4D S PA T R ( R I
PC )
5 ' N UME R O
E MP L E ADO '
2 5D S PA T R ( PC )
2 5D S PA T R ( PC )
5 ' D I R E CC I ON
5 ' CA L L E '
N AM E
S TRE E T
3 /0 A
3 /0 A
A
A
A P T NO
5A
A
A
C I T Y
2 /0 A
P R OV
2 /0 A
A
A
R
1 1
1 1
13
13
15
15
5 ' N OM B R E
E MP L E ADO '
E MP L E ADO '
2 5D S PA T R ( PC )
5 ' N UME R O
A P A R T AM E N T O '
2 5 ' D S PA T R ( PC )
5 ' C I U D AD '
2 5D S PA T R ( PC )
5 ' P R OV I NC I A '
2 5D S PA T R ( PC )
R E CO V E R Y
A
A
5 ' E L
D ADO
N UME R O
NO
E S
DE
E MP L E ADO
QU E
VA L I DO '
5 ' T ECL E E
P AR A
R E I N T E N T AR '
8
/
10
5 ' T ECL E E
P AR A
SAL I R '
P E R S ON A L '
E MP L O Y E E
AN SWE R
1X
5D S PA T R ( R I
PC )
V A L OR E S ( ' S '
' N ' )
A
A
A
A
A
A
172
DE
DSPATR ( B L )
B L )
DSPATR ( R I )
HA
80
G X2 1-98 91-0
A S / 4 0 0 E S P E C I F I C A C I O N E S D E D E S C R I P C I O N D E D AT O S
International Business Machines
U M /05 0*
Impreso en Espaa
*El nm e ro de hojas por rea de re lleno puede variar lige ram ente .
Archivo
Signo
Instrucciones
Descripcin
Pgina
de
de Grabacin
10
11
12
13
1 4
15
16
17
18
19
20
2 1
22
2 3
24
2 5
26
27
2 8
29
No (N)
Indicador
No (N)
Indicador
Indicador
9
Longitud
Referencia (R)
Reservado
T i p o N o m b r e o E s p e c (/b / R / H / J / K / S / O )
N om b re
3 0
3 1
32
3 3
34
3 5
36
Utilizacin (b/O/I/B/H/M/N/P)
Nombre Co ndicin
D ecimales
And/Or/Coment. (A/O/*)
Secuencia
No (N)
Condicionamiento
N mero de
Tecla
Fecha
Posiciones
Programador
37
38
Ubicacin
Funciones
Lnea
39
4 0
4 1
Pos
4 2
4 3
44
4 5
46
4 7
48
49
5 0
5 1
5 2
5 3
5 4
55
5 6
5 7
58
5 9
60
6 1
6 2
63
6 4
65
6 6
6 7
68
6 9
70
7 1
7 2
7 3
7 4
75
7 6
77
7 8
7 9
A *
A *
DD S
P A R A
L A
CON T R A S E A
D E
A R C H I VO
F I S I CO
A *
A
A
U N I QU E
R
P A S S WO R D S
P A S S K E Y
/
1 0
P A S S WO R D
1 0
P A S S K E Y
A
A
A
A
A
A
A
A
A
A
A
A
173
80
G X 2 1 -9 8 9 1 -0
A S / 4 0 0 E S P E C I F I C A C I O N E S D E D E S C R I P C I O N D E D AT O S
International Business
Machines
U M /0 5 0 *
Impreso en Espaa
Archivo
Signo
Instrucciones
Descripcin
Pgina
de
de Grabacin
10
1 1
12
13
14
15
16
17
18
19
20
2 1
22
2 3
24
2 5
26
2 7
28
2 9
30
31
3 2
33
3 4
35
Ubicacin
(b/O/I/B/H/M/N/P)
Posiciones
Referencia (R)
Reservado
T i p o N o m b r e o E s p e c (/b / R / H / J / K / S / O )
No (N)
Indicador
No (N)
Indicador
Indicador
Longitud
3 6
Utilizacin
Nom bre
D ecimales
Nombre Condicin
No (N)
Secuencia
Condicionamiento
N mero d e
Tecla
Fecha
Programador
37
3 8
Funciones
Lnea
39
4 0
4 1
Pos
4 2
4 3
4 4
45
46
47
48
49
5 0
5 1
52
5 3
54
5 5
56
5 7
58
5 9
A *
A *
DD S
P A R A
A *
QU E
CON T I E N E
E L
T E R M I NO
L A
D E
I S T A
A R C H I VO
D E
F I S I CO
T E R M I NA L E S
A *
A
A
T E R M
T E R M
/
1 0
A
A
A
A
A
A
A
A
A
A
A
A
A
A
174
60
6 1
6 2
6 3
6 4
65
6 6
67
6 8
69
7 0
7 1
7 2
7 3
7 4
75
7 6
7 7
78
7 9
80
5763CB1 V3RM5 1
Fuente COBOL AS/4
TESTER/SAMPMDF
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
1 1 IDENTIFICATION DIVISION.
2 2 PROGRAM-ID.
SAMPMDF.
3 3
AUTHOR.
PROGRAMMER NAME.
4
5\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
6\ EL SIGUIENTE PROGRAMA MUESTRA ALGUNAS FUNCIONES DISPONIBLES\
7\ CON EL SOPORTE DEL ARCHIVO DE MLTIPLES DISPOSITIVOS.
\
8\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
9
4 1
INSTALLATION. COBOL DEVELOPMENT CENTRE.
5 11
DATE-WRITTEN. 2/2/87.
6 12
DATE-COMPILED. 3/31/94 13:58:5
.
7 13 ENVIRONMENT DIVISION.
8 14 CONFIGURATION SECTION.
9 15 SOURCE-COMPUTER. IBM-AS4.
1 16 OBJECT-COMPUTER. IBM-AS4.
11 17 SPECIAL-NAMES. ATTRIBUTE-DATA IS ATTR. .1/
12 18 INPUT-OUTPUT SECTION.
13 19 FILE-CONTROL.
14 2
SELECT MULTIPLE-FILE
15 21
ASSIGN TO WORKSTATION-MULT
16 22
ORGANIZATION IS TRANSACTION .2/
17 23
ACCESS MODE IS SEQUENTIAL
18 24
FILE STATUS IS MULTIPLE-FS1, MULTIPLE-FS2 .3/
19 25
CONTROL-AREA IS MULTIPLE-CONTROL-AREA.
26
.4/
2 27
SELECT TERMINAL-FILE
21 28
ASSIGN TO DATABASE-TERM
22 29
ORGANIZATION IS SEQUENTIAL
23 3
ACCESS IS SEQUENTIAL
24 31
FILE STATUS IS TERMINAL-FS1.
32
25 33
SELECT PASSWORD-FILE
26 34
ASSIGN TO DATABASE-PASSWORD
27 35
ORGANIZATION IS INDEXED
28 36
RECORD KEY IS EXTERNALLY-DESCRIBED-KEY
29 37
ACCESS MODE IS RANDOM
3 38
FILE STATUS IS PASSWORD-FS1.
39
31 4
SELECT PRINTER-FILE
32 41
ASSIGN TO PRINTER-QPRINT.
33 42 DATA DIVISION.
34 43 FILE SECTION.
35 44 FD MULTIPLE-FILE.
36 45 1 MULTIPLE-REC. COPY DDS-SIGNON OF MULT. .5/
37 +1
5 MULT-RECORD PIC X(2).
+2\ FORMATO ENTRADA:SIGNON
DESDE ARCH MULT
DE BIBLIOTECA TESTER
+3\
38 +4
5 SIGNON-I
REDEFINES MULT-RECORD.
39 +5
6 PASSWORD
PIC X(1). .6/
+6\ FORMATO SALIDA:SIGNON
DESDE ARCH MULT
DE BIBLIOTECA TESTER
+7\
4 +8
5 SIGNON-O
REDEFINES MULT-RECORD.
41 +9
6 WRONG
PIC X(2).
46
42 47 FD TERMINAL-FILE.
43 48 1 TERMINAL-REC. COPY DDS-ALL-FORMATS OF TERM.
44 +1
5 TERM-RECORD PIC X(1).
+2\
FORMATO E-S:TERM DESDE ARCHIVO TERM
DE BIBLIOTECA TESTER
+3\
45 +4
5 TERM
REDEFINES TERM-RECORD.
46 +5
6 TERM
PIC X(1).
49
47 5 FD PASSWORD-FILE.
48 51 1 PASSWORD-REC. COPY DDS-ALL-FORMATS OF PASSWORD.
49 +1
5 PASSWORD-RECORD PIC X(2).
+2\
FORMATO E-S:PASSWORDS
DESDE ARCHIVO PASSWORD
DE BIBLO TESTER
+3\
+4\ DEFINICIONES CLAVE PARA FORMATO DE REGISTRO PASSWORDS
+5\ NMERO
NOMBRE
RECUPERACIN
TIPO ALTSEQ
+6\
1
PASSKEY
ASCENDING
AN
NO
5 +7
5 PASSWORDS
REDEFINES PASSWORD-RECORD.
51 +8
6 PASSKEY
PIC X(1).
52 +9
6 PASSWORD
PIC X(1).
52
Pgina
SIGNON
SIGNON
SIGNON
SIGNON
SIGNON
SIGNON
SIGNON
SIGNON
SIGNON
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
Figura 65 (Parte 1 de 4). Listado Fuente COBOL para el Soporte de Archivos de Mltiples Dispositivos
175
5763CB1 V3RM5 1
Fuente COBOL AS/4
TESTER/SAMPMDF
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
53 53 FD PRINTER-FILE.
54 54 1 PRINTER-REC.
55 55
5 PRINTER-RECORD
PIC X(132).
56
56 57 WORKING-STORAGE SECTION.
58
59\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
6\
DECLARAR EL ESTADO DE ARCHIVO PARA CADA ARCHIVO
\
61\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
62
57 63 1 MULTIPLE-FS1
PIC X(2)
VALUE SPACES.
58 64 1 MULTIPLE-FS2. .7/
59 65
5 MULTIPLE-MAJOR
PIC X(2)
VALUE SPACES.
6 66
5 MULTIPLE-MINOR
PIC X(2)
VALUE SPACES.
61 67 1 TERMINAL-FS1
PIC X(2)
VALUE SPACES.
62 68 1 PASSWORD-FS1
PIC X(2)
VALUE SPACES.
69
7\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
71\ DECLARAR ESTRUCTURA PARA ATRIBUTOS DE ARCHIVO DE MANTENIM. \
72\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
73
63 74 1 STATION-ATTR.
64 75
5 STATION-TYPE
PIC X(1). .8/
65 76
5 STATION-SIZE
PIC X(1).
66 77
5 STATION-LOC
PIC X(1).
67 78
5 FILLER
PIC X(1).
68 79
5 STATION-ACQUIRE
PIC X(1).
69 8
5 STATION-INVITE
PIC X(1).
7 81
5 STATION-DATA
PIC X(1).
71 82
5 STATION-STATUS
PIC X(1).
72 83
5 STATION-DISPLAY
PIC X(1).
73 84
5 STATION-KEYBOARD
PIC X(1).
74 85
5 STATION-SIGNON
PIC X(1).
75 86
5 FILLER
PIC X(5).
87
88\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
89\
DECLARAR REA DE CONTROL PARA VARIOS ARCHIVOS
\
9\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
91
76 92 1 MULTIPLE-CONTROL-AREA.
77 93
5 MULTIPLE-KEY-FEEDBACK PIC X(2)
VALUE SPACES.
78 94
5 MULTIPLE-DEVICE-NAME PIC X(1)
VALUE SPACES.
79 95
5 MULTIPLE-FORMAT-NAME PIC X(1)
VALUE SPACES.
96
97\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
98\
DECLARAR VARIABLES DE INFORME DE ERROR
\
99\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
1
8 11 1 HEADER-LINE.
81 12
5 FILLER
PIC X(6)
VALUE SPACES.
82 13
5 FILLER
PIC X(72)
83 14
VALUE "MDF ERROR REPORT".
84 15 1 DETAIL-LINE.
85 16
5 FILLER
PIC X(15)
VALUE SPACES.
86 17
5 DESCRIPTION
PIC X(25)
VALUE SPACES.
87 18
5 DETAIL-VALUE
PIC X(92)
VALUE SPACES.
19
11\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
111\ DECLARAR CONTADORES, DISTINTIVOS Y VARIABLES DE ALMACENAM.\
112\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
113
88 114 1 CURRENT-TERMINAL
PIC X(1)
VALUE SPACES.
89 115 1 TERMINAL-ARRAY.
9 116
5 LIST-OF-TERMINALS OCCURS 25 TIMES.
91 117
7 DEVICE-NAME
PIC X(1).
92 118 1 COUNTER
PIC 9(3)
VALUE IS 1.
93 119 1 NO-OF-TERMINALS
PIC 9(3)
VALUE IS 1.
94 12 1 TERMINAL-LIST-FLAG
PIC 1.
95 121
88 END-OF-TERMINAL-LIST
VALUE IS B"1".
96 122
88 NOT-END-OF-TERMINAL-LIST
VALUE IS B"".
97 123 1 NO-DATA-FLAG
PIC 1.
98 124
88 NO-DATA-AVAILABLE
VALUE IS B"1".
99 125
88 DATA-AVAILABLE
VALUE IS B"".
126
Pgina
Figura 65 (Parte 2 de 4). Listado Fuente COBOL para el Soporte de Archivos de Mltiples Dispositivos
176
5763CB1 V3RM5 1
Fuente COBOL AS/4
TESTER/SAMPMDF
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
1 127 PROCEDURE DIVISION.
128
129 DECLARATIVES.
13
131 MULTIPLE-SECTION SECTION.
132
USE AFTER STANDARD EXCEPTION PROCEDURE ON MULTIPLE-FILE.
133
134 MULTIPLE-PARAGRAPH.
11 135
WRITE PRINTER-REC FROM HEADER-LINE AFTER ADVANCING PAGE.
12 136
MOVE "FILE NAME IS:" TO DESCRIPTION OF DETAIL-LINE.
13 137
MOVE "MULTIPLE FILE" TO DETAIL-VALUE OF DETAIL-LINE.
14 138
WRITE PRINTER-REC FROM DETAIL-LINE AFTER ADVANCING 5 LINES.
15 139
MOVE "FILE STATUS IS:" TO DESCRIPTION OF DETAIL-LINE.
16 14
MOVE MULTIPLE-FS1 TO DETAIL-VALUE OF DETAIL-LINE.
17 141
WRITE PRINTER-REC FROM DETAIL-LINE AFTER ADVANCING 2 LINES.
18 142
MOVE "EXTENDED STATUS IS:" TO DESCRIPTION OF DETAIL-LINE. .9/
19 143
MOVE MULTIPLE-FS2 TO DETAIL-VALUE OF DETAIL-LINE.
11 144
WRITE PRINTER-REC FROM DETAIL-LINE AFTER ADVANCING 2 LINES.
111 145
ACCEPT STATION-ATTR FROM ATTR. .9A/
112 146
MOVE "FILE ATTRIBUTES ARE:" TO DESCRIPTION OF DETAIL-LINE.
113 147
MOVE STATION-ATTR TO DETAIL-VALUE OF DETAIL-LINE.
114 148
WRITE PRINTER-REC FROM DETAIL-LINE AFTER ADVANCING 2 LINES.
115 149
STOP RUN.
15
151 TERMINAL-SECTION SECTION.
152
USE AFTER STANDARD EXCEPTION PROCEDURE ON TERMINAL-FILE.
153 TERMINAL-PARAGRAPH.
116 154
WRITE PRINTER-REC FROM HEADER-LINE AFTER ADVANCING PAGE.
117 155
MOVE "FILE NAME IS:" TO DESCRIPTION OF DETAIL-LINE.
118 156
MOVE "TERMINAL FILE" TO DETAIL-VALUE OF DETAIL-LINE.
119 157
WRITE PRINTER-REC FROM DETAIL-LINE AFTER ADVANCING 5 LINES.
12 158
MOVE "FILE STATUS IS:" TO DESCRIPTION OF DETAIL-LINE.
121 159
MOVE TERMINAL-FS1 TO DETAIL-VALUE OF DETAIL-LINE.
122 16
WRITE PRINTER-REC FROM DETAIL-LINE AFTER ADVANCING 2 LINES.
123 161
STOP RUN.
162
163 PASSWORD-SECTION SECTION.
164
USE AFTER STANDARD EXCEPTION PROCEDURE ON PASSWORD-FILE.
165 PASSWORD-PARAGRAPH.
124 166
WRITE PRINTER-REC FROM HEADER-LINE AFTER ADVANCING PAGE.
125 167
MOVE "FILE NAME IS:" TO DESCRIPTION OF DETAIL-LINE.
126 168
MOVE "PASSWORD FILE" TO DETAIL-VALUE OF DETAIL-LINE.
127 169
WRITE PRINTER-REC FROM DETAIL-LINE AFTER ADVANCING 5 LINES.
128 17
MOVE "FILE STATUS IS:" TO DESCRIPTION OF DETAIL-LINE.
129 171
MOVE PASSWORD-FS1 TO DETAIL-VALUE OF DETAIL-LINE.
13 172
WRITE PRINTER-REC FROM DETAIL-LINE AFTER ADVANCING 2 LINES.
131 173
STOP RUN.
174
175 END DECLARATIVES.
176
177\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
178\
LGICA DE PROGRAMA PRINCIPAL EMPIEZA AQU
\
179\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
18
181 MAIN-LINE SECTION.
182 MAIN-LINE-PARAGRAPH.
132 183
OPEN I-O
MULTIPLE-FILE .1/
184
INPUT TERMINAL-FILE
185
I-O
PASSWORD-FILE
186
OUTPUT PRINTER-FILE.
187
133 188
MOVE 1 TO COUNTER.
134 189
SET NOT-END-OF-TERMINAL-LIST TO TRUE.
19
PERFORM
135 191
FILL-TERMINAL-LIST UNTIL END-OF-TERMINAL-LIST.
192
PERFORM
136 193
ACQUIRE-AND-INVITE-TERMINALS
194
VARYING COUNTER FROM 1 BY 1
195
UNTIL COUNTER GREATER THAN NO-OF-TERMINALS.
137 196
MOVE 1 TO COUNTER.
138 197
SET DATA-AVAILABLE TO TRUE.
198
PERFORM
139 199
POLL-TERMINALS UNTIL NO-DATA-AVAILABLE.
2
PERFORM
14 21
DROP-TERMINALS
22
VARYING COUNTER FROM 1 BY 1
23
UNTIL COUNTER GREATER THAN NO-OF-TERMINALS.
Pgina
Figura 65 (Parte 3 de 4). Listado Fuente COBOL para el Soporte de Archivos de Mltiples Dispositivos
177
5763CB1 V3RM5 1
Fuente COBOL AS/4
TESTER/SAMPMDF
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
141 24
CLOSE
MULTIPLE-FILE
25
TERMINAL-FILE
26
PASSWORD-FILE
27
PRINTER-FILE.
142 28
STOP RUN.
29
21\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
211\
PROCEDIMIENTOS
\
212\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
213
214 PROCEDURE-SECTION SECTION.
215 FILL-TERMINAL-LIST.
143 216
READ TERMINAL-FILE RECORD INTO LIST-OF-TERMINALS(COUNTER)
217
AT END
144 218
SET END-OF-TERMINAL-LIST TO TRUE
145 219
SUBTRACT 1 FROM COUNTER
146 22
MOVE COUNTER TO NO-OF-TERMINALS.
147 221
ADD 1 TO COUNTER.
222
223 ACQUIRE-AND-INVITE-TERMINALS.
148 224
ACQUIRE LIST-OF-TERMINALS(COUNTER) FOR MULTIPLE-FILE. .11/
149 225
WRITE MULTIPLE-REC .12/
226
FORMAT IS "SIGNON"
227
TERMINAL IS LIST-OF-TERMINALS(COUNTER).
228
229 POLL-TERMINALS.
15 23
READ MULTIPLE-FILE RECORD. .13/
151 231
IF MULTIPLE-FS2 EQUAL "31" THEN
152 232
SET NO-DATA-AVAILABLE TO TRUE. .14/
153 233
IF DATA-AVAILABLE THEN
154 234
MOVE MULTIPLE-DEVICE-NAME TO CURRENT-TERMINAL
155 235
PERFORM PASSWORD-VALIDATION. .15/
236
237 PASSWORD-VALIDATION.
156 238
MOVE CURRENT-TERMINAL TO PASSKEY OF PASSWORD-REC.
157 239
READ PASSWORD-FILE RECORD.
158 24
IF PASSWORD OF SIGNON-I EQUAL PASSWORD OF PASSWORD-REC THEN
159 241
CALL "UPDT" USING CURRENT-TERMINAL
16 242
MOVE SPACES TO WRONG OF SIGNON-O
243
ELSE
161 244
MOVE "INVALID PASSWORD" TO WRONG OF SIGNON-O.
162 245
WRITE MULTIPLE-REC
246
FORMAT IS "SIGNON"
247
TERMINAL IS CURRENT-TERMINAL.
248
249 DROP-TERMINALS.
163 25
DROP LIST-OF-TERMINALS(COUNTER) FROM MULTIPLE-FILE. .16/
\ \ \ \ \
F I N
D E
F U E N T E
\ \ \ \ \
Pgina
Figura 65 (Parte 4 de 4). Listado Fuente COBOL para el Soporte de Archivos de Mltiples Dispositivos
178
.1/
.2/
.3/
.4/
.5/
.6/
.7/
.8/
.9/
179
Divisin de Entorno
Entrada de Control de Archivo
El archivo TRANSACTION debe designarse mediante una entrada de control de
archivo en el prrafo FILE-CONTROL. Esta entrada tambin especifica otra informacin relacionada con el archivo.
Formato
\\\\\\\\\\\\\\\\\\\\\\\\\
\ \
\
\
\\6\\\\\\\\\\\\\\\\\\\\\
55SELECTnomb-archASSIGNnomb-asignacin-15
TO
literal-1
5TRANSACTION5
ORGANIZATION
IS
55
ACCESSSEQUENTIAL
MODE IS DYNAMICRELATIVEnomb-fech-3
KEY IS
55
STATUSnomb-fech-1
FILE
IS
nomb-fech-5
5.5%
CONTROL-AREAnomb-fech-6
IS
180
Clusula ASSIGN
La clusula ASSIGN asocia el archivo TRANSACTION con un archivo de pantalla
o un archivo ICF mediante la utilizacin de nombre de asignacin-1.
El nombre de asignacin-1 tiene la estructura siguiente:
Formato
55ASSIGNWORKSTATION -nomb-arch5%
TO
SI
Clusula ORGANIZATION
La clusula ORGANIZATION especifica la estructura lgica de un archivo. La
organizacin TRANSACTION significa una interaccin entre el programa y un
usuario de estacin de trabajo u otro sistema.
181
182
Clusula CONTROL-AREA
La clusula CONTROL-AREA especifica la informacin que depende del dispositivo
y del sistema y que se utiliza para controlar las operaciones de entrada/salida para
archivos TRANSACTION.
El nombre de datos 6 es un tem de datos CONTROL-AREA que debe definirse en
LINKAGE SECTION o WORKING-STORAGE SECTION. Se asume que el nmero
de datos 6 tiene el formato siguiente:
01
nombre datos 6.
02 tecla-funcin PIC X(2).
(Campo de realimentacin de tecla de funcin).
02 nombre-dispositivo PIC X(10).
(Nombre de dispositivo de programa).
02 formato-registro PIC X(10).
(Formato de registro)
..
.
WORKING-STORAGE SECTION.
1 TRANSACTION-CONTROL-AREA.
\
TEM DE REALIMENTACIN
2 FUNCTION-KEY PIC XX.
2 TERMINAL-ID
PIC X(1).
2 FORMAT-NAME
PIC X(1).
183
Tecla Intro
Teclas de funcin 1 a 24
Tecla de Giro Arriba
Tecla de Giro Abajo
Tecla Impr
Tecla Ayuda
Tecla Borra
Tecla Inicio
No definido
Cualquier tecla de funcin para la que se precisa informacin de realimentacin debe definirse para el archivo de pantalla utilizando las DDS.
TERMINAL-ID: El nombre de dispositivo del programa
FORMAT-NAME: El nombre de formato de registro de las DDS que se ha referenciado, mediante la ltima instruccin de E/S ejecutada.
Divisin de Datos
Entrada de Descripcin de Archivos
Una entrada de descripcin de archivos consta de un indicador de nivel (FD), un
nombre de archivo y una serie de clusulas independientes. Para un archivo
TRANSACTION, las clusulas independientes permitidas son la clusula RECORD
CONTAINS, la clusula LABEL RECORDS y la clusula DATA RECORDS.
184
Formato
55FDnomb-arch5
55
RECORDentero--4
CONTAINS entero--3 TO
CHARACTERS
55
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
LABELRECORDSTANDARD
IS
OMITTED \
\
RECORDS
\
\
ARE
\
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
5.5%
DATARECORDnomb-fech-2
IS
RECORDS
ARE
Divisin de Procedimiento
Conceptos de Divisin de Procedimiento
El lenguaje COBOL/400 proporciona una serie de ampliaciones a las instrucciones
PROCEDURE DIVISION para dar soporte al proceso TRANSACTION. Las secciones siguientes describen las instrucciones implicadas y su uso.
185
Instruccin ACCEPT
La instruccin ACCEPT recupera la informacin (datos de atributo) sobre un dispositivo de programa particular asociado con un archivo TRANSACTION.
Instruccin ACCEPT Formato 6 Datos de Atributo
55ACCEPTidentific.-1FROMnomb-nemotc.5
55%
FORidentific.-2
literal-1 FORnomb-arch-1
Este formato de la instruccin ACCEPT slo puede utilizarse para archivos con una
organizacin de TRANSACTION. El nombre mnemotcnico debe asociarse al
nombre de funcin ATTRIBUTE-DATA en el prrafo SPECIAL-NAMES.
Si no se especifica el nombre de archivo, el archivo por omisin para la instruccin
ACCEPT es el primer archivo TRANSACTION especificado en una clusula
SELECT del prrafo FILE-CONTROL.
Si se especifica el literal-1 o el contenido del identificador-2, indica el nombre del
dispositivo de programa para el que estn disponibles los datos de atributo. Este
dispositivo debe definirse mediante un mandato CL: CRTDSPF, ADDICFDEVE o
OVRICFDEVE. No es obligatorio que se adquiera realmente el dispositivo. Si se
especifica el literal-1, debe ser no numrico con una longitud de 10 caracteres o
menos. Si se especifica el contenido del identificador-2, debe ser un tem de datos
alfanumrico con una longitud de 10 caracteres o menos. Si se especifica un
nombre incorrecto de dispositivo de programa, o si el archivo no est abierto
cuando se procesa la instruccin ACCEPT, se emite el mensaje LBE7205
Instruccin ACCEPT ATTRIBUTE-DATA anmala (C D F).
y termina el proceso.
Si se omiten ambas frases FOR (indicando que se est utilizando el archivo por
omisin TRANSACTION), la instruccin ACCEPT utiliza el dispositivo de programa
desde el que se realiz ms recientemente una operacin READ, WRITE,
REWRITE o ACCEPT (Datos de Atributo). Si la nica operacin anterior del
archivo fue una OPEN, la instruccin ACCEPT utiliza el dispositivo de programa
adquirido implcitamente por el archivo cuando ste se abri. Cuando se omiten
ambas frases FOR, ha de haberse adquirido un dispositivo de programa con el fin
de utilizar este formato particular de la instruccin ACCEPT.
Los atributos del dispositivo de programa se mueven al identificador-1 desde el
formato de datos de atributos apropiado, de acuerdo con las normas para una instruccin MOVE de grupo sin la frase CORRESPONDING.
186
El usuario podr hacer uso de varios archivos de pantalla junto con archivos ordinarios en un programa que incluya una instruccin ACCEPT o DISPLAY
ampliadas. Vea la publicacin COBOL/400 Reference para ms informacin.
Instruccin ACQUIRE
La instruccin ACQUIRE adquiere un dispositivo de programa para un archivo
TRANSACTION.
Instruccin ACQUIRE Archivo TRANSACTION
55ACQUIREidentific.FORnomb-arch5%
literal
El literal o los contenidos del identificador indican el nombre del dispositivo de programa que debe adquirir el archivo especificado. Si se especifica el literal, debe
ser no numrico con una longitud de 10 caracteres o menos. Si se especifica el
identificador, debe hacer referencia a un tem de datos alfanumricos con una longitud de 10 caracteres o menor.
El nombre de archivo debe ser el nombre de un archivo con una organizacin de
TRANSACTION, y el archivo debe estar abierto cuando se ejecuta la instruccin
ACQUIRE. Se emite un mensaje de error de compilacin si la organizacin no es
TRANSACTION.
Para una descripcin de las condiciones que deben cumplirse antes de que se
pueda adquirir un dispositivo de comunicaciones, consulte la publicacin ICF
Programmers Guide. Para ms informacin acerca de los requisitos para pantallas, consulte la publicacin Gua para la Gestin de Datos.
La realizacin satisfactoria de la operacin ACQUIRE hace disponible para operaciones de entrada y salida el dispositivo de programa.
187
Instruccin CLOSE
La instruccin CLOSE termina el proceso de volmenes y archivos, con bloqueo
opcional donde sea procedente.
Instruccin CLOSE Formato 3 Archivo TRANSACTION
55CLOSEnomb-arch-15%
LOCK
WITH
188
Instruccin DROP
La instruccin DROP libera un dispositivo de programa adquirido por un archivo
TRANSACTION.
Instruccin DROP
55DROPidentific.FROMnomb-arch5%
literal
El literal o el contenido del identificador indican el nombre del dispositivo de programa del dispositivo a liberar. Si se especifica el literal, debe ser no numrico y
con una longitud de 10 caracteres o menor. Si se especifica el identificador, debe
referirse a un tem de datos alfanumrico con una longitud de 10 caracteres o
menos.
El nombre del archivo ha de referirse a un archivo con una organizacin de
TRANSACTION, y el archivo debe estar abierto para ser utilizado en la instruccin
DROP. Si no se emite ninguna instruccin DROP, los dispositivos de programa
conectados a un archivo TRANSACTION se liberan implcitamente cuando el
archivo se cierra finalmente.
Los dispositivos de programa especificados en una instruccin DROP han de haber
sido adquiridos por el archivo TRANSACTION, mediante una instruccin ACQUIRE
explcita o mediante una instruccin ACQUIRE implcita en tiempo OPEN.
Despus de la ejecucin satisfactoria de la instruccin DROP, el dispositivo de programa no est ya disponible para las operaciones de entrada y salida a travs del
archivo TRANSACTION. El dispositivo puede volverse a adquirir si es necesario.
El contenido del rea de registros asociada con un dispositivo de programa liberado no est ya disponible, incluso si se vuelve a adquirir el dispositivo.
Si la operacin DROP no es satisfactoria, se procesa el procedimiento USE
AFTER EXCEPTION/ERROR (si se especifica). Para ms informacin, consulte el
Captulo 6, Manejo de Errores y Excepciones COBOL/400.
La instruccin DROP tambin puede utilizarse como ayuda para la recuperacin de
errores de E/S. Para ms informacin, consulte la seccin Instruccin DROP de
la publicacin COBOL/400 Reference.
Instruccin OPEN
La instruccin OPEN inicia el proceso de archivos.
189
55OPEN I-Onomb-arch5%
Un archivo TRANSACTION debe abrirse en modalidad de E/S. Para un tratamiento adicional de la instruccin OPEN, consulte la COBOL/400 Reference.
La instruccin OPEN puede provocar que se adquiera implcitamente un dispositivo
de programa para un archivo TRANSACTION. Para un anlisis adicional acerca
de la adquisicin de dispositivos de programa, consulte el apartado Instruccin
ACQUIRE en la pgina 187.
Frase FORMAT
El literal o identificador especificado debe ser una serie de caracteres con una longitud de 10 caracteres o menos.
Varios registros de datos, cada uno con un formato distinto, pueden estar activos
de forma simultnea para un archivo TRANSACTION. Si se especifica la frase
FORMAT, debe especificar un nombre de formato vlido que se define para el
sistema, y debe realizarse la operacin de E/S en un registro de datos del mismo
formato. Si el formato es un nombre no vlido o si no existe, el tem de datos FILE
STATUS, si se especifica, se establece con un valor 9K y el contenido del rea de
registro es indefinido.
Registro Especial DB-FORMAT-NAME: Despus de la ejecucin de una instruccin de entrada/salida para un archivo TRANSACTION, el registro especial
DB-FORMAT-NAME se modifica de acuerdo con las normas siguientes:
Si la operacin de entrada/salida es satisfactoria, el nombre del formato de
registro se mueve implcitamente al registro especial despus de la finalizacin
de la operacin de entrada/salida.
Si la operacin de entrada/salida no es satisfactoria, DB-FORMAT-NAME contiene el nombre del formato de registro utilizado en la ltima operacin de
entrada/salida satisfactoria.
Si no se especifica la frase FORMAT, puede utilizarse DB-FORMAT-NAME si el
archivo contiene un nombre de formato de registro por omisin. El valor por
omisin siempre se mueve al registro especial DB-FORMAT-NAME.
DB-FORMAT-NAME se define implcitamente como PICTURE X(10).
190
Frase INDICATORS
El identificador especificado en la frase INDICATORS debe ser un tem de datos
booleanos elemental especificado sin la clusula OCCURS o un tem de grupo que
tiene tems de datos booleanos subordinados a l.
Cuando se graba o se regraba un registro de datos, los indicadores pueden grabarse o regrabarse con l. Los indicadores pueden controlar el modo de
visualizacin del registro y las diversas funciones de gestin de datos.
Cuando se lee un registro de datos, los indicadores pueden leerse con l. Los
indicadores pueden utilizarse para pasar informacin acerca de los registros de
datos y y de su entrada en el programa.
Al definir un formato utilizando DDS, el usuario determina qu funciones deben
controlarse mediante los indicadores y qu indicadores controlan una determinada
funcin.
Para una informacin detallada de la frase INDICATORS, consulte el apartado Utilizacin de Indicadores con Archivos Transaction en la pgina 149.
Frase SUBFILE
Si se especifica la frase SUBFILE, sta indica que todos los formatos referenciados
por la instruccin son subarchivos. Cuando no se especifica SUBFILE en una instruccin TRANSACTION I/O, indica que ninguno de los formatos referenciados por
la instruccin son subarchivos. Esta informacin no se verifica en tiempo de compilacin. Si se especifica de manera incorrecta, el archivo se procesa como una
serie de operaciones de entrada/salida directamente al dispositivo de pantalla.
Cuando el nombre de formato especificado exista como un formato de archivo de
pantalla, las operaciones READ/WRITE se realizan de modo satisfactorio.
Cuando no se especifica SUBFILE, el tem de datos RELATIVE KEY asociado con
el archivo, si se especifica, no se referencia o cambia mediante la operacin de
E/S.
Cuando se especifica SUBFILE, el tem de datos RELATIVE KEY debe definirse
para el archivo. La operacin de E/S referencia su valor, y a veces lo cambia.
Vea cada una de las instrucciones asociadas con las operaciones SUBFILE para
una descripcin detallada de cundo y cmo se cambia el tem de datos RELATIVE KEY.
La frase SUBFILE slo puede especificarse para los archivos de pantalla.
Frase TERMINAL
Cuando se especifica la frase TERMINAL, indica que un dispositivo de programa
especfico se va a utilizar para una operacin READ, WRITE o REWRITE en un
archivo TRANSACTION.
La frase TERMINAL puede omitirse para las operaciones de E/S en archivos de
dispositivo nico, porque ese dispositivo es el que se utiliza siempre.
Si se omite la frase TERMINAL para una operacin de E/S en un archivo
TRANSACTION que adquiri varios dispositivos de programa, se utiliza el dispositivo de programa que intent por ltima vez una operacin READ, WRITE,
REWRITE, ACQUIRE, DROP o ACCEPT (Datos de Atributo) en el archivo. Si la
191
nica de las operaciones anteriores del archivo fue una OPEN, el dispositivo de
programa por omisin utilizado es el dispositivo de programa adquirido implcitamente por el archivo TRANSACTION cuando se abri el archivo. Se produce un
mensaje de error en tiempo de ejecucin si no se ha adquirido ningn dispositivo
de programa al abrir el archivo.
Para una instruccin READ con la frase TERMINAL y la frase NO DATA especificadas, se ejecuta la instruccin imperativa en la frase NO DATA slo si los datos
no estn inmediatamente disponibles desde el dispositivo de programa especificado mediante la frase TERMINAL.
Si se especifica la frase TERMINAL y el tem de datos o el literal est en blanco, la
frase se trata en tiempo de ejecucin como si no se hubiera especificado.
Instruccin READ
La instruccin READ hace que un registro est disponible desde un dispositivo,
utilizando un formato designado. Si el formato es un subarchivo, la instruccin
READ hace que un registro especfico est disponible desde dicho subarchivo.
192
55READnomb-arch5
RECORD
55
INTOidentific.-1
55
FORMATidentific.-2
IS literal-1
55
TERMINALidentific.-3
IS literal-2
55
INDICATORidentific.-4
INDICATORS IS
INDIC ARE
55
NO DATAsentencia-imperativa-1
55
ENDsentencia-imperativa-2
AT
55%
NOTENDsentencia-imperativa-3 END-READ
AT
193
Frase
Y=S
Comprobado en
Compilacin
TERMINAL2
N=No
FORMAT2
NO DATA
NNNNYYYY
NNYYNNYY
NYNYNYNY
Determinado en
Tiempo de Ejecucin
Un Solo Dispositivo
Dispositivos Mltiples
DCDBDCDB
AADBDCDB
Si se especifica la frase y el tem de datos o literal est en blanco, la frase se trata en tiempo de ejecucin como si no se hubiera
especificado.
194
publicacin ICF Programmers Guide para obtener informacin acerca del parmetro FMTSLT de los mandatos ADDICFDEVE y OVRICFDEVE.
Esta instruccin READ puede completarse sin devolver ningn dato en los casos
siguientes:
Si no hay dispositivos invitados.
Si se produce una cancelacin controlada del trabajo. Esto da como resultado
un valor de estado de archivo de 9A y un valor de cdigo de retorno
principal/secundario de 0309.
Si se omite la frase NO DATA y expira el tiempo de espera especificado. Esto
da como resultado un valor de estado de archivo de 00 y un valor de cdigo
de retorno principal/secundario de 0310.
Si el tiempo de espera especificado es el valor entrado en el parmetro
WAITRCD para el archivo.
Si se especifica la frase NO DATA y no hay datos inmediatamente disponibles
cuando se procesa la READ.
Si hay datos disponibles, se devuelven al rea de registros. El formato de registro
se devuelve en el rea I-O-FEEDBACK y en el CONTROL-AREA. Para ms informacin acerca de Lectura desde Dispositivos de Programa Invitados, consulte la
publicacin ICF Programmers Guide.
195
Frase INTO
La frase INTO puede especificarse si:
Slo hay una descripcin de registro subordinada a la entrada de descripcin
del archivo,
o bien
Todos los nombres de registros asociados al nombre de archivo y el tem de
datos al que hace referencia el identificador-1 describen un tem de grupo o un
tem alfanumrico elemental.
196
Frase FORMAT
El literal-1 o el identificador-2 especifican el nombre del formato de registro a leer.
Si se especifica el literal-1, debe ser no numrico con una longitud de 10 caracteres o menos. Si se especifica el identificador-2, debe referirse a un tem de
datos alfanumrico con una longitud de 10 caracteres o menos. Si el
identificador-2 contiene espacios en blanco, se ejecuta la instruccin READ como
si se omitiera la frase FORMAT.
Frase NO DATA
Cuando se especifica la frase NO DATA, la instruccin READ determina si los
datos estn inmediatamente disponibles. Si hay datos disponibles, se devuelven al
rea de registros. Si no hay datos inmediatamente disponibles, se procesa la instruccin imperativa NO DATA. La frase NO DATA evita que la instruccin READ
espere a que los datos estn disponibles.
Frase TERMINAL
El literal-2 o el identificador-3 especifican el nombre del dispositivo de programa.
Si se especifica el literal-2, debe ser no numrico con una longitud de 10 caracteres o menos. Si se especifica el identificador-3, debe referirse a un tem de
datos alfanumricos con una longitud de 10 caracteres o menos. El dispositivo de
programa debe haberse adquirido antes de que se procese la instruccin READ.
Si el identificador-3 contiene espacios en blanco, se procesa la instruccin READ
como si se omitiera la frase TERMINAL. Para un archivo de un solo dispositivo,
puede omitirse la frase TERMINAL. Se asume que el dispositivo de programa es
aquel dispositivo nico.
Si se omite la frase TERMINAL para una instruccin READ de un archivo
TRANSACTION que ha adquirido mltiples dispositivos de programa, se utiliza el
dispositivo de programa por omisin. Consulte el comentario de la frase TERMINAL en la pgina 191, para ver cmo se determina el dispositivo de programa
por omisin.
Frase AT END
La instruccin imperativa-2 se realiza cuando se detecta la condicin AT END.
Nota: Una condicin AT END se produce en los casos siguientes:
Durante una instruccin READ para un archivo con acceso secuencial cuando
no hay ningn registro lgico siguiente en el archivo, o cuando el nmero de
dgitos significativos en el nmero relativo de registro es mayor que el tamao
del tem de datos de clave relativa, o cuando no se presenta ningn archivo de
entrada opcional.
Durante una instruccin RETURN cuando no hay registros lgicos para la clasificacin asociada o el archivo de fusin.
Durante una instruccin SEARCH cuando la operacin de bsqueda finaliza sin
satisfacer la condicin especificada en cualquier frase WHEN asociada.
197
Frase END-READ
La frase END-READ sirve para delimitar explcitamente el mbito de la instruccin.
Instruccin READ Formato 5 Archivo TRANSACTION (Subarchivo)
55READ SUBFILEnomb-arch5
55
MODIFIED RECORD
NEXT
55
INTOidentific.-1
55
FORMATidentific.-2
IS literal-1
5TERMINALidentific.-35
IS literal-2
55
INDICATORidentific.-4
INDICATORS IS
INDIC ARE
55
INVALIDsentencia-imperativa-1
KEY
55
NOT INVALIDsentencia-imperativa-2
KEY
55
ENDsentencia-imperativa-3
AT
55%
NOTENDsentencia-imperativa-4 END-READ
AT
El formato 5 slo se utiliza para leer un formato que sea un registro de subarchivo.
La frase AT END slo puede utilizarse cuando se especifica la frase NEXT
MODIFIED. La frase INVALID KEY no debe utilizarse cuando se especifica la
frase NEXT MODIFIED.
198
Frase FORMAT
Cuando no se especifica un nombre de formato, el formato utilizado es el ltimo
formato de registro grabado en el dispositivo de pantalla que contiene campos de
entrada, campos de entrada/salida o campos ocultos. Si no existe tal formato para
el archivo de pantalla, el formato utilizado es el formato de registro de la ltima
operacin WRITE para el dispositivo de pantalla.
Nota: Un campo de entrada es un campo especificado en un archivo de pantalla
o en un archivo de base de datos que se reserva para la informacin suministrada por el usuario
199
Frase TERMINAL
Consulte el Formato 4 de la instruccin READ para obtener las consideraciones
generales concernientes a la frase TERMINAL.
Para una instruccin READ de Formato 5, si se omite la frase TERMINAL de un
archivo que tenga dispositivos mltiples adquiridos, se lee un registro desde el subarchivo asociado al dispositivo de programa por omisin. Consulte el anlisis de la
frase TERMINAL en la pgina 191, para ver cmo se determina el dispositivo de
programa por omisin.
Para una instruccin READ con Formato 5, especifique la frase INVALID KEY si no
se especifica la frase NEXT MODIFIED y si no hay el procedimiento USE pertinente especificado para el nombre de archivo.
Frase AT END
Si se especifica la frase NEXT MODIFIED y no hay ningn registro modificado por
el usuario en el subarchivo, existe la condicin AT END y la operacin READ no es
satisfactoria.
Especifique la frase AT END cuando se utiliza la frase NEXT MODIFIED y no se
especifica ningn procedimiento USE aplicable para el nombre del archivo. Si se
especifica la frase AT END y el procedimiento USE para un archivo, y surge la
condicin AT END, el control se transfiere a la instruccin imperativa AT END y el
procedimiento USE no se ejecuta.
200
Frase END-READ
La frase END-READ sirve para delimitar explcitamente el mbito de la instruccin.
Instruccin REWRITE
La instruccin REWRITE se utiliza para sustituir un registro de subarchivo que ya
existe en el subarchivo.
Instruccin REWRITE Formato 2 Archivo TRANSACTION (Subarchivo)
55REWRITE SUBFILEnomb-regist-15
FROMidentific.-1
5FORMATidentific.-25
IS literal-1
55
TERMINALidentific.-3
IS literal-2
55
INDICATORidentific.-4
INDICATORS IS
INDIC ARE
55
INVALIDsentencia-imperativa-1
KEY
55%
KEY
Frase FORMAT
El formato de registro especificado en la frase FORMAT debe ser el formato de
registro accedido en la operacin READ anterior. El literal-1 o el contenido del
identificador-2 debe ser el nombre del formato del subarchivo accedido en la anterior instruccin READ. Para ms informacin acerca de la frase FORMAT, consulte el apartado Recursos Comunes de Proceso en la pgina 190.
201
Frase TERMINAL
La frase TERMINAL indica en qu subarchivo de dispositivo de programa va a
regrabarse un registro. Si se especifica la frase TERMINAL, el literal-2 o el
identificador-3 deben hacer referencia a una estacin de trabajo adquirida mediante
el archivo TRANSACTION. Si el literal-2 o el identificador-3 contienen espacios en
blanco, la frase TERMINAL no tiene efecto. Debe haberse adquirido el dispositivo
de programa especificado mediante la frase TERMINAL, explcita o implcitamente,
y debe tener un subarchivo asociado con el dispositivo.
El literal-2 o el identificador-3 deben ser nombres vlidos de dispositivo de programa. Si se especifica el literal-2, debe ser no numrico con una longitud de 10
caracteres o menos. Si se especifica el Identificador-3, debe referirse a un tem de
datos alfanumrico, de 10 caracteres o menos.
Si se omite la frase TERMINAL de un archivo TRANSACTION que adquiri varios
dispositivos de programa, el subarchivo utilizado es el subarchivo asociado con el
ltimo dispositivo de programa desde el que se ha intentado una instruccin READ
del archivo TRANSACTION.
La instruccin REWRITE no puede utilizarse para dispositivos de comunicaciones.
Si se utiliza la instruccin REWRITE para un dispositivo de comunicaciones, la
operacin fracasa y el estado del archivo se establece en 90.
Frase END-REWRITE
La frase END-REWRITE sirve para delimitar explcitamente el mbito de la instruccin.
202
Instruccin WRITE
La instruccin WRITE libera un registro lgico para el archivo.
Instruccin WRITE Formato 4 Archivo TRANSACTION (No subarchivo)
55WRITEnombre-registro-15
FROMidentific.-1
5FORMATidentific.-25
IS literal-1
55
TERMINALidentific.-3
IS literal-2
55
STARTINGidentific.-4
AT LINE literal-3
55
BEFOREROLLINGidentific.-55
AFTER
LINES literal-4
LINE
55
5identific.-6UPidentific.-7
THRU
LINE
55%
INDICATORidentific.-8 END-WRITE
INDICATORS IS
INDIC ARE
Frase TERMINAL
La frase TERMINAL especifica los dispositivos de programa a los que va a enviar
el registro de salida.
El contenido del literal-2 o el identificador-3 debe ser el nombre de un dispositivo
de programa anteriormente adquirido, implcita o explcitamente, por el archivo. Si
se especifica el literal-2, debe ser no numrico con una longitud de 10 caracteres o
menos. Si se especifica el identificador-3, debe referirse a un tem de datos
alfanumricos con una longitud de 10 caracteres o menos. Un valor de espacios
en blanco se trata como si se omitiera la frase TERMINAL.
203
Frase STARTING
La frase STARTING especifica el nmero inicial de lnea para los formatos de
registro que utilicen la palabra clave lnea de comienzo variable. Esta frase slo es
vlida para dispositivos de pantalla.
El nmero real de lnea en el que comienza un campo puede determinarse con la
ecuacin siguiente:
Donde:
Lnea real es el nmero real de lnea
Lnea inicial es el nmero de lnea inicial especificado en el programa
Lnea inicial de las DDS es el nmero de lnea especificado en las posiciones
39 a 41 del formulario Especificaciones de Descripcin de Datos.
La operacin WRITE es satisfactoria si:
El resultado de la ecuacin anterior es positivo y menor o igual al nmero de
lneas en la pantalla.
El valor especificado para la frase STARTING es 0. En este caso, se asume
un valor de 1.
La operacin WRITE no es satisfactoria, y el programa finaliza, si:
El resultado de la ecuacin anterior es mayor que el nmero de lneas en la
pantalla.
El valor especificado para la frase STARTING es negativo.
Si el valor especificado para la frase STARTING est dentro del rea de pantalla,
se ignora cualquier campo fuera del rea de pantalla.
El literal-3 de la frase STARTING debe ser un literal numrico. El identificador-4
debe ser un tem numrico elemental.
Para utilizar la frase STARTING, debe especificarse la palabra clave a nivel de
registro DDS SLNO(*VAR) para el formato a grabar. Si el formato de registro no
especifica esta palabra clave, se ignora la frase STARTING en tiempo de ejecucin.
204
La palabra clave CLRL de las DDS tambin afecta a la frase STARTING. CLRL
controla la cantidad de pantalla que se borra cuando se procesa la instruccin
WRITE.
Vea la publicacin DDS Reference para obtener ms informacin acerca de las
palabras clave SLNO(*VAR) y CLRL.
Frase ROLLING
La frase ROLLING le permite mover lneas visualizadas en la pantalla de la
estacin de trabajo. Todas o algunas lneas de la pantalla pueden girarse hacia
arriba o hacia abajo. Se borran las lneas que dejan desocupadas las lneas
giradas, y pueden tener otro formato de pantalla escritos en ellas. Esta frase slo
es vlida para dispositivos de pantalla.
ROLLING se especifica en la instruccin WRITE que est grabando un nuevo
formato en la pantalla. El usuario deber especificar si la grabacin es antes o
despus de girar, as como el rango de lneas que se desea girar, la cantidad de
lneas que se desea girar dichas lneas y si la operacin de girar es hacia arriba o
hacia abajo.
Una vez que las lneas se han girado, los campos en estas lneas retienen sus
atributos de pantalla de las DDS (por ejemplo, el subrayado), pero pierden sus atributos de utilizacin de las DDS (por ejemplo, la posibilidad de entrada). Los
campos en lneas que se graban y despus se giran (frase BEFORE ROLLING)
tambin pierden sus atributos de utilizacin.
Si se gira cualquier parte de un formato, todo el formato pierde sus atributos de
utilizacin. Si hay ms de un formato, slo los formatos girados pierden sus atributos de utilizacin.
Cuando especifique la frase ROLLING, se aplican las normas generales siguientes.
La palabra clave ALWROL a nivel de registro de las DDS debe especificarse
para cada formato de registro grabado en una instruccin WRITE que contiene
la frase ROLLING.
No han de utilizarse otras palabras clave DDS que se excluyan mutuamente
con la palabra clave ALWROL.
Ambas palabras clave DDS, CLRL u OVERLAY, deben especificarse para un
formato de registro que se va a grabar y girar para evitar que la pantalla de
visualizacin se borre cuando se graba el formato de registro. Consulte el
manual DDS Reference para ms informacin acerca de las palabras clave
DDS.
Todos los identificadores y literales deben representar valores enteros positivos.
El nmero de la lnea inicial del giro (identificador-5 o literal-4) no debe sobrepasar el nmero de lnea final (identificador-6 o literal-5).
Desaparece el contenido de las lneas que al girar salen fuera de la ventana
especificada por los nmeros de lnea inicial y final.
La Figura 67 en la pgina 207 muestra un ejemplo de operacin de giro. Se
escribe un formato de pantalla inicial, FMT1, en la pantalla. El programa procesa
este formato de pantalla y ahora est listo para escribir el siguiente formato de
205
206
Lnea 14
Lnea 2
Estas 7 lneas de
PANTALLA DESPUS DEL PROCESO DE LA INSTRUCCIN WRITE
5FMT1 se girarn
2 lneas hacia
abajo.
Estas 3 lneas de
5FMT2 se han grabado
sobre las lneas
anteriores.
Figura 67. Ejemplo de Operacin ROLLING
207
55WRITE SUBFILEnombre-registro-15
FROMidentific.-1
5FORMATidentific.-25
IS literal-1
55
TERMINALidentific.-3
IS literal-2
55
INDICATORidentific.-4
INDICATORS IS
INDIC ARE
55
INVALIDsentencia-imperativa-1
KEY
55%
KEY
Frase TERMINAL
Consulte la explicacin que sigue al Formato 4 para ver las consideraciones generales concernientes a la frase TERMINAL.
La frase TERMINAL especifica en qu subarchivo de dispositivo de programa va a
grabarse un registro. Si se especifica la frase TERMINAL, el literal-2 o el
identificador-3 deben hacer referencia a una estacin de trabajo asociada con el
archivo TRANSACTION. Si el literal-2 o el identificador-3 contienen un valor en
blanco, la frase TERMINAL se trata como si no se hubiera especificado. La
208
Frase END-WRITE
La frase END-WRITE sirve para delimitar explcitamente el mbito de la instruccin.
Para un anlisis ms detallado de la instruccin WRITE, de la frase FROM y de la
frase INVALID KEY, vea el manual COBOL/400 Reference. Para ms informacin
acerca de la frase FORMAT, consulte la Divisin de Procedimientos, en el apartado Recursos Comunes de Proceso en la pgina 190.
Instruccin USE
La instruccin USE especifica los procedimientos para el manejo de errores de
entrada/salida que existen junto con los procedimientos estndar proporcionados
por el sistema de control de entrada/salida.
Formato
55USE AFTEREXCEPTION5
STANDARD ERROR
5PROCEDUREnomb-arch-15%
ON
I-O
209
A S / 4 0 0 E S P E C I F I C A C I O N E S D E D E S C R I P C I O N D E D AT O S
Inter national
B usiness
Machines
*El
Archivo
Signo
nmero
de
hojas por
rea
de
Impreso
relleno puede
Descripcin
variar
Pgina
U M / 0 5 0 *
en
Espaa
ligeramente.
de
Instrucciones
de Grabacin
1 0
1 1
1 2
1 3
1 4
A * A R C H I VO
1 5
1 8
1 9
2 0
2 1
2 2
2 3
MA E S T R O
2 4
2 5
D E
2 6
2 7
2 8
2 9
Tipo
3 0
3 1
3 2
3 3
3 4
CO N S U L T A
3 5
(b/O /I/B/H/M/N/P)
Referencia (R)
Reservado
Nombre
1 7
Datos/Desplazamiento Teclado
(/b / R / H / J / K / S / O )
1 6
Tipo
No (N)
Indicador
No (N)
Indicador
Espec
(A/O/*)
7
Longitud
3 6
U t i l i z a c/i n
Nom bre
D ecimales
Indicador
de
2
And/Or/Coment.
Tipo
1
Nombre Condicin
No (N)
Secuencia
Formula rio
Condicionamiento
N mero d e
Tecla
Fecha
Posiciones
Programador
3 7
3 8
D E
Ubicacin
Funciones
Lnea
3 9
4 0
C L
4 1
P o s
4 2
4 3
4 4
4 5
I E N T E
4 6
4 7
4 8
4 9
- -
5 0
5 1
5 2
5 3
5 4
5 5
5 6
5 7
5 8
5 9
6 0
6 1
6 2
6 3
6 4
6 5
6 6
6 7
6 8
6 9
7 0
7 1
7 2
7 3
7 4
7 5
7 6
7 7
7 8
7 9
8 0
C U S M I NQ
A *
A
R E F ( CU SMS T P )
CU S PMT
T E X T (
' SOL
CA 0 3 ( 1 5
3 ' CO N S U L T A
3 ' N UME R O
A
A
CU S T
E R RMSG (
T R ADO
D UC I R
5
3 ' U T I L
U T I L
CU S F L D S
8
N AM E
I CE
SOL
CL
I E N T E S '
F 3
L A
D E
CL
I E N T E
R E S T AUR AR ,
VA L
I DO '
P AR A
NO
E N CO N
L U E GO
I N T RO
9 9 )
F I NA L
T EC L A
I C I T AR
I N T RO
I Z AR
P R OG R A M A , +
P AR A
VO L V E R
P AN T A L L A '
' P AN T A L L A
' F I N
D E
D E
CL
I E N T E '
P R OG R A M A '
9
/
3 ' N OM B R E '
1 1
3 ' D I R E CC I ON '
C I T Y
1 0
S T A T E
1 1
1 1
1 1
2 1 ' C O D I GO
Z I P
1 1
3 1
AR B A L
1 /
0
1 1
A
A
' N UME R O
N UME R O
ADD R
8
9
OV E R L A Y
I E N T E '
I E N T E '
P U L S E
CA 0 3 ( 1 5
C L
P R OG R A M A '
MA E S T R A
C L
I CE
T E X T (
D E
D E
2 /
0
9 9
I C I T UD
' F I N
1 2
1 2
1 1
3 ' C I U D AD '
1 1
3 ' P R OV I NC I A '
3 ' B A L A NC E
POS T A L
'
A / R '
1 7
A
A
A
A
A
A
Figura 68. Ejemplo de Programa de Consulta TRANSACTION que Utiliza un Solo Dispositivo de Pantalla
210
Nombre
Direccin
Ciudad
Provincia
Cdigo Postal
Saldo C/C.
Estas constantes identifican los campos a grabar fuera del programa. Este formato
de registro tambin describe los campos que corresponden a estas constantes.
Todos estos campos se describen como campos de salida (espacio en blanco en
la posicin 38) debido a que los rellena el programa; no entre ningn dato en estos
campos. Para entrar otro nombre de cliente, pulse Intro en respuesta a este
registro. Observe que el registro CUSFLDS recubre el registro CUSPMT. Por lo
tanto, cuando el registro CUSFLDS se graba en la pantalla, el registro CUSPMT
permanece en pantalla.
Adems de la descripcin de constantes, campos y atributos para la pantalla, los
formatos de registro tambin definen los nmeros de lneas y las posiciones horizontales en las que se van a visualizar las constantes y campos.
Nota: Los atributos de campo se definen en un archivo fsico (CUSMSTP) utilizado a efectos de referencia de campos, en lugar de hacerlo en las DDS
para el archivo de pantalla. Por ejemplo, EDTCDE(J) se define en
CUSMSTP para el campo ARBAL.
211
G X 2 1 - 9 8 9 1 - 0
A S / 4 0 0 E S P E C I F I C A C I O N E S D E D E S C R I P C I O N D E D AT O S
International
Business
Machines
*El nmero
Signo
Archivo
de hojas por
rea
Impreso
Descripcin
Pgina
U M / 0 5 0 *
en
Espaa
ligeramente.
de
Instrucciones
de Grabacin
10
1 1
1 2
1 3
1 4
1 5
1 7
1 8
1 9
2 0
2 1
2 2
2 3
CU SMS T P
R
2 4
2 5
2 7
2 8
2 9
Tipo
Referencia (R)
2 6
3 0
3 1
3 2
3 3
3 4
A R C H I VO
3 5
(b/O /I/B/H/M/N/P)
Datos/Desplazamiento Teclado
(/b / R / H / J / K / S / O )
Nombre
1 6
Reservado
Tipo
No (N)
Indicador
No (N)
Indicador
Espec
(A/O/*)
7
F I S I CO
Longitud
3 6
Utilizacin
Nom bre
D ecimales
A * *
Indicador
de
2
And/Or/Coment.
Tipo
1
Nombre Condicin
No (N)
Secuencia
Formula rio
Condicionamiento
N mero d e
Tecla
Fecha
Posiciones
Programador
3 7
3 8
Ubicacin
Funciones
Lnea
3 9
4 0
4 1
MA E S T R O
CU SMS T
P o s
4 2
4 3
4 4
D E
4 5
4 6
4 7
CL
4 8
4 9
5 0
5 1
5 2
5 3
5 4
5 5
5 6
5 7
5 8
5 9
6 0
6 1
6 2
6 3
6 4
6 5
6 6
T E X T (
' R EG I S T RO
T E X T (
' N UME R O
D E
D E
C L
I E N T E '
T E X T (
' N OM B R E
D E
C L
I E N T E '
T E X T (
' D I R E CC I ON
D E
T E X T (
' C I U D AD
C L
T E X T (
' P R OV I NC I A '
T E X T (
' C O D I GO
POS T A L
T E X T (
' C O D I GO
B U S QU E DA
T E X T (
' T I PO
CU S T
N AM E
2 5
ADD R
2 0
C I T Y
2 0
S T A T E
Z I P
S R H C OD
CU S T Y P
0 0
/ /
AR B A L
0 2
T E X T (
' S A L DO
OR D B A L
0 2
T E X T (
'
L S T AM T
0 2
T E X T (
' U L T I MO
I MP OR T E
L S T DA T
0 0
/ /
T E X T (
' U L T I MA
F E CHA
CRD L M T
0 2
T E X T (
' L
CR E D I T O
C L
S L S Y R
1 0
0 /
2
T E X T (
' V E N T A S
C L
I E N T E
E S T E
S L S L Y R
1 0
0 /
2
T E X T (
' V E N T A S
C L
I E N T E
A O
/ /
3 = B U S
6 8
CA B E C E R A
0 0
6 7
6 9
7 0
7 1
7 2
7 3
7 4
7 5
7 6
7 7
7 8
7 9
D E
C L
4 = P V T
I E N T E '
I E N T E '
P E D I DO S '
I E N T E
5 =O T '
'
)
N UM
1 = GO B
C L
I E N T E '
2 = P L AN
CU E N T A S
I MP OR T E
I M I T E
C L
D E
A / R
P OR
E N
CO B R A R '
ARCH
P AG A D O
P AG A D A
P E D I DO S '
E N
E N
I E N T E '
A / R '
A / R '
A O '
P A S ADO '
CU S T
212
8 0
I E N T E S
)
5763CB1 V3RM5
Listado Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN S NOMCOPIA
1 1 IDENTIFICATION DIVISION.
2 2 PROGRAM-ID.
XMPLE766.
3\
EJEMPLO PROG. DE CONSULTA TRANSACTION QUE UTILIZA 1 DISP. DE PANT.
3 4 AUTHOR.
PROGRAMMER NAME.
4 5 INSTALLATION. TORONTO COBOL DEVELOPMENT CENTRE.
5 6 DATE-WRITTEN. 12/21/88.
6 7 DATE-COMPILED. 5/24/94 13:42:5
.
7 8 ENVIRONMENT DIVISION.
8 9 CONFIGURATION SECTION.
9 1 SOURCE-COMPUTER. IBM-AS4.
1 11 OBJECT-COMPUTER. IBM-AS4.
11 12 INPUT-OUTPUT SECTION.
12 13 FILE-CONTROL.
13 14
SELECT CUST-DISPLAY
14 15
ASSIGN TO WORKSTATION-CUSMINQ
15 16
ORGANIZATION IS TRANSACTION
16 17
CONTROL-AREA IS WS-CONTROL.
17 18
SELECT CUST-MASTER
18 19
ASSIGN TO DATABASE-CUSMSTP
19 2
ORGANIZATION IS INDEXED
2 21
ACCESS IS RANDOM
21 22
RECORD KEY IS CUST OF CUSMST
22 23
FILE STATUS IS CM-STATUS.
23 24 DATA DIVISION.
24 25 FILE SECTION.
25 26 FD CUST-DISPLAY
26 27
LABEL RECORDS ARE OMITTED.
27 28 1 DISP-REC.
28 29
COPY DDS-ALL-FORMATS OF CUSMINQ.
29 +1
5 CUSMINQ-RECORD PIC X(8).
<-ALL-FMTS
+2\ FORMATO ENTRADA:CUSPMT
DESDE ARCHIVO CUSMINQ
DE BIBLIOTECA XMPLIB
<-ALL-FMTS
+3\
SOLICITUD CLIENTE
<-ALL-FMTS
3 +4
5 CUSPMT-I
REDEFINES CUSMINQ-RECORD.
<-ALL-FMTS
31 +5
6 CUSPMT-I-INDIC.
<-ALL-FMTS
32 +6
7 IN15
PIC 1 INDIC 15.
<-ALL-FMTS
+7\
FIN DE PROGRAMA
<-ALL-FMTS
33 +8
7 IN99
PIC 1 INDIC 99.
<-ALL-FMTS
+9\
NMERO CLIENTE NO HALLADO, PULSAR REST, EL
<-ALL-FMTS
34 +1
6 CUST
PIC X(5).
<-ALL-FMTS
+11\
NMERO CLIENTE
<-ALL-FMTS
+12\FORMATO SALIDA:CUSPMT
DESDE ARCHIVO CUSMINQ
DE BIBLIOTECA XMPLIB
<-ALL-FMTS
+13\
SOLICITUD CLIENTE
<-ALL-FMTS
35 +14
5 CUSPMT-O
REDEFINES CUSMINQ-RECORD.
<-ALL-FMTS
36 +15
6 CUSPMT-O-INDIC.
<-ALL-FMTS
37 +16
7 IN99
PIC 1 INDIC 99.
<-ALL-FMTS
+17\
NMERO CLIENTE NO HALLADO, PULSAR REST, EL
<-ALL-FMTS
+18\ FORMATO ENTRADA:CUSFLDS
DESDE ARCHIVO CUSMINQ
DE BIBLIOTECA XMPLIB
<-ALL-FMTS
+19\
PANTALLA CLIENTE
<-ALL-FMTS
38 +2
5 CUSFLDS-I
REDEFINES CUSMINQ-RECORD.
<-ALL-FMTS
39 +21
6 CUSFLDS-I-INDIC.
<-ALL-FMTS
4 +22
7 IN15
PIC 1 INDIC 15.
<-ALL-FMTS
+23\
FIN DE PROGRAMA
<-ALL-FMTS
+24\FORMATO SALIDA:CUSFLDS
DESDE ARCHIVO CUSMINQ
DE BIBLIOTECA XMPLIB
<-ALL-FMTS
+25\
PANTALLA CLIENTE
<-ALL-FMTS
41 +26
5 CUSFLDS-O
REDEFINES CUSMINQ-RECORD.
<-ALL-FMTS
42 +27
6 NAME
PIC X(25).
<-ALL-FMTS
+28\
NOMBRE CLIENTE
<-ALL-FMTS
43 +29
6 ADDR
PIC X(2).
<-ALL-FMTS
+3\
DIRECCIN CLIENTE
<-ALL-FMTS
44 +31
6 CITY
PIC X(2).
<-ALL-FMTS
+32\
CIUDAD CLIENTE
<-ALL-FMTS
45 +33
6 STATE
PIC X(2).
<-ALL-FMTS
+34\
PROVINCIA
<-ALL-FMTS
46 +35
6 ZIP
PIC S9(5).
<-ALL-FMTS
+36\
CDIGO POSTAL
<-ALL-FMTS
47 +37
6 ARBAL
PIC S9(6)V9(2).
<-ALL-FMTS
+38\
SALDO CUENTAS PEND
<-ALL-FMTS
3
48 31 FD CUST-MASTER
49 32
LABEL RECORDS ARE STANDARD.
5 33 1 CUST-REC.
51 34
COPY DDS-CUSMST OF CUSMSTP.
+1\
FORMATO E-S:CUSMST
DESDE CUSMSTP DE BIBLIOTECA XMPLIB
CUSMST
FECH/CAM
1/22/94
3/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
1/22/94
Figura 70 (Parte 1 de 2). Listado Fuente de un Programa de Consulta TRANSACTION que Utiliza un Solo Dispositivo de Pantalla
213
5763CB1 V3RM5
Listado Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
+2\
REGISTRO MAESTRO CLIENTE
+3\DEFINICIONES CLAVE PARA FORMATO DE REGISTRO CUSMST
+4\ NMERO
NOMBRE
RECUPERACIN TIPO
SECALT
+5\
1
CUST
ASCENDENTE
AN
NO
52 +6
5 CUSMST.
53 +7
6 CUST
PIC X(5).
+8\
NMERO CLIENTE
54 +9
6 NAME
PIC X(25).
+1\
NOMBRE CLIENTE
55 +11
6 ADDR
PIC X(2).
+12\
DIRECCIN CLIENTE
56 +13
6 CITY
PIC X(2).
+14\
CIUDAD CLIENTE
57 +15
6 STATE
PIC X(2).
+16\
PROVINCIA
58 +17
6 ZIP
PIC S9(5)
COMP-3.
+18\
CDIGO POSTAL
59 +19
6 SRHCOD
PIC X(6).
+2\
CDIGO BSQUEDA NMERO CLIENTE
6 +21
6 CUSTYP
PIC S9(1)
COMP-3.
+22\
TIPO CLIENTE 1=GOB 2=PLA 3=NEG 4=FAB 5=OTR
61 +23
6 ARBAL
PIC S9(6)V9(2)
COMP-3.
+24\
SALDO CUENTAS PEND
62 +25
6 ORDBAL
PIC S9(6)V9(2)
COMP-3.
+26\
CANTIDAD C/C EN ARCH. PEDIDOS
63 +27
6 LSTAMT
PIC S9(6)V9(2)
COMP-3.
+28\
ULTIMA CANTIDAD PAGADA EN C/C
64 +29
6 LSTDAT
PIC S9(6)
COMP-3.
+3\
ULTIMA FECHA PAGADA EN C/C
65 +31
6 CRDLMT
PIC S9(6)V9(2)
COMP-3.
+32\
LMITE CRDITO CLIENTE
66 +33
6 SLSYR
PIC S9(8)V9(2)
COMP-3.
+34\
VENTAS CLIENTE ESTE AO
67 +35
6 SLSLYR
PIC S9(8)V9(2)
COMP-3.
+36\
VENTAS CLIENTE AO PASADO
35
68 36 WORKING-STORAGE SECTION.
69 37 1 ONE
PIC 1 VALUE B"1".
7 38 1 CM-STATUS
PIC X(2).
71 39 1 WS-CONTROL.
72 4
2 WS-IND
PIC X(2).
73 41
2 WS-FORMAT
PIC X(1).
74 42 PROCEDURE DIVISION.
43 BEGIN.
75 44
OPEN I-O CUST-DISPLAY, INPUT CUST-MASTER.
76 45
MOVE ZERO TO IN99 OF CUSPMT-O.
46 LOOP.
77 47
WRITE DISP-REC FORMAT IS "CUSPMT".
78 48
READ CUST-DISPLAY RECORD.
79 49
IF IN15 OF CUSPMT-I
5
IS EQUAL TO ONE
8 51
THEN GO TO FINIS.
81 52
MOVE CUST OF CUSPMT-I TO CUST OF CUSMST.
82 53
READ CUST-MASTER RECORD.
83 54
IF CM-STATUS IS NOT EQUAL "" THEN
84 55
MOVE ONE TO IN99 OF CUSPMT-O, GO TO LOOP.
86 56
MOVE CORRESPONDING CUSMST TO CUSFLDS-O.
87 57
WRITE DISP-REC FORMAT IS "CUSFLDS".
88 58
READ CUST-DISPLAY RECORD.
89 59
IF IN15 OF CUSFLDS-I
6
IS EQUAL TO ONE
9 61
THEN GO TO FINIS.
91 62
MOVE ZERO TO IN99 OF CUSPMT-O.
92 63
GO TO LOOP.
64 FINIS.
93 65
CLOSE CUST-DISPLAY, CUST-MASTER.
66 RETURN-TO-CALLER.
94 67
EXIT PROGRAM.
\ \ \ \ \
F I N
D E
F U E N T E \ \ \ \ \
NOMCOPIA
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
FECH/CAM
Figura 70 (Parte 2 de 2). Listado Fuente de un Programa de Consulta TRANSACTION que Utiliza un Solo Dispositivo de Pantalla
214
La operacin WRITE en la instruccin 77 escribe el formato CUSPMT en la pantalla. Este registro solicita que el usuario entre un nmero de cliente. Si entra un
nmero de cliente y pulsa Intro, entonces la operacin READ lee el registro de
nuevo en el programa.
La operacin READ en la instruccin 82 utiliza el campo de nmero de cliente
(CUST) para recuperar el registro CUSMST correspondiente del archivo
CUSMSTP. Si no se encuentra ningn registro en el archivo CUSMSTP, el indicador 99 se activa. La operacin GO TO en la instruccin 84, que se ejecuta
cuando se activa el indicador 99, provoca que el programa se bifurque hacia el
comienzo. El mensaje:
Nmero cliente no hallado
se visualiza cuando se escribe el formato, porque est condicionado por el indicador 99 en las DDS para el archivo. Al recibir este mensaje, el teclado se
bloquea. Debe pulsar la tecla Reset en respuesta a ese mensaje para desbloquear el teclado. El usuario puede entonces entrar otro nmero de cliente.
Si la operacin READ recupera un registro del archivo CUSMSTP, la operacin
WRITE escribe el registro CUSFLDS en la estacin de trabajo de la pantalla. Este
registro contiene el nombre de cliente, la direccin y el saldo de cuentas por
cobrar.
Puede entonces pulsar Intro, y el programa se bifurca hacia el comienzo. Puede
introducir otro nmero de cliente o finalizar el programa. Para finalizar el programa, pulse F3, que activa el indicador 15 en el programa.
Cuando se activa el indicador 15, el programa cierra todos los archivos y procesa
la instruccin EXIT PROGRAM. El programa devuelve el control a la persona que
llam al programa COBOL.
Esta es la pantalla inicial grabada por la operacin WRITE en la instruccin 77:
________
215
216
GX21-9891-0
A S / 4 0 0 E S P E C I F I C A C I O N E S D E D E S C R I P C I O N D E D AT O S
International Business Machines
de Grabacin
A * *
10
12
13
14
15
16
17
P H Y S I CA L
18
19
20
21
22
23
24
25
OR DD T L P
26
27
28
29
No (N)
Indicador
Indicador
No (N)
11
Referencia (R)
Reservado
T i p o N o m b r e o E s p e c (/b / R / H / J / K / S / O )
Longitud
30
31
32
33
34
35
36
U t i l i z a c/i n ( b / O / I / B / H / M / N / P )
Nom bre
Descripcin
Pgina
de
Tecla
D ecimales
Nombre Condicin
Indicador
Secuencia
N mero d e
No (N)
Condicionamiento
Signo
Instrucciones
Fecha
Posiciones
Archivo
Programador
UM/050*
Impreso en Espaa
37
38
A R C H I VO
Ubicacin
Funciones
Lnea
39
DE
40
41
Pos
42
43
44
45
46
47
DE TAL L E
48
49
50
51
DE
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
P E D I DO
T E X T ( ' U B I C AC I ON
A L MA C E N ' )
A *
A
OR DD T L
T E X T ( ' R EG I S T RO
DE TAL L E
P E D I DO ' )
A *
A
CU S T
CH E CK ( MF )
OR D E R N
/0
L I N N UM
/0
CO L H D G ( ' C L I E N T E '
A *
A
CO L H D G ( ' P E D I D O '
A *
A
A
CO L H D G ( ' L I N E A '
T E X T ( ' N UM
' NO ' )
L I NEA
DE
L I NEA
EN
P E D I DO ' +
A *
A
I T EM
/0
/0
/ )
CH E CK ( M1 0
CO L H D G ( ' I T E M '
Q T YOR D
CO L H D G ( ' C A N T I D A D '
T E X T ( ' CAN T I D AD
' P E D I DA ' )
P ED I DA ' )
A *
A
D E SCR P
3 /0
CO L H D G ( ' D E S C R I P C I ON
I T EM ' )
A *
A
P R I CE
0
/ )
CM P ( G T
CO L H D G ( ' P R E C I O ' )
T E X T ( ' PR EC I O
VENTA ' )
E D T CD E ( J )
E X T ENS
CO L H D G ( ' E X T E N S I ON ' )
T E X T ( ' CA L CU L O
Q T Y OR D ' )
I MP OR T E
DE
PR EC I O
X+
A *
A
W H S L OC
CH E CK ( MF )
CO L H D G ( ' B I N '
' NO . ' )
A *
A
OR DD A T
/0
CU S T Y P
/0
T E X T ( ' I N T R OD U C I D O
DE
A
A
E L
P E D I DO+
F E CHA ' )
R A NG E ( 1
5 )
CO L H D G ( ' C L I E N '
T E X T ( ' T I PO
3=B U S
' T I PO ' )
CL I EN T E
4=PV T
1 = GO B
2 = P L AN
5 =O T ' )
A *
A
S TA T E
CH E CK ( MF )
CO L H D G ( ' P R O V I NC I A ' )
A *
A *
A
AC T M T H
/0
CO L H D G ( ' M E S '
T E X T ( ' ME S
' CO N T ' )
CON T A B L E
DE
VEN TA ' )
A *
A
AC T Y R
/0
CO L H D G ( ' A O '
T E X T ( ' A O
OR D E R N
L I N N UM
' CO N T ' )
CON T A B L E
DE
VEN TA ' )
Figura 71 (Parte 1 de 3). Especificaciones de Descripcin de Datos para un Programa de Consulta de Pedidos
217
de Gra bacin
A* *
10
11
12
13
14
15
16
17
/
O R D I N QD
18
19
20
21
22
23
24
25
26
R E V I S I ON
R
27
28
29
DE
Indicador
No (N)
Indicador
No (N)
Indicador
9
Lo ngit ud
Referencia ( R)
Reservado
T i p o N o m b r e o E s p e c (/b / R / H / J / K / S / O )
N o mbr e
30
31
32
33
34
35
36
U t i l i z a c/i n ( b / O / I / B / H / M / N / P )
Nombre Condicin
D ecimales
Tipo de Formulario
Secuencia
No (N)
N mero de
Pg ina
37
38
P E D I DO
Funcione s
Lnea
39
40
41
Pos
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/0
1 /0
Q T Y OR D
/0
D E SCR P
/
30
1 /0
1 /0
1 4 T E X T ( ' D E S C R I P C I ON
P R I CE
1 /0
4 6 T E X T ( ' PR EC I O
E X T ENS
1 /0
5 6 E D T CD E ( J )
2 T E X T ( ' N UM E R O
A
A
S UBC T L 1
66
X ' )
S F LCL R
57
S F LDSP
L OC K
Q T Y OR D
ROL L UP ( 9 7
CA 1 2 ( 9 8
S E TOF F ( 5 7
' S U B A R C H I VO
S E TOF F ( 5 8
' D E S AC = V I S U .
B OR R A R
A
A
OR D E R N
5Y
/0 B
' CO N T I N U A R
' F I N
DE
P E D I DO
2 ' P E D I DO '
8 T E X T ( ' N UM E R O
79
80
P E D I DO
E R RMSG ( ' S I N
L I NEA
62
E R R M S G ( ' NO
CL I EN T E
4
OR D D A T
CU S T
/0
V I S UAL I Z . ' )
DE
P AN T A L L A ' )
S UBC T L 1
S E
P AR A
NO
E NCON T R AD O ' 6 1 )
P AR A
P E D I DO ' 4 7 )
E NCON T R O
E S T E
R EG I S T RO
P E D I DO '
7 T E X T ( ' I N T R OD U C I D O
P E D I DO
DE
2 ' CL I
9 T E X T ( ' N UM E R O
DE
CL I ENT E ' )
DE
CL I ENT E ' )
N AM E
25
1 6 T E X T ( ' N OM B R E
ADD R
20
1 6 T E X T ( ' D I R E CC I ON
DE
C I T Y
20
1 6 T E X T ( ' C I UD AD
CL I ENT E ' )
S TAT E
Z I P
O R D AM T
DE
1 6 T E X T ( ' P R OV I NC I A
3 1 T E X T ( ' C OD I GO
5 1 T E X T ( ' CA N T I D AD
4 4 ' P R OV I NC I A '
F E CHA ' )
# '
/0
DE
6 2 )
AC = +
P E D I DO ' )
E R R M S G ( ' N UM
47
DE
CL I E N T E ' )
CL I E N T E ' )
POS T AL ' )
TOTAL
DE L
P E D I DO
EN+
DO L A R E S ' )
A
S T S OR D
12
S T S OP N
12
A
A
C U S OR D
15
5 1
4 4 ' AB I E R TO '
5 1
4 4 ' P E D I DO
5 9 T E X T ( ' N UM E R O
PRA
A
S HP V I A
15
P R T DA T
A
/0
DE
DE
P E D I DO
4 4 ' ME D I O
5 9 T E X T ( ' I N S T R U CC I ON E S
4 4 ' F E CHA
5 7 T E X T ( ' I MP R E S O
2 9 ' F AC T U R A '
C OM
3 8 T E X T ( ' N UM E R O
DE
E NV I O ' )
I MP R E S O '
/0
7
7
6 4 ' ME S '
/0
6 8 T E X T ( ' ME S
7 2 ' A O '
AC T Y R
/0
7 7 T E X T ( ' A O
DE
E NV I O '
DE
I N V N UM
CL I EN T E '
CL I ENT E ' )
AC T M T H
78
E X I S T ENT E '
77
S U B A R C H I VO ' )
2 ' CON S U L T A
6 1
76
P R OG R AM A ' )
75
N4 5
74
DE +
AON 4 7
73
S F L E ND
OV E R L A Y
72
S F L P AG ( 1 4 )
57
71
S F L S I Z ( 57 )
70
S F L D S PC T L
69
I T EM ' )
V A L OR
58
68
P ED I DA ' )
T E X T ( ' CA L CU L O
N5 8
67
S F LCT L ( S UB 1 )
65
VENTA ' )
P E D I DO
64
AR T I CU L O ' )
9 T E X T ( ' CA N T I D AD
A
R
63
S F L
62
E X I S T ENT E
S UB 1
I T EM
de
Ub icacin
Impreso en Espaa
Descripcin
Tecla
Fec ha
Condicionamiento
Signo
Instrucciones
Posiciones
Ar c hiv o
Programador
GX21-9891-0 UM/050*
P E D I DO
DE
DE
F ECHA ' )
F AC T U R A ' )
CON T A B L E
DE
VENTA ' )
CON T A B L E
DE
VENTA ' )
2 ' I T EM '
1 4 ' D E S C R I P C I ON
4 6 ' PR EC I O '
5 5 ' CA L CU L O '
I T EM '
Figura 71 (Parte 2 de 3). Especificaciones de Descripcin de Datos para un Programa de Consulta de Pedidos
218
A S /4 00 E S P E CI FIC AC IO N E S D E DE S CR IP C IO N D E D ATO S
International Business Machines
A* *
A
10
11
12
13
14
15
16
17
F I S I CO
18
19
20
21
22
23
24
25
OR D HD R P
R
26
27
28
29
30
31
32
33
34
No (N)
Indicador
No (N)
Indicador
Indicador
9
Longitud
Referencia (R)
Reservado
T i p o N o m b r e o E s p e c (/b / R / H / J / K / S / O )
N om b re
35
36
37
38
A R C H I VO
OR D HD R
CU S T
OR D E R N
OR DD A T
C U S OR D
15
Funciones
Lnea
39
DE
40
41
Pos
42
43
44
45
46
47
48
49
CAB E C E R A
50
51
52
DE
53
54
55
56
57
58
59
S HPV I A
15
OR D S T S
O P R N AM
1 /0
O R D AM T
/0 2
CU S T Y P
/0 /0
/0 /0
/0 /0
/0 /0
T E X T ( ' N UM E R O
T E X T ( ' F E CHA
61
62
63
/0 /0
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
P E D I DO ' )
DE
CL I EN T E ' )
P E D I DO ' )
DE
P E D I DO
P E D I DO ' )
COM P R A
CL I EN T E ' )
T E X T ( ' E S T ADO
4RDY
5PR T
P E D I DO
DE
E NV I O ' )
1PCS
2CN T
3CHK +
6 P CK ' )
T E X T ( ' OP E R ADOR
65
DE
T E X T ( ' I N S T R U CC I ON E S
64
CA B E C E R A
I N T R OD U C C I O N
T E X T ( ' N UM E R O
DE
60
P E D I DO
T E X T ( ' N UM E R O
/0 /0
/0 /0
QU E
I N T R OD U J O
P ED ' )
A
A
T E X T ( ' I MP OR T E
EN
A
A
I N V N UM
P R T DA T
OP N S T S
TOT L I N
AC T M T H
AC T Y R
S TAT E
AM P A I D
P E D I DO+
CL I ENT E
4=PV T
T E X T ( ' E S T
1 = GO V
2 = S CH
5 =O T ' )
T E X T ( ' N UM E R O
T E X T ( ' F E CHA
2 =C E R R AR
DE
DOL AR E S ' )
T E X T ( ' T I PO
3=BUS
de
Ubicacin
T E X T ( ' R EG I S T RO
Pgina
Tecla
U t i l i z a c/i n ( b / O / I / B / H / M / N / P )
Nombre Co ndicin
Impreso en Espaa
Descripcin
D ecimales
And/Or/Coment. (A/O/*)
Secuencia
No (N)
N mero de
de Grabacin
Fecha
Condicionamiento
Signo
Instrucciones
Posiciones
Archivo
Programador
GX21-9891-0 UM/050*
*El nm e ro de hojas por rea de re lleno puede variar lige ram ente .
DE
F AC T U R A ' )
I MP R E S I ON
AP E R T UR A
DE
P ED I D
P E D I DO ' )
1 =AB R I R +
3 = C A NC E L A R ' )
/0 /0
/0 /0
/0 /0
T E X T ( ' TOTAL
I T EMS
L I NEA
DE
T E X T ( ' ME S
CON T A B L E
DE
VENTA ' )
P E D I DO ' )
T E X T ( ' A O
CON T A B L E
DE
VENTA ' )
/0 2
T E X T ( ' I MP OR T E
T E X T ( ' P R OV I NC I A ' )
TOTAL
P AG A D O ' )
OR D E R N
A
A
A
A
A
A
A
A
A
Figura 71 (Parte 3 de 3). Especificaciones de Descripcin de Datos para un Programa de Consulta de Pedidos
219
5763CB1 V3RM5
Listado Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN S NOMCOPIA
1 1 IDENTIFICATION DIVISION.
2 2 PROGRAM-ID.
XMPLE773.
3\
EJEMPLO PROG. DE CONSULTA DE PEDIDOS
3 4 AUTHOR.
PROGRAMMER NAME.
4 5 INSTALLATION. TORONTO COBOL DEVELOPMENT CENTRE.
5 6 DATE-WRITTEN. 12/22/88.
8 8 DATE-COMPILED. 5/24/94 13:29:54
.
7 8 ENVIRONMENT DIVISION.
8 9 CONFIGURATION SECTION.
9 1 SOURCE-COMPUTER. IBM-AS4.
1 11 OBJECT-COMPUTER. IBM-AS4.
11 12 INPUT-OUTPUT SECTION.
12 13 FILE-CONTROL.
13 14
SELECT ORDER-HEADER-FILE
14 15
ASSIGN TO DATABASE-ORDHDRP
15 16
ORGANIZATION IS INDEXED
16 17
ACCESS MODE IS RANDOM
17 18
RECORD KEY IS ORDERN OF ORDER-HEADER-RECORD.
18 19
SELECT ORDER-DETAIL-FILE
19 2
ASSIGN TO DATABASE-ORDDTLP
2 21
ORGANIZATION IS INDEXED
21 22
ACCESS IS DYNAMIC
22 23
RECORD KEY IS ORDER-DETAIL-RECORD-KEY.
23 24
SELECT CUSTOMER-MASTER-FILE
24 25
ASSIGN TO DATABASE-CUSMSTP
25 26
ORGANIZATION IS INDEXED
26 27
ACCESS IS RANDOM
27 28
RECORD KEY IS CUST OF CUSTOMER-MASTER-RECORD.
28 29
SELECT EXISTING-ORDER-DISPLAY-FILE
29 3
ASSIGN TO WORKSTATION-ORDINQD
3 31
ORGANIZATION IS TRANSACTION
31 32
ACCESS IS DYNAMIC
32 33
RELATIVE KEY IS SUBFILE-RECORD-NUMBER
33 34
FILE STATUS IS STATUS-CODE-ONE.
34 35 DATA DIVISION.
35 36 FILE SECTION.
36 37 FD ORDER-HEADER-FILE
37 38
LABEL RECORDS ARE STANDARD.
38 39 1 ORDER-HEADER-RECORD.
39 4
COPY DDS-ORDHDR OF ORDHDRP.
+1\
FORMATO E-S:ORDHDR
DESDE ORDHDRP DE BIBLIOTECA XMPLIB
ORDHDR
+2\
REGISTRO CABECERA PEDIDO
ORDHDR
+3\DEFINICIONES CLAVE PARA FORMATO DE REGISTRO ORDHDR
ORDHDR
+4\ NMERO
NOMBRE
RECUPERACIN TIPO
SECALT
ORDHDR
+5\
1
ORDERN
ASCENDENTE SIGNO
NO
ORDHDR
4 +6
5 ORDHDR.
ORDHDR
41 +7
6 CUST
PIC X(5).
ORDHDR
+8\
NMERO CLIENTE
ORDHDR
42 +9
6 ORDERN
PIC S9(5)
COMP-3.
ORDHDR
+1\
NMERO PEDIDO
ORDHDR
43 +11
6 ORDDAT
PIC S9(6)
COMP-3.
ORDHDR
+12\
SE ENTR FECHA PEDIDO
ORDHDR
44 +13
6 CUSORD
PIC X(15).
ORDHDR
+14\
NMERO PEDIDO COMPRA CLIENTE
ORDHDR
45 +15
6 SHPVIA
PIC X(15).
ORDHDR
+16\
INSTRUCCIONES ENVO
ORDHDR
46 +17
6 ORDSTS
PIC S9(1)
COMP-3.
ORDHDR
+18\
ESTADO PEDIDO 1PEND 2CONT 3COM 4LIS 5IMP 6ENP
ORDHDR
47 +19
6 OPRNAM
PIC X(1).
ORDHDR
+2\
NOMBRE OPERADOR QUE ENTR EL PEDIDO
ORDHDR
48 +21
6 ORDAMT
PIC S9(6)V9(2)
COMP-3.
ORDHDR
+22\
TOTAL SUMA PESETAS DEL PEDIDO
ORDHDR
49 +23
6 CUSTYP
PIC S9(1)
COMP-3.
ORDHDR
+24\
TIPO CLIENTE 1=GOB 2=PLA 3=NEG 4=FAB 5=OTR
ORDHDR
5 +25
6 INVNUM
PIC S9(5)
COMP-3.
ORDHDR
+26\
NMERO FACTURA
ORDHDR
51 +27
6 PRTDAT
PIC S9(6)
COMP-3.
ORDHDR
+28\
FECHA IMPRESIN PEDIDO
ORDHDR
52 +29
6 OPNSTS
PIC S9(1)
COMP-3.
ORDHDR
+3\
EST.PEDIDO ABIERTO 1=ABIERTO 2= CERRADO 3=CANCELAD.ORDHDR
53 +31
6 TOTLIN
PIC S9(3)
COMP-3.
ORDHDR
+32\
TOTAL LNEAS TEMS EN PEDIDO
ORDHDR
54 +33
6 ACTMTH
PIC S9(2)
COMP-3.
ORDHDR
+34\
MES CONTABLE DE VENTA
ORDHDR
55 +35
6 ACTYR
PIC S9(2)
COMP-3.
ORDHDR
+36\
AO CONTABLE DE VENTA
ORDHDR
220
FECH/CAM
1/25/94
3/22/94
3/22/94
1/25/94
1/25/94
1/25/94
3/1/94
1/25/94
1/25/94
1/25/94
1/25/94
1/25/94
1/25/94
1/25/94
3/21/94
1/25/94
1/26/94
1/26/94
1/25/94
3/21/94
1/25/94
1/25/94
1/27/94
1/25/94
1/25/94
1/25/94
1/25/94
1/26/94
1/25/94
3/23/94
1/25/94
1/25/94
1/25/94
1/25/94
1/25/94
1/25/94
1/25/94
1/25/94
1/25/94
3/21/94
5763CB1 V3RM5
Listado Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
56 +37
6 STATE
PIC X(2).
+38\
PROVINCIA
57 +39
6 AMPAID
PIC S9(6)V9(2)
COMP-3.
+4\
TOTAL SUMA PESETAS PAGADAS
41
58 42 FD ORDER-DETAIL-FILE
59 43
LABEL RECORDS ARE STANDARD.
6 44 1 ORDER-DETAIL-RECORD.
61 45
COPY DDS-ORDDTL OF ORDDTLP.
+1\
FORMATO E-S:ORDDTL
DESDE ORDDTLP DE BIBLIOTECA XMPLIB
+2\
REGISTRO DETALLE PEDIDO
+3\DEFINICIONES CLAVE PARA FORMATO DE REGISTRO ORDDTL
+4\ NMERO
NOMBRE
RECUPERACIN TIPO
SECALT
+5\
1
ORDERN
ASCENDENTE SIGNO
NO
+6\
2
LINNUM
ASCENDENTE SIGNO
NO
62 +7
5 ORDDTL.
63 +8
6 CUST
PIC X(5).
+9\
NMERO CLIENTE
64 +1
6 ORDERN
PIC S9(5)
COMP-3.
+11\
NMERO PEDIDO
65 +12
6 LINNUM
PIC S9(3)
COMP-3.
+13\
NMERO LNEA DE LNEA DE PEDIDO
66 +14
6 ITEM
PIC S9(5)
COMP-3.
+15\
NMERO TEM
67 +16
6 QTYORD
PIC S9(3)
COMP-3.
+17\
CANTIDAD PEDIDA
68 +18
6 DESCRP
PIC X(3).
+19\
DESCRIPCIN TEM
69 +2
6 PRICE
PIC S9(4)V9(2)
COMP-3.
+21\
PRECIO DE VENTA
7 +22
6 EXTENS
PIC S9(6)V9(2)
COMP-3.
+23\
VALOR CALCULADO: CANTIDAD PEDIDA X PRECIO
71 +24
6 WHSLOC
PIC X(3).
+25\
BIN NM.
72 +26
6 ORDDAT
PIC S9(6)
COMP-3.
+27\
SE ENTR FECHA PEDIDO
73 +28
6 CUSTYP
PIC S9(1)
COMP-3.
+29\
TIPO CLIENTE 1=GOB 2=PLA 3=NEG 4=FAB 5=OTR
74 +3
6 STATE
PIC X(2).
+31\
PROVINCIA
75 +32
6 ACTMTH
PIC S9(2)
COMP-3.
+33\
MES CONTABLE DE VENTA
76 +34
6 ACTYR
PIC S9(2)
COMP-3.
+35\
AO CONTABLE DE VENTA
77 46 66 ORDER-DETAIL-RECORD-KEY RENAMES ORDERN THRU LINNUM.
47
78 48 FD CUSTOMER-MASTER-FILE
79 49
LABEL RECORDS ARE STANDARD.
8 5 1 CUSTOMER-MASTER-RECORD.
81 51
COPY DDS-CUSMST OF CUSMSTP.
+1\
FORMATO E-S:CUSMST
DESDE CUSMSTP DE BIBLIOTECA XMPLIB
+2\
REGISTRO MAESTRO CLIENTES
+3\DEFINICIONES CLAVE PARA FORMATO DE REGISTRO CUSMST
+4\ NMERO
NOMBRE
RECUPERACIN TIPO
SECALT
+5\
1
CUST
ASCENDENTE
AN
NO
82 +6
5 CUSMST.
83 +7
6 CUST
PIC X(5).
+8\
NMERO CLIENTE
84 +9
6 NAME
PIC X(25).
+1\
NOMBRE CLIENTE
85 +11
6 ADDR
PIC X(2).
+12\
DIRECCIN CLIENTE
86 +13
6 CITY
PIC X(2).
+14\
CIUDAD CLIENTE
87 +15
6 STATE
PIC X(2).
+16\
PROVINCIA
88 +17
6 ZIP
PIC S9(5)
COMP-3.
+18\
CDIGO POSTAL
89 +19
6 SRHCOD
PIC X(6).
+2\
CDIGO BSQUEDA NMERO CLIENTE
9 +21
6 CUSTYP
PIC S9(1)
COMP-3.
+22\
TIPO CLIENTE 1=GOB 2=PLA 3=NEG 4=FAB 5=OTR
91 +23
6 ARBAL
PIC S9(6)V9(2)
COMP-3.
+24\
SALDO CUENTAS PEND.
92 +25
6 ORDBAL
PIC S9(6)V9(2)
COMP-3.
NOMCOPIA
ORDHDR
ORDHDR
ORDHDR
ORDHDR
FECH/CAM
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
ORDDTL
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
221
5763CB1 V3RM5
Listado Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
+26\
CANTIDAD C/C EN ARCH. PEDIDOS
93 +27
6 LSTAMT
PIC S9(6)V9(2)
COMP-3.
+28\
ULTIMA CANTIDAD PAGADA EN C/C
94 +29
6 LSTDAT
PIC S9(6)
COMP-3.
+3\
ULTIMA FECHA PAGADA EN C/C
95 +31
6 CRDLMT
PIC S9(6)V9(2)
COMP-3.
+32\
LMITE CRDITO CLIENTE
96 +33
6 SLSYR
PIC S9(8)V9(2)
COMP-3.
+34\
VENTAS CLIENTE ESTE AO
97 +35
6 SLSLYR
PIC S9(8)V9(2)
COMP-3.
+36\
VENTAS CLIENTE AO PASADO
52
98 53 FD EXISTING-ORDER-DISPLAY-FILE
99 54
LABEL RECORDS ARE OMITTED.
1 55 1 EXISTING-ORDER-DISPLAY-RECORD.
11 56
COPY DDS-ALL-FORMATS OF ORDINQD.
12 +1
5 ORDINQD-RECORD PIC X(171).
+2\
FORMATO E-S:SUB1 DESDE ARCHIVO ORDINQD
DE BIBLIOTECA XMPLIB
+3\
13 +4
5 SUB1
REDEFINES ORDINQD-RECORD.
14 +5
6 ITEM
PIC S9(5).
+6\
NMERO TEM
15 +7
6 QTYORD
PIC S9(3).
+8\
CANTIDAD PEDIDA
16 +9
6 DESCRP
PIC X(3).
+1\
DESCRIPCIN TEM
17 +11
6 PRICE
PIC S9(4)V9(2).
+12\
PRECIO DE VENTA
18 +13
6 EXTENS
PIC S9(6)V9(2).
+14\
VALOR CALCULADO: CANTIDAD PEDIDA X PRECIO
+15\ FORMATO ENTRADA:SUBCTL1
DESDE ARCHIVO ORDINQD
DE BIBLIOTECA XMPLIB
+16\
19 +17
5 SUBCTL1-I
REDEFINES ORDINQD-RECORD.
11 +18
6 SUBCTL1-I-INDIC.
111 +19
7 IN97
PIC 1 INDIC 97.
+2\
CONTINUAR VISUALIZACIN
112 +21
7 IN98
PIC 1 INDIC 98.
+22\
FIN DE PROGRAMA
113 +23
7 IN57
PIC 1 INDIC 57.
+24\
VISUALIZAR SUBARCHIVO
114 +25
7 IN58
PIC 1 INDIC 58.
+26\
DESACTIVADO=VISUALIZAR SUBCTLQ ACTIVADO=BORRAR SUBARCHIVO
115 +27
7 IN61
PIC 1 INDIC 61.
+28\
NO ENCONTRADO NMERO PEDIDO
116 +29
7 IN47
PIC 1 INDIC 47.
+3\
NO HAY LNEA PARA ESTE PEDIDO
117 +31
7 IN62
PIC 1 INDIC 62.
+32\
NO HAY REGISTRO CLIENTE
118 +33
6 ORDERN
PIC S9(5).
+34\
NMERO PEDIDO
+35\FORMATO SALIDA:SUBCTL1
DESDE ARCHIVO ORDINQD
DE BIBLIOTECA XMPLIB
+36\
119 +37
5 SUBCTL1-O
REDEFINES ORDINQD-RECORD.
12 +38
6 SUBCTL1-O-INDIC.
121 +39
7 IN58
PIC 1 INDIC 58.
+4\
DESACTIVADO=VISUALIZAR SUBCTL1 ON=BORRAR SUBARCHIVO
122 +41
7 IN57
PIC 1 INDIC 57.
+42\
VISUALIZAR SUBARCHIVO
123 +43
7 IN45
PIC 1 INDIC 45.
124 +44
7 IN47
PIC 1 INDIC 47.
+45\
NO HAY LNEA PARA ESTE PEDIDO
125 +46
7 IN61
PIC 1 INDIC 61.
+47\
NO ENCONTRADO NMERO PEDIDO
126 +48
7 IN62
PIC 1 INDIC 62.
+49\
NO HAY REGISTRO CLIENTE
127 +5
6 ORDERN
PIC S9(5).
+51\
NMERO PEDIDO
128 +52
6 ORDDAT
PIC S9(6).
+53\
SE ENTR FECHA PEDIDO
129 +54
6 CUST
PIC X(5).
+55\
NMERO CLIENTE
13 +56
6 NAME
PIC X(25).
+57\
NOMBRE CLIENTE
131 +58
6 ADDR
PIC X(2).
+59\
DIRECCIN CLIENTE
132 +6
6 CITY
PIC X(2).
222
NOMCOPIA
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
FECH/CAM
5763CB1 V3RM5
Listado Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
+61\
CIUDAD CLIENTE
133 +62
6 STATE
PIC X(2).
+63\
PROVINCIA CLIENTE
134 +64
6 ZIP
PIC S9(5).
+65\
CDIGO POSTAL
135 +66
6 ORDAMT
PIC S9(6)V9(2).
+67\
IMPORTE TOTAL DEL PEDIDO
136 +68
6 STSORD
PIC X(12).
137 +69
6 STSOPN
PIC X(12).
138 +7
6 CUSORD
PIC X(15).
+71\
NMERO PEDIDO COMPRA CLIENTE
139 +72
6 SHPVIA
PIC X(15).
+73\
INSTRUCCIONES DE ENVO
14 +74
6 PRTDAT
PIC S9(6).
+75\
FECHA IMPRESIN PEDIDO
141 +76
6 INVNUM
PIC S9(5).
+77\
NMERO FACTURA
142 +78
6 ACTMTH
PIC S9(2).
+79\
MES CONTABLE DE VENTA
143 +8
6 ACTYR
PIC S9(2).
+81\
AO CONTABLE DE VENTA
57
144 58 WORKING-STORAGE SECTION.
145 59 1 EXISTING-ORDER-DISPLAY-KEY.
146 6
5 SUBFILE-RECORD-NUMBER
PIC 9(2)
147 61
VALUE ZERO.
62
148 63 1 ORDER-STATUS-COMMENT-VALUES.
149 64
5 FILLER
PIC X(12)
15 65
VALUE "1-IN PROCESS".
151 66
5 FILLER
PIC X(12)
152 67
VALUE "2-CONTINUED ".
153 68
5 FILLER
PIC X(12)
154 69
VALUE "3-CREDIT CHK".
155 7
5 FILLER
PIC X(12)
156 71
VALUE "4-READY PRT ".
157 72
5 FILLER
PIC X(12)
158 73
VALUE "5-PRINTED
".
159 74
5 FILLER
PIC X(12)
16 75
VALUE "6-PICKED
".
161 76
5 FILLER
PIC X(12)
162 77
VALUE "7-INVOICED ".
163 78
5 FILLER
PIC X(12)
164 79
VALUE "8-INVALID
".
165 8
5 FILLER
PIC X(12)
166 81
VALUE "9-CANCELED ".
82
167 83 1 ORDER-STATUS-COMMENT-TABLE
168 84
REDEFINES ORDER-STATUS-COMMENT-VALUES.
169 85
5 ORDER-STATUS OCCURS 9 TIMES.
17 86
1 ORDER-STATUS-COMMENT
PIC X(12).
87
171 88 1 OPEN-STATUS-COMMENT-VALUES.
172 89
5 FILLER
PIC X(12)
173 9
VALUE "1-OPEN
".
174 91
5 FILLER
PIC X(12)
175 92
VALUE "2-CLOSED
".
176 93
5 FILLER
PIC X(12)
177 94
VALUE "3-CANCELED ".
95
178 96 1 OPEN-STATUS-COMMENT-TABLE
179 97
REDEFINES OPEN-STATUS-COMMENT-VALUES.
18 98
5 OPEN-STATUS OCCURS 3 TIMES.
181 99
1 OPEN-STATUS-COMMENT
PIC X(12).
1
182 11 1 ERRHDL-PARAMETERS.
183 12
5 STATUS-CODE-ONE
PIC X(2).
184 13
88 SUBFILE-IS-FULL
VALUE "9M".
14
185 15 1 ERRPGM-PARAMETERS.
186 16
5 DISPLAY-PARAMETER
PIC X(8)
187 17
VALUE "ORD22D ".
188 18
5 DUMMY-ONE
PIC X(6)
189 19
VALUE SPACES.
19 11
5 DUMMY-TWO
PIC X(8)
191 111
VALUE SPACES.
NOMCOPIA
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
FECH/CAM
223
5763CB1 V3RM5
Listado Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
192 112
5 STATUS-CODE-TWO.
193 113
1 PRIMARY
PIC X(1).
194 114
1 SECONDARY
PIC X(1).
195 115
1 FILLER
PIC X(5)
196 116
VALUE SPACES.
117
197 118 1 SWITCH-AREA.
198 119
5 SW1
PIC 1.
199 12
88 NO-MORE-DETAIL-LINE-ITEMS
VALUE B"1".
2 121
88 MORE-DETAIL-LINE-ITEMS-EXIST
VALUE B"".
21 122
5 SW2
PIC 1.
22 123
88 WRITE-DISPLAY
VALUE B"1".
23 124
88 READ-DISPLAY
VALUE B"".
24 125
5 SW3
PIC 1.
25 126
88 SUBCTL1-FORMAT
VALUE B"1".
26 127
88 NOT-SUBCTL1-FORMAT
VALUE B"".
27 128
5 SW4
PIC 1.
28 129
88 SUB1-FORMAT
VALUE B"1".
29 13
88 NOT-SUB1-FORMAT
VALUE B"".
131
21 132 1 INDICATOR-AREA.
211 133
5 IN98
PIC 1 INDIC 98.
212 134
88 END-OF-EXISTING-ORDER-INQUIRY VALUE B"1".
213 135
5 IN97
PIC 1 INDIC 97.
214 136
88 CONTINUE-DETAIL-LINES-DISPLAY VALUE B"1".
215 137
5 IN62
PIC 1 INDIC 62.
216 138
88 CUSTOMER-NOT-FOUND
VALUE B"1".
217 139
88 CUSTOMER-EXIST
VALUE B"".
218 14
5 IN61
PIC 1 INDIC 61.
219 141
88 ORDER-NOT-FOUND
VALUE B"1".
22 142
88 ORDER-EXIST
VALUE B"".
221 143
5 IN58
PIC 1 INDIC 58.
222 144
88 CLEAR-SUBFILE
VALUE B"1".
223 145
88 DISPLAY-SUBFILE-CONTROL
VALUE B"".
224 146
5 IN57
PIC 1 INDIC 57.
225 147
88 DISPLAY-SUBFILE
VALUE B"1".
226 148
5 IN47
PIC 1 INDIC 47.
227 149
88 NO-DETAIL-LINES-FOR-ORDER
VALUE B"1".
228 15
88 DETAIL-LINES-FOR-ORDER-EXIST
VALUE B"".
229 151
5 IN45
PIC 1 INDIC 45.
23 152
88 END-OF-ORDER
VALUE B"1".
153
231 154 PROCEDURE DIVISION.
155
156 DECLARATIVES.
157 TRANSACTION-ERROR SECTION.
158
USE AFTER STANDARD ERROR PROCEDURE
159
EXISTING-ORDER-DISPLAY-FILE.
16 WORK-STATION-ERROR-HANDLER.
232 161
IF SUBFILE-IS-FULL THEN
162
NEXT SENTENCE
163
ELSE
233 164
DISPLAY "WORK-STATION ERROR"
STATUS-CODE-ONE.
165 END DECLARATIVES.
166
167 INQUIRY-INTO-EXISTING-ORDER SECTION.
168 MAINLINE-ROUTINE.
234 169
PERFORM SET-UP-ROUTINE.
235 17
PERFORM EXISTING-ORDER-INQUIRY
171
UNTIL END-OF-EXISTING-ORDER-INQUIRY.
236 172
PERFORM CLEAN-UP-ROUTINE.
173
174 SET-UP-ROUTINE.
237 175
OPEN INPUT ORDER-HEADER-FILE
176
ORDER-DETAIL-FILE
177
CUSTOMER-MASTER-FILE
178
I-O
EXISTING-ORDER-DISPLAY-FILE.
238 179
MOVE SPACES TO
CUST
OF SUBCTL1-O
18
NAME
OF SUBCTL1-O
181
ADDR
OF SUBCTL1-O
182
CITY
OF SUBCTL1-O
183
STATE OF SUBCTL1-O
184
STSORD OF SUBCTL1-O
185
STSOPN OF SUBCTL1-O
186
CUSORD OF SUBCTL1-O.
224
NOMCOPIA
FECH/CAM
5763CB1 V3RM5
Listado Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
239 187
MOVE ZEROS TO
ORDERN OF SUBCTL1-O
188
ORDDAT OF SUBCTL1-O
189
ZIP
OF SUBCTL1-O
19
ORDAMT OF SUBCTL1-O
191
PRTDAT OF SUBCTL1-O
192
INVNUM OF SUBCTL1-O
193
ACTMTH OF SUBCTL1-O
194
ACTYR OF SUBCTL1-O.
24 195
MOVE ALL B'' TO INDICATOR-AREA.
241 196
SET READ-DISPLAY
197
NOT-SUBCTL1-FORMAT
198
NOT-SUB1-FORMAT TO TRUE.
242 199
MOVE CORR INDICATOR-AREA TO SUBCTL1-O-INDIC.
243 2
WRITE EXISTING-ORDER-DISPLAY-RECORD FORMAT IS "SUBCTL1".
244 21
READ EXISTING-ORDER-DISPLAY-FILE RECORD.
245 22
MOVE CORR SUBCTL1-I-INDIC TO INDICATOR-AREA.
23
24 EXISTING-ORDER-INQUIRY.
246 25
IF CONTINUE-DETAIL-LINES-DISPLAY THEN
247 26
PERFORM READ-NEXT-ORDER-DETAIL-RECORD
248 27
IF MORE-DETAIL-LINE-ITEMS-EXIST THEN
249 28
IF ORDERN OF ORDER-DETAIL-RECORD IS NOT EQUAL TO
29
ORDERN OF ORDER-HEADER-RECORD THEN
25 21
SET DISPLAY-SUBFILE TO TRUE
251 211
SET NO-DETAIL-LINES-FOR-ORDER TO TRUE
212
ELSE
252 213
PERFORM SUBFILE-SET-UP
214
ELSE
253 215
SET DISPLAY-SUBFILE TO TRUE
254 216
SET NO-DETAIL-LINES-FOR-ORDER TO TRUE
217
ELSE
255 218
PERFORM ORDER-NUMBER-VALIDATION.
256 219
MOVE CORR INDICATOR-AREA TO SUBCTL1-O-INDIC.
257 22
SET WRITE-DISPLAY TO TRUE.
258 221
SET SUBCTL1-FORMAT TO TRUE.
259 222
WRITE EXISTING-ORDER-DISPLAY-RECORD FORMAT IS "SUBCTL1".
26 223
READ EXISTING-ORDER-DISPLAY-FILE RECORD.
261 224
MOVE CORR SUBCTL1-I-INDIC TO INDICATOR-AREA.
225 ORDER-NUMBER-VALIDATION.
262 226
PERFORM READ-ORDER-HEADER-FILE.
263 227
IF ORDER-EXIST THEN
264 228
PERFORM READ-CUSTOMER-MASTER-FILE
265 229
IF CUSTOMER-EXIST THEN
266 23
PERFORM READ-FIRST-ORDER-DETAIL-RECORD
267 231
IF DETAIL-LINES-FOR-ORDER-EXIST THEN
268 232
PERFORM SUBFILE-SET-UP
233
ELSE
234
NEXT SENTENCE
235
ELSE
236
NEXT SENTENCE
237
ELSE
238
NEXT SENTENCE.
239 READ-ORDER-HEADER-FILE.
269 24
MOVE ORDERN OF SUBCTL1-I OF EXISTING-ORDER-DISPLAY-RECORD
241
TO ORDERN OF ORDER-HEADER-RECORD.
27 242
READ ORDER-HEADER-FILE
271 243
INVALID KEY SET ORDER-NOT-FOUND TO TRUE.
244 READ-CUSTOMER-MASTER-FILE.
272 245
MOVE CUST OF ORDER-HEADER-RECORD
246
TO CUST OF CUSTOMER-MASTER-RECORD.
273 247
READ CUSTOMER-MASTER-FILE
274 248
INVALID KEY SET CUSTOMER-NOT-FOUND TO TRUE.
249 READ-FIRST-ORDER-DETAIL-RECORD.
275 25
MOVE ORDERN OF ORDER-HEADER-RECORD
251
TO ORDERN OF ORDER-DETAIL-RECORD.
276 252
MOVE 1 TO LINNUM OF ORDER-DETAIL-RECORD.
277 253
READ ORDER-DETAIL-FILE
278 254
INVALID KEY SET NO-DETAIL-LINES-FOR-ORDER TO TRUE.
255 SUBFILE-SET-UP.
279 256
SET CLEAR-SUBFILE TO TRUE.
28 257
MOVE CORR INDICATOR-AREA TO SUBCTL1-O-INDIC.
281 258
SET WRITE-DISPLAY TO TRUE.
282 259
SET SUBCTL1-FORMAT TO TRUE.
283 26
WRITE EXISTING-ORDER-DISPLAY-RECORD FORMAT IS "SUBCTL1".
284 261
SET DISPLAY-SUBFILE-CONTROL TO TRUE.
NOMCOPIA
FECH/CAM
225
5763CB1 V3RM5
Listado Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
285 262
PERFORM BUILD-DISPLAY-SUBFILE
263
UNTIL NO-MORE-DETAIL-LINE-ITEMS
264
OR SUBFILE-IS-FULL.
286 265
MOVE CORR ORDHDR OF ORDER-HEADER-RECORD
266
TO SUBCTL1-O OF EXISTING-ORDER-DISPLAY-RECORD.
287 267
MOVE CORR CUSMST OF CUSTOMER-MASTER-RECORD
268
TO SUBCTL1-O OF EXISTING-ORDER-DISPLAY-RECORD.
288 269
MOVE ORDER-STATUS(ORDSTS) TO STSORD.
289 27
MOVE OPEN-STATUS(OPNSTS) TO STSOPN.
29 271
SET MORE-DETAIL-LINE-ITEMS-EXIST TO TRUE.
291 272
MOVE ZEROS TO SUBFILE-RECORD-NUMBER.
273 BUILD-DISPLAY-SUBFILE.
292 274
MOVE CORR ORDDTL OF ORDER-DETAIL-RECORD
275
TO SUB1 OF EXISTING-ORDER-DISPLAY-RECORD.
293 276
SET WRITE-DISPLAY TO TRUE.
294 277
SET SUB1-FORMAT TO TRUE.
295 278
ADD 1 TO SUBFILE-RECORD-NUMBER.
296 279
WRITE SUBFILE EXISTING-ORDER-DISPLAY-RECORD FORMAT IS "SUB1".
297 28
IF SUBFILE-IS-FULL THEN
298 281
SET DISPLAY-SUBFILE TO TRUE
282
ELSE
299 283
PERFORM READ-NEXT-ORDER-DETAIL-RECORD
3 284
IF NO-MORE-DETAIL-LINE-ITEMS THEN
285
NEXT SENTENCE
286
ELSE
31 287
IF ORDERN OF ORDER-DETAIL-RECORD IS NOT EQUAL TO
288
ORDERN OF ORDER-HEADER-RECORD THEN
32 289
SET DISPLAY-SUBFILE TO TRUE
33 29
SET NO-MORE-DETAIL-LINE-ITEMS TO TRUE
291
ELSE
292
NEXT SENTENCE.
293 READ-NEXT-ORDER-DETAIL-RECORD.
34 294
READ ORDER-DETAIL-FILE NEXT RECORD
35 295
AT END SET DISPLAY-SUBFILE TO TRUE
36 296
SET NO-MORE-DETAIL-LINE-ITEMS TO TRUE.
297 CLEAN-UP-ROUTINE.
37 298
CLOSE
ORDER-HEADER-FILE
299
ORDER-DETAIL-FILE
3
CUSTOMER-MASTER-FILE
31
EXISTING-ORDER-DISPLAY-FILE.
38 32
STOP RUN.
\ \ \ \ \
F I N
D E
F U E N T E \ \ \ \ \
NOMCOPIA
FECH/CAM
Cant
Factura
Descripcin Item
Total
Estado
Abierto
Pedido cliente
Medio envo
Fecha Impreso
Mes
Precio
Ao
Clculo
Esta pantalla aparece si existen registros de detalle del pedido para el cliente cuyo
nmero de pedido se ha entrado en la primera pantalla:
226
Total 7426656
Estado
7-INVOICED
Abierto 2-CLOSED
Pedido cliente TESTCS179331I
Medio envo
TRUCKCO
Fecha impreso 82788
Mes 12 Ao 88
Precio Clculo
9115
273.45
15777
65.95
684
56.87
82
797.5
793
237.75
7178
77.35
44488
213.
Cant
Factura
Descripcin Item
Total
Estado
Abierto
Pedido cliente
Medio envo
Fecha Impreso
Mes
Precio
Ao
Clculo
227
G X 2 1 - 9 8 9 1 - 0
A S / 4 0 0 E S P E C I F I C A C I O N E S D E D E S C R I P C I O N D E D AT O S
International
Business
Machines
*El nm e ro
Signo
Archivo
de
de
Impreso
re lleno
Descripcin
puede
U M / 0 5 0 *
en
Espaa
Pgina
de
Instrucciones
de Grabacin
1 0
1 2
1 3
1 4
1 5
L OG I C O
1 8
1 9
2 0
2 1
2 2
2 3
2 4
2 5
OR D HD R L
R
OR D HD R
2 6
2 7
2 8
2 9
3 0
3 1
3 2
3 3
3 4
3 5
(b/O/I/B/H/M/N/P)
Referencia (R)
Reservado
Nombre
1 7
Longitud
(/b / R / H / J / K / S / O )
1 6
Tipo
No (N)
No (N)
1 1
Indicador
o
9
Indicador
Indicador
No (N)
8
A * *
A
Espec
(A/O/*)
7
N om b re
3 6
A R C H I VO
U t i l i z a c/i n
Nombre Co ndicin
D ecimales
And/Or/Coment.
Tipo
Secuencia
de Formula rio
Condicionamiento
N mero de
Tecla
Fecha
Posiciones
Programador
3 7
3 8
Ubicacin
Funciones
Lnea
3 9
D E
4 0
4 1
P os
4 2
4 3
4 4
4 5
4 6
4 7
P E D I DO S
4 8
4 9
5 0
D E
5 1
5 2
5 3
5 4
5 5
5 6
5 7
5 8
5 9
6 0
6 1
6 2
6 3
6 4
6 5
6 6
6 7
6 8
6 9
7 0
7 1
7 2
7 3
7 4
7 5
OR D HD R
P F I L E ( OR D HD R P )
A *
A
CU S T
I N V N UM
OR D E R N
OR DD A T
C U S OR D
S HP V I A
OR D S T S
O P R N AM
O R D AM T
CU S T Y P
P R T DA T
OP N S T S
T O T L
AC T M T H
I N
AC T Y R
S T A T E
AM P A I D
CU S T
I N V N UM
A
A
A
A
A
A
A
A
A
A
A
A
A
Figura 73 (Parte 1 de 3). Ejemplo de una Especificacin de Descripcin de Datos para un Programa de Actualizacin de Pagos
228
7 6
7 7
7 8
7 9
8 0
G X 2 1 - 9 8 9 1 - 0
A S / 4 0 0 E S P E C I F I C A C I O N E S D E D E S C R I P C I O N D E D AT O S
International
Business
Machines
*El nm e ro
Signo
Archivo
de
de
Impreso
re lleno
Descripcin
puede
U M / 0 5 0 *
en
Espaa
Pgina
de
Instrucciones
de Grabacin
1 0
A *
1 1
1 2
1 3
1 4
1 5
DD S
A *
Referencia (R)
Reservado
Nombre
1 7
1 8
1 9
2 0
P AR A
2 1
2 2
2 3
2 4
2 5
Longitud
2 6
2 7
2 8
A R C H I VO
AC T U A L I Z AC I ON
2 9
3 0
3 1
3 2
3 3
3 4
3 5
(b/O/I/B/H/M/N/P)
(/b / R / H / J / K / S / O )
1 6
Tipo
No (N)
Indicador
No (N)
Indicador
No (N)
Indicador
Espec
(A/O/*)
7
N om b re
3 6
U t i l i z a c/i n
Nombre Co ndicin
D ecimales
And/Or/Coment.
Tipo
Secuencia
de Formula rio
Condicionamiento
N mero de
Tecla
Fecha
Posiciones
Programador
3 7
3 8
Ubicacin
Funciones
Lnea
3 9
4 0
4 1
P A GO
4 3
4 4
4 5
4 6
4 7
4 8
4 9
5 0
5 1
5 2
5 3
5 4
5 5
5 6
5 7
5 8
5 9
6 0
6 1
6 2
6 3
6 4
6 5
6 6
6 7
6 8
6 9
7 0
7 1
7 2
7 3
7 4
7 5
7 6
7 7
7 8
7 9
8 0
P AN T A L /
L A/ P AY UPD T D
D I S P O S I T I VO
D E
P os
4 2
I N T E R AC T I VO
D E
CU E N T A S
P OR
CO B R A R
A *
A
S U B F I L E 1
S F L
T E X T (
' S U B ARCH
P AR A
P AGO
4 T E X T (
' AC E P T A R
P A GO '
' * NO '
D E
CL I E N T E '
A *
A
AC P P M T
4 A
VA L U E S (
5 1
N 5 1
' * Y E S '
D S P A T R ( R I
MD T )
D S P A T R ( ND
P R )
A *
A
CU S T
1 5 T E X T (
' N UM E R O
5 2
D S P A T R ( R I )
5 3
D S P A T R ( ND )
5 4
D S P A T R ( P R )
D E
CL I E N T E ' )
A *
A
AM P A I D
/
0 2 B
2 4 T E X T (
'
I MP OR T E
P AG A D O '
CH E CK ( F E )
AU T O ( R AB )
CM P ( G T
/0 )
5 2
D S P A T R ( R I )
5 3
D S P A T R ( ND )
5 4
D S P A T R ( P R )
A *
A
ECPMSG
3 1A
3 7 T E X T (
' ME N S A J E
5 2
D S P A T R ( R I )
5 3
D S P A T R ( ND )
5 4
D S P A T R ( P R )
D E
E X C E P C I ON ' )
A *
A
OV R P M T
8 Y
2O
7 /0 T E X T (
' P A GO
E X C E S I VO ' )
E D T CD E ( 1 )
5 5
D S P A T R ( B L )
N 5 6
D S P A T R ( ND )
A *
A
S T S CD E
1A
T E X T (
' COD I GO
E S T ADO ' )
Figura 73 (Parte 2 de 3). Ejemplo de una Especificacin de Descripcin de Datos para un Programa de Actualizacin de Pagos
229
G X 2 1 - 9 8 9 1 - 0
A S / 4 0 0 E S P E C I F I C A C I O N E S D E D E S C R I P C I O N D E D AT O S
International
Business
Machines
*El nmero
Signo
Archivo
Impreso
U M / 0 5 0 *
en
Espaa
Descripcin
Pgina
de
Instrucciones
de Grabacin
1 0
1 1
1 2
1 3
1 4
1 5
1 8
1 9
2 0
2 1
2 2
2 3
2 4
2 5
2 6
2 7
2 8
2 9
3 0
3 1
3 2
3 3
3 4
3 5
(b/O/I/B/H/M/N/P)
Referencia (R)
Reservado
Nombre
1 7
(/b / R / H / J / K / S / O )
16
Tipo
No (N)
Indicador
No (N)
Indicador
Espec
(A/O/*)
7
A *
Longitud
3 6
U t i l i z a c/i n
Nom bre
D ecimales
Indicador
de
2
And/Or/Coment.
Tipo
1
Nombre Condicin
No (N)
Secuencia
Formula rio
Condicionamiento
N mero d e
Tecla
Fecha
Posiciones
Programador
3 7
3 8
Ubicacin
Funciones
Lnea
3 9
4 0
4 1
CO N T R O L 1
P os
4 2
4 3
4 4
4 5
4 6
4 7
4 8
4 9
T E X T (
5 0
5 1
5 2
5 3
5 4
5 5
5 6
5 7
5 8
5 9
6 0
6 1
' S U B A R C H I VO
6 2
6 3
D E
S F L C T L ( S U B A R C H I VO 1 )
S F L S I Z ( 1 7 )
6 4
6 5
6 6
6 7
6 8
6 9
7 0
7 1
CO N T R O L
7 2
'
7 3
7 4
7 5
7 6
7 7
7 8
7 9
8 0
S F L P AG ( 1 7 )
6 1
S F L CL R
6 2
S F L D S P
6 2
S F L D S PC T L
OV E R L A Y
L OC K
A *
A
H E L P ( 9 9
' T ECL A
CA 1 2 ( 9 8
' F I N
CA 1 1 ( 9 7
'
D E
D E
A Y UDA ' )
AC T U A L I Z AC I ON
I GNOR A R
P A GO ' )
E N T R AD A ' )
A *
A
9 9
S F L MSG (
' F 1 1 - I GNOR A R
F 1 2
L I Z AC I ON
D E
P A GO '
E N T R
F I N
D E
NO
VA L I DA +
AC T U A +
A *
A
7 8 F E CHA
A
A
6 3
6 3
A
A
6 4
2 ' SOL I C I T UD
AC T U A L I Z
P A GO S
D E
CL I E N T E '
E D T CD E ( Y )
2 ' AC E P T A R '
2 ' P A GO '
1 4 ' CL I E N T E '
2 6 ' P A GO '
3 7 ' ME N S A J E
D E
E X C E P C I ON '
A *
A
M E S S AG E 1
T E X T (
' R EG I S T RO
OV E R L A Y
L OC K
D E
ME N S A J E '
A *
A
7 1
2 4
2 ' AC E P T A R
V A L OR E S
P A GO :
( * NO
* S I ) '
D S P A T R ( R I )
A
A
Figura 73 (Parte 3 de 3). Ejemplo de una Especificacin de Descripcin de Datos para un Programa de Actualizacin de Pagos
230
5763CB1 V3RM5
Listado Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN S NOMCOPIA
1 1 IDENTIFICATION DIVISION.
2 2 PROGRAM-ID. PAYUPDT.
3 3 ENVIRONMENT DIVISION.
4 4 CONFIGURATION SECTION.
5 5 SOURCE-COMPUTER. IBM-AS4.
6 6 OBJECT-COMPUTER. IBM-AS4.
7 7 INPUT-OUTPUT SECTION.
8 8 FILE-CONTROL.
9 9
SELECT CUSTOMER-INVOICE-FILE
1 1
ASSIGN TO DATABASE-ORDHDRL
11 11
ORGANIZATION IS INDEXED
12 12
ACCESS MODE IS SEQUENTIAL
13 13
RECORD KEY IS COMP-KEY
14 14
FILE STATUS IS STATUS-CODE-ONE.
15 15
SELECT CUSTOMER-MASTER-FILE
16 16
ASSIGN TO DATABASE-CUSMSTP
17 17
ORGANIZATION IS INDEXED
18 18
ACCESS IS RANDOM
19 19
RECORD KEY IS CUST OF CUSTOMER-MASTER-RECORD.
2 2
SELECT PAYMENT-UPDATE-DISPLAY-FILE
21 21
ASSIGN TO WORKSTATION-PAYUPDTD
22 22
ORGANIZATION IS TRANSACTION
23 23
ACCESS IS DYNAMIC
24 24
RELATIVE KEY IS REL-NUMBER
25 25
FILE STATUS IS STATUS-CODE-ONE
26 26
CONTROL-AREA IS WS-CONTROL.
27
27 28 DATA DIVISION.
28 29 FILE SECTION.
29 3 FD CUSTOMER-INVOICE-FILE
3 31
LABEL RECORDS ARE STANDARD.
31 32 1 CUSTOMER-INVOICE-RECORD.
32 33
COPY DDS-ORDHDR OF ORDHDRL.
+1\
FORMATO E-S:ORDHDR
DESDE ARCHIVO ORDHDRL
DE BIBLIOTECA XMPLIB
ORDHDR
+2\
ORDHDR
+3\DEFINICIONES CLAVE PARA FORMATO DE REGISTRO ORDHDR
ORDHDR
+4\ NMERO
NOMBRE
RECUPERACIN TIPO
SECALT
ORDHDR
+5\
1
CUST
ASCENDENTE
AN
NO
ORDHDR
+6\
2
INVNUM
ASCENDENTE
SIGNO
NO
ORDHDR
33 +7
5 ORDHDR.
ORDHDR
34 +8
6 CUST
PIC X(5).
ORDHDR
+9\
NMERO CLIENTE
ORDHDR
35 +1
6 INVNUM
PIC S9(5)
COMP-3.
ORDHDR
+11\
NMERO FACTURA
ORDHDR
36 +12
6 ORDERN
PIC S9(5)
COMP-3.
ORDHDR
+13\
NMERO PEDIDO
ORDHDR
37 +14
6 ORDDAT
PIC S9(6)
COMP-3.
ORDHDR
+15\
SE ENTR FECHA PEDIDO
ORDHDR
38 +16
6 CUSORD
PIC X(15).
ORDHDR
+17\
NMERO PEDIDO COMPRA CLIENTE
ORDHDR
39 +18
6 SHPVIA
PIC X(15).
ORDHDR
+19\
INSTRUCCIONES ENVO
ORDHDR
4 +2
6 ORDSTS
PIC S9(1)
COMP-3.
ORDHDR
+21\
ESTADO PEDIDO 1PEND 2CONT 3COM 4LIS 5IMP 6ENP
ORDHDR
41 +22
6 OPRNAM
PIC X(1).
ORDHDR
+23\
NOMBRE OPERADOR QUE ENTR EL PEDIDO
ORDHDR
42 +24
6 ORDAMT
PIC S9(6)V9(2)
COMP-3.
ORDHDR
+25\
TOTAL SUMA PESETAS DEL PEDIDO
ORDHDR
43 +26
6 CUSTYP
PIC S9(1)
COMP-3.
ORDHDR
+27\
TIPO CLIENTE 1=GOB 2=PLA 3=NEG 4=FAB 5=OTR
ORDHDR
44 +28
6 PRTDAT
PIC S9(6)
COMP-3.
ORDHDR
+29\
FECHA IMPRESIN PEDIDO
ORDHDR
45 +3
6 OPNSTS
PIC S9(1)
COMP-3.
ORDHDR
+31\
EST.PEDIDO ABIERTO 1=ABIERTO 2= CERRADO 3=CANCELAD.ORDHDR
46 +32
6 TOTLIN
PIC S9(3)
COMP-3.
ORDHDR
+33\
TOTAL LNEAS TEMS EN PEDIDO
ORDHDR
47 +34
6 ACTMTH
PIC S9(2)
COMP-3.
ORDHDR
+35\
MES CONTABLE DE VENTA
ORDHDR
48 +36
6 ACTYR
PIC S9(2)
COMP-3.
ORDHDR
+37\
AO CONTABLE DE VENTA
ORDHDR
49 +38
6 STATE
PIC X(2).
ORDHDR
+39\
PROVINCIA
ORDHDR
5 +4
6 AMPAID
PIC S9(6)V9(2)
COMP-3.
ORDHDR
+41\
TOTAL SUMA PESETAS PAGADAS
ORDHDR
51 34 66 COMP-KEY RENAMES CUST THRU INVNUM.
35
FECH/CAM
2/1/94
3/22/94
2/1/94
2/1/94
2/2/94
2/2/94
2/1/94
2/1/94
2/1/94
2/1/94
2/1/94
2/1/94
2/1/94
2/1/94
2/1/94
2/1/94
2/1/94
2/1/94
2/1/94
2/1/94
3/22/94
2/1/94
2/1/94
2/1/94
2/1/94
2/1/94
2/1/94
2/1/94
2/1/94
2/1/94
2/1/94
2/1/94
3/14/94
231
5763CB1 V3RM5
Listado Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN S
52 36 FD CUSTOMER-MASTER-FILE
53 37
LABEL RECORDS ARE STANDARD.
54 38 1 CUSTOMER-MASTER-RECORD.
55 39
COPY DDS-CUSMST OF CUSMSTP.
+1\
FORMATO E-S:CUSMST
DESDE CUSMSTP DE BIBLIOTECA XMPLIB
+2\
REGISTRO MAESTRO CLIENTES
+3\DEFINICIONES CLAVE PARA FORMATO DE REGISTRO CUSMST
+4\ NMERO
NOMBRE
RECUPERACIN TIPO
SECALT
+5\
1
CUST
ASCENDENTE
AN
NO
56 +6
5 CUSMST.
57 +7
6 CUST
PIC X(5).
+8\
NMERO CLIENTE
58 +9
6 NAME
PIC X(25).
+1\
NOMBRE CLIENTE
59 +11
6 ADDR
PIC X(2).
+12\
DIRECCIN CLIENTE
6 +13
6 CITY
PIC X(2).
+14\
CIUDAD CLIENTE
61 +15
6 STATE
PIC X(2).
+16\
PROVINCIA
62 +17
6 ZIP
PIC S9(5)
COMP-3.
+18\
CDIGO POSTAL
63 +19
6 SRHCOD
PIC X(6).
+2\
CDIGO BSQUEDA NMERO CLIENTE
64 +21
6 CUSTYP
PIC S9(1)
COMP-3.
+22\
TIPO CLIENTE 1=GOB 2=PLA 3=NEG 4=FAB 5=OTR
65 +23
6 ARBAL
PIC S9(6)V9(2)
COMP-3.
+24\
SALDO CUENTAS PEND.
66 +25
6 ORDBAL
PIC S9(6)V9(2)
COMP-3.
+26\
CANTIDAD C/C EN ARCH. PEDIDOS
67 +27
6 LSTAMT
PIC S9(6)V9(2)
COMP-3.
+28\
ULTIMA CANTIDAD PAGADA EN C/C
68 +29
6 LSTDAT
PIC S9(6)
COMP-3.
+3\
ULTIMA FECHA PAGADA EN C/C
69 +31
6 CRDLMT
PIC S9(6)V9(2)
COMP-3.
+32\
LMITE CRDITO CLIENTE
7 +33
6 SLSYR
PIC S9(8)V9(2)
COMP-3.
+34\
VENTAS CLIENTE ESTE AO
71 +35
6 SLSLYR
PIC S9(8)V9(2)
COMP-3.
+36\
VENTAS CLIENTE AO PASADO
4
72 41 FD PAYMENT-UPDATE-DISPLAY-FILE
73 42
LABEL RECORDS ARE OMITTED.
74 43 1 PAYMENT-UPDATE-DISPLAY-RECORD.
75 44
COPY DDS-ALL-FORMATS OF PAYUPDTD.
76 +1
5 PAYUPDTD-RECORD PIC X(59).
+2\ FORMATO ENTRADA:SUBFILE1
DESDE ARCHIVO PAYUPDTD
DE BIBLIOTECA XMPLIB
+3\
SUBARCHIVO PARA PAGOS CLIENTE
77 +4
5 SUBFILE1-I
REDEFINES PAYUPDTD-RECORD.
78 +5
6 ACPPMT
PIC X(4).
+6\
ACEPTAR PAGO
79 +7
6 CUST
PIC X(5).
+8\
CUSTOMER NUMBER
8 +9
6 AMPAID
PIC S9(6)V9(2).
+1\
CANTIDAD PAGADA
81 +11
6 ECPMSG
PIC X(31).
+12\
MENSAJE DE EXCEPCIN
82 +13
6 OVRPMT
PIC S9(6)V9(2).
+14\
PAGO EXCESIVO
83 +15
6 STSCDE
PIC X(1).
+16\
CDIGO DE ESTADO
+17\FORMATO SALIDA:SUBFILE1
DESDE ARCHIVO PAYUPDTD
DE BIBLIOTECA XMPLIB
+18\
SUBARCHIVO PARA PAGOS CLIENTE
84 +19
5 SUBFILE1-O
REDEFINES PAYUPDTD-RECORD.
85 +2
6 SUBFILE1-O-INDIC.
86 +21
7 IN51
PIC 1 INDIC 51.
87 +22
7 IN52
PIC 1 INDIC 52.
88 +23
7 IN53
PIC 1 INDIC 53.
89 +24
7 IN54
PIC 1 INDIC 54.
9 +25
7 IN55
PIC 1 INDIC 55.
91 +26
7 IN56
PIC 1 INDIC 56.
92 +27
6 CUST
PIC X(5).
+28\
NMERO CLIENTE
93 +29
6 AMPAID
PIC S9(6)V9(2).
+3\
CANTIDAD PAGADA
94 +31
6 ECPMSG
PIC X(31).
+32\
MENSAJE DE EXCEPCIN
NOMCOPIA
FECH/CAM
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
CUSMST
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
232
5763CB1 V3RM5
Listado Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN S
95 +33
6 OVRPMT
PIC S9(6)V9(2).
+34\
PAGO EXCESIVO
96 +35
6 STSCDE
PIC X(1).
+36\
CDIGO DE ESTADO
+37\ FORMATO ENTRADA:CONTROL1
DESDE ARCHIVO PAYUPDTD
DE BIBLIOTECA XMPLIB
+38\
CONTROL SUBARCHIVO
97 +39
5 CONTROL1-I
REDEFINES PAYUPDTD-RECORD.
98 +4
6 CONTROL1-I-INDIC.
99 +41
7 IN99
PIC 1 INDIC 99.
+42\
TECLA AYUDA
1 +43
7 IN98
PIC 1 INDIC 98.
+44\
FIN ACTUALIZACIN PAGOS
11 +45
7 IN97
PIC 1 INDIC 97.
+46\
IGNORAR ENTRADA
+47\FORMATO SALIDA:CONTROL1
DESDE ARCHIVO PAYUPDTD
DE BIBLIOTECA XMPLIB
+48\
CONTROL SUBARCHIVO
12 +49
5 CONTROL1-O
REDEFINES PAYUPDTD-RECORD.
13 +5
6 CONTROL1-O-INDIC.
14 +51
7 IN61
PIC 1 INDIC 61.
15 +52
7 IN62
PIC 1 INDIC 62.
16 +53
7 IN99
PIC 1 INDIC 99.
+54\
TECLA AYUDA
17 +55
7 IN63
PIC 1 INDIC 63.
18 +56
7 IN64
PIC 1 INDIC 64.
+57\ FORMATO ENTRADA:MESSAGE1
DESDE ARCHIVO PAYUPDTD
DE BIBLIOTECA XMPLIB
+58\
REGISTRO MENSAJES
+59\
5 MESSAGE1-I
REDEFINES PAYUPDTD-RECORD.
+6\FORMATO SALIDA:MESSAGE1
DESDE ARCHIVO PAYUPDTD
DE BIBLIOTECA XMPLIB
+61\
REGISTRO MENSAJES
19 +62
5 MESSAGE1-O
REDEFINES PAYUPDTD-RECORD.
11 +63
6 MESSAGE1-O-INDIC.
111 +64
7 IN71
PIC 1 INDIC 71.
45
112 46 WORKING-STORAGE SECTION.
47
113 48 1 REL-NUMBER
PIC 9(5)
114 49
VALUE ZEROS.
5
115 51 1 WS-CONTROL.
116 52
5 WS-IND
PIC X(2).
117 53
5 WS-FORMAT
PIC X(1).
118 54 1 SYSTEM-DATE.
119 55
5 SYSTEM-YEAR
PIC 99.
12 56
5 SYSTEM-MONTH
PIC 99.
121 57
5 SYSTEM-DAY
PIC 99.
122 58 1 PROGRAM-DATE.
123 59
5 PROGRAM-MONTH
PIC 99.
124 6
5 PROGRAM-DAY
PIC 99.
125 61
5 PROGRAM-YEAR
PIC 99.
126 62 1 FILE-DATE REDEFINES PROGRAM-DATE
127 63
PIC S9(6).
128 64 1 EXCEPTION-STATUS.
129 65
5 STATUS-CODE-ONE
PIC XX.
13 66
88 SUBFILE-IS-FULL
VALUE '9M'.
131 67 1 EXCEPTION-MESSAGES.
132 68
5 MESSAGE-ONE
PIC X(31)
133 69
VALUE 'CUSTOMER DOES NOT EXIST
'.
134 7
5 MESSAGE-TWO
PIC X(31)
135 71
VALUE 'NO INVOICES EXIST FOR CUSTOMER '.
136 72
5 MESSAGE-THREE
PIC X(31)
137 73
VALUE 'CUSTOMER HAS AN OVER PAYMENT OF'.
138 74 1 PROGRAM-VARIABLES.
139 75
5 AMOUNT-OWED
PIC S9(6)V99.
14 76
5 AMOUNT-PAID
PIC S9(6)V99.
141 77
5 INVOICE-BALANCE
PIC S9(6)V99.
142 78 1 ERRPGM-PARAMETERS.
143 79
5 DISPLAY-PARAMETER
PIC X(8)
144 8
VALUE 'PAYUPDTD'.
145 81
5 DUMMY-ONE
PIC X(6)
146 82
VALUE SPACES.
147 83
5 DUMMY-TWO
PIC X(6)
148 84
VALUE SPACES.
149 85
5 STATUS-CODE-TWO.
15 86
1 PRIMARY
PIC X(1).
151 87
1 SECONDARY
PIC X(1).
NOMCOPIA
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
FECH/CAM
233
5763CB1 V3RM5
Listado Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
152 88
1 FILLER
PIC X(5)
153 89
VALUE SPACES.
154 9
5 DUMMY-THREE
PIC X(1)
155 91
VALUE SPACES.
92
156 93 1 SWITCH-AREA.
157 94
5 SW1
PIC 1.
158 95
88 WRITE-DISPLAY
VALUE B'1'.
159 96
88 READ-DISPLAY
VALUE B''.
16 97
5 SW2
PIC 1.
161 98
88 SUBFILE1-FORMAT
VALUE B'1'.
162 99
88 NOT-SUBFILE1-FORMAT
VALUE B''.
163 1
5 SW3
PIC 1.
164 11
88 CONTROL1-FORMAT
VALUE B'1'.
165 12
88 NOT-CONTROL1-FORMAT
VALUE B'1'.
166 13
5 SW4
PIC 1.
167 14
88 NO-MORE-TRANSACTIONS-EXIST
VALUE B'1'.
168 15
88 TRANSACTIONS-EXIST
VALUE B''.
169 16
5 SW5
PIC 1.
17 17
88 CUSTOMER-NOT-FOUND
VALUE B'1'.
171 18
88 CUSTOMER-EXIST
VALUE B''.
172 19
5 SW6
PIC 1.
173 11
88 NO-MORE-INVOICES-EXIST
VALUE B'1'.
174 111
88 CUSTOMER-INVOICE-EXIST
VALUE B''.
175 112
5 SW7
PIC 1.
176 113
88 NO-MORE-PAYMENT-EXIST
VALUE B''.
177 114
88 PAYMENT-EXIST
VALUE B''.
178 115
5 SW8
PIC 1.
179 116
88 INPUT-ERRORS-EXIST
VALUE B'1'.
18 117
88 NO-INPUT-ERRORS-EXIST
VALUE B''.
181 118
5 SW9
PIC 1.
182 119
88 OVER-PAYMENT-DISPLAYED-ONCE
VALUE B'1'.
183 12
88 OVER-PAYMENT-NOT-DISPLAYED
VALUE B''.
121
184 122 1 INDICATOR-AREA.
185 123
5 IN99
PIC 1 INDIC 99.
186 124
88 HELP-IS-NEEDED
VALUE B'1'.
187 125
88 HELP-IS-NOT-NEEDED
VALUE B''.
188 126
5 IN98
PIC 1 INDIC 98.
189 127
88 END-OF-PAYMENT-UPDATE
VALUE B'1'.
19 128
5 IN97
PIC 1 INDIC 97.
191 129
88 IGNORE-INPUT
VALUE B'1'.
192 13
5 IN51
PIC 1 INDIC 51.
193 131
88 DISPLAY-ACCEPT-PAYMENT
VALUE B'1'.
194 132
88 DO-NOT-DISPLAY-ACCEPT-PAYMENT VALUE B''.
195 133
5 IN52
PIC 1 INDIC 52.
196 134
88 REVERSE-FIELD-IMAGE
VALUE B'1'.
197 135
88 DO-NOT-REVERSE-FIELD-IMAGE
VALUE B''.
198 136
5 IN53
PIC 1 INDIC 53.
199 137
88 DO-NOT-DISPLAY-FIELD
VALUE B'1'.
2 138
88 DISPLAY-FIELD
VALUE B''.
21 139
5 IN54
PIC 1 INDIC 54.
22 14
88 PROTECT-INPUT-FIELD
VALUE B'1'.
23 141
88 DO-NOT-PROTECT-INPUT-FIELD
VALUE B''.
24 142
5 IN55
PIC 1 INDIC 55.
25 143
88 MAKE-FIELD-BLINK
VALUE B'1'.
26 144
88 DO-NOT-MAKE-FIELD-BLINK
VALUE B''.
27 145
5 IN56
PIC 1 INDIC 56.
28 146
88 DISPLAY-OVER-PAYMENT
VALUE B'1'.
29 147
88 DO-NOT-DISPLAY-OVER-PAYMENT
VALUE B''.
21 148
5 IN61
PIC 1 INDIC 61.
211 149
88 CLEAR-SUBFILE
VALUE B'1'.
212 15
88 DO-NOT-CLEAR-SUBFILE
VALUE B''.
213 151
5 IN62
PIC 1 INDIC 62.
214 152
88 DISPLAY-SCREEN
VALUE B'1'.
215 153
88 DO-NOT-DISPLAY-SCREEN
VALUE B''.
216 154
5 IN63
PIC 1 INDIC 63.
217 155
88 DISPLAY-ACCEPT-HEADING
VALUE B'1'.
218 156
88 DO-NOT-DISPLAY-ACCEPT-HEADING VALUE B''.
219 157
5 IN64
PIC 1 INDIC 64.
22 158
88 DISPLAY-EXCEPTION
VALUE B'1'.
221 159
88 DO-NOT-DISPLAY-EXCEPTION
VALUE B''.
222 16
5 IN71
PIC 1 INDIC 71.
223 161
88 DISPLAY-ACCEPT-MESSAGE
VALUE B'1'.
224 162
88 DO-NOT-DISPLAY-ACCEPT-MESSAGE VALUE B''.
163
NOMCOPIA
FECH/CAM
234
5763CB1 V3RM5
Listado Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
225 164 PROCEDURE DIVISION.
165
166 DECLARATIVES.
167
168 TRANSACTION-ERROR SECTION.
169
USE AFTER STANDARD ERROR PROCEDURE
17
PAYMENT-UPDATE-DISPLAY-FILE.
171 WORK-STATION-ERROR-HANDLER.
226 172
IF SUBFILE-IS-FULL THEN
173
NEXT SENTENCE
174
ELSE
227 175
DISPLAY 'ERROR IN PAYMENT-UPDATE' STATUS-CODE-ONE.
176 END DECLARATIVES.
177
178 CUSTOMER-PAYMENT-UPDATE SECTION.
179 MAINLINE-ROUTINE.
228 18
PERFORM SET-UP-ROUTINE.
229 181
PERFORM PROCESS-TRANSACTION-FILE
182
UNTIL END-OF-PAYMENT-UPDATE.
23 183
PERFORM CLEAN-UP-ROUTINE.
184
185 SET-UP-ROUTINE.
231 186
OPEN I-O
CUSTOMER-INVOICE-FILE
187
CUSTOMER-MASTER-FILE
188
PAYMENT-UPDATE-DISPLAY-FILE.
232 189
MOVE ALL B'' TO INDICATOR-AREA
19
SWITCH-AREA.
233 191
ACCEPT SYSTEM-DATE FROM DATE.
234 192
MOVE SYSTEM-YEAR TO PROGRAM-YEAR.
235 193
MOVE SYSTEM-MONTH TO PROGRAM-MONTH.
236 194
MOVE SYSTEM-DATE TO PROGRAM-DAY.
237 195
SET WRITE-DISPLAY
196
CONTROL1-FORMAT
197
DO-NOT-DISPLAY-OVER-PAYMENT
198
DO-NOT-PROTECT-INPUT-FIELD
199
DO-NOT-REVERSE-FIELD-IMAGE
2
DO-NOT-MAKE-FIELD-BLINK
21
CLEAR-SUBFILE TO TRUE.
238 22
MOVE CORR INDICATOR-AREA TO CONTROL1-O-INDIC.
239 23
WRITE PAYMENT-UPDATE-DISPLAY-RECORD
24
FORMAT IS 'CONTROL1'.
24 25
SET DO-NOT-CLEAR-SUBFILE TO TRUE.
241 26
PERFORM INITIALIZE-SUBFILE-RECORD 17 TIMES.
242 27
SET DISPLAY-SCREEN TO TRUE.
243 28
MOVE CORR INDICATOR-AREA TO CONTROL1-O-INDIC.
244 29
WRITE PAYMENT-UPDATE-DISPLAY-RECORD
21
FORMAT IS 'CONTROL1'.
245 211
READ PAYMENT-UPDATE-DISPLAY-FILE RECORD
212
FORMAT IS 'CONTROL1'.
246 213
MOVE CORR CONTROL1-I-INDIC TO INDICATOR-AREA.
214 PROCESS-TRANSACTION-FILE.
247 215
IF HELP-IS-NOT-NEEDED THEN
248 216
IF IGNORE-INPUT THEN
249 217
SET WRITE-DISPLAY
218
CONTROL1-FORMAT
219
CLEAR-SUBFILE
22
DISPLAY-FIELD
221
DO-NOT-DISPLAY-OVER-PAYMENT
222
DO-NOT-PROTECT-INPUT-FIELD
223
DO-NOT-REVERSE-FIELD-IMAGE
224
DO-NOT-DISPLAY-ACCEPT-PAYMENT
225
DO-NOT-DISPLAY-ACCEPT-HEADING
226
DO-NOT-DISPLAY-ACCEPT-MESSAGE
227
DO-NOT-MAKE-FIELD-BLINK TO TRUE
25 228
MOVE CORR INDICATOR-AREA TO CONTROL1-O-INDIC
251 229
WRITE PAYMENT-UPDATE-DISPLAY-RECORD
23
FORMAT IS 'CONTROL1'
252 231
SET DO-NOT-CLEAR-SUBFILE TO TRUE
253 232
MOVE TO REL-NUMBER
254 233
PERFORM INITIALIZE-SUBFILE-RECORD 17 TIMES
234
ELSE
255 235
SET TRANSACTIONS-EXIST
236
DO-NOT-DISPLAY-ACCEPT-HEADING
237
DO-NOT-DISPLAY-ACCEPT-MESSAGE
238
DO-NOT-DISPLAY-EXCEPTION TO TRUE
256 239
PERFORM READ-MODIFIED-SUBFILE-RECORD
NOMCOPIA
FECH/CAM
235
5763CB1 V3RM5
Listado Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
257 24
PERFORM TRANSACTION-VALIDATION
241
UNTIL NO-MORE-TRANSACTIONS-EXIST
258 242
SET NO-INPUT-ERRORS-EXIST TO TRUE
259 243
PERFORM TEST-FOR-RECORD-INPUT-ERRORS
244
VARYING REL-NUMBER
245
FROM
1
246
BY
1
247
UNTIL
REL-NUMBER IS GREATER THAN 17
248
OR
INPUT-ERRORS-EXIST
26 249
IF NO-INPUT-ERRORS-EXIST THEN
261 25
IF OVER-PAYMENT-DISPLAYED-ONCE THEN
262 251
SET WRITE-DISPLAY
252
CONTROL1-FORMAT
253
DO-NOT-DISPLAY-OVER-PAYMENT
254
DO-NOT-PROTECT-INPUT-FIELD
255
DO-NOT-REVERSE-FIELD-IMAGE
256
DO-NOT-MAKE-FIELD-BLINK
257
DO-NOT-DISPLAY-ACCEPT-PAYMENT
258
DO-NOT-DISPLAY-ACCEPT-HEADING
259
DO-NOT-DISPLAY-ACCEPT-MESSAGE
26
DO-NOT-DISPLAY-EXCEPTION
261
CLEAR-SUBFILE
262
DISPLAY-FIELD
263
TO TRUE
263 264
MOVE CORR INDICATOR-AREA TO CONTROL1-O-INDIC
264 265
WRITE PAYMENT-UPDATE-DISPLAY-RECORD
266
FORMAT IS 'CONTROL1'
265 267
SET DO-NOT-CLEAR-SUBFILE TO TRUE
266 268
MOVE TO REL-NUMBER
267 269
PERFORM INITIALIZE-SUBFILE-RECORD 17 TIMES
27
ELSE
268 271
SET OVER-PAYMENT-DISPLAYED-ONCE TO TRUE
272
ELSE
273
NEXT SENTENCE
274
ELSE
275
NEXT SENTENCE.
269 276
SET WRITE-DISPLAY, DISPLAY-SCREEN TO TRUE.
27 277
MOVE CORR INDICATOR-AREA TO MESSAGE1-O-INDIC.
271 278
WRITE PAYMENT-UPDATE-DISPLAY-RECORD
279
FORMAT IS 'MESSAGE1'.
272 28
SET WRITE-DISPLAY, CONTROL1-FORMAT TO TRUE.
273 281
MOVE CORR INDICATOR-AREA TO CONTROL1-O-INDIC.
274 282
WRITE PAYMENT-UPDATE-DISPLAY-RECORD
283
FORMAT IS 'CONTROL1'.
275 284
READ PAYMENT-UPDATE-DISPLAY-FILE RECORD
285
FORMAT IS 'CONTROL1'.
276 286
MOVE CORR CONTROL1-I-INDIC TO INDICATOR-AREA.
287 READ-MODIFIED-SUBFILE-RECORD.
277 288
READ SUBFILE PAYMENT-UPDATE-DISPLAY-FILE
289
NEXT MODIFIED RECORD FORMAT IS 'SUBFILE1'
278 29
AT END SET NO-MORE-TRANSACTIONS-EXIST TO TRUE.
291 TEST-FOR-RECORD-INPUT-ERRORS.
279 292
READ SUBFILE PAYMENT-UPDATE-DISPLAY-FILE RECORD
293
FORMAT IS 'SUBFILE1'.
28 294
IF STSCDE OF SUBFILE1-I IS EQUAL TO '1' THEN
281 295
SET INPUT-ERRORS-EXIST TO TRUE
296
ELSE
297
NEXT SENTENCE.
298 TRANSACTION-VALIDATION.
282 299
MOVE CUST OF SUBFILE1-I OF PAYMENT-UPDATE-DISPLAY-RECORD
3
TO CUST OF CUSTOMER-MASTER-RECORD.
283 31
SET CUSTOMER-EXIST TO TRUE.
284 32
READ CUSTOMER-MASTER-FILE
285 33
INVALID KEY SET CUSTOMER-NOT-FOUND TO TRUE.
286 34
IF CUSTOMER-EXIST THEN
287 35
MOVE CUST OF CUSMST TO CUST OF ORDHDR
288 36
MOVE ZEROES TO INVNUM
289 37
SET CUSTOMER-INVOICE-EXIST TO TRUE
29 38
PERFORM START-ON-CUSTOMER-INVOICE-FILE
291 39
IF CUSTOMER-INVOICE-EXIST THEN
292 31
PERFORM READ-CUSTOMER-INVOICE-RECORD
293 311
IF CUSTOMER-INVOICE-EXIST THEN
294 312
PERFORM CUSTOMER-MASTER-FILE-UPDATE
295 313
MOVE AMPAID OF SUBFILE1-I TO AMOUNT-PAID
296 314
SET PAYMENT-EXIST TO TRUE
NOMCOPIA
FECH/CAM
236
5763CB1 V3RM5
Listado Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
297 315
PERFORM PAYMENT-UPDATE
316
UNTIL NO-MORE-INVOICES-EXIST
317
OR NO-MORE-PAYMENT-EXIST
298 318
IF ARBAL OF CUSTOMER-MASTER-RECORD IS NEGATIVE
299 319
SET MAKE-FIELD-BLINK
32
DISPLAY-FIELD
321
DO-NOT-REVERSE-FIELD-IMAGE
322
OVER-PAYMENT-NOT-DISPLAYED
323
DISPLAY-OVER-PAYMENT
324
DISPLAY-EXCEPTION
325
DO-NOT-DISPLAY-ACCEPT-PAYMENT
326
PROTECT-INPUT-FIELD TO TRUE
3 327
MOVE ARBAL TO OVRPMT OF SUBFILE1-O
31 328
MOVE MESSAGE-THREE TO ECPMSG OF SUBFILE1-O
32 329
MOVE '' TO STSCDE OF SUBFILE1-O
33 33
PERFORM REWRITE-DISPLAY-SUBFILE-RECORD
331
ELSE
34 332
SET DO-NOT-DISPLAY-FIELD
333
DO-NOT-DISPLAY-OVER-PAYMENT
334
DO-NOT-REVERSE-FIELD-IMAGE
335
DO-NOT-MAKE-FIELD-BLINK
336
DO-NOT-DISPLAY-ACCEPT-PAYMENT
337
PROTECT-INPUT-FIELD TO TRUE
35 338
MOVE SPACES TO ECPMSG OF SUBFILE1-O
36 339
MOVE ZEROES TO OVRPMT OF SUBFILE1-O
37 34
MOVE '' TO STSCDE OF SUBFILE1-O
38 341
PERFORM REWRITE-DISPLAY-SUBFILE-RECORD
342
ELSE
39 343
PERFORM NO-CUSTOMER-INVOICE-ROUTINE
344
ELSE
31 345
PERFORM NO-CUSTOMER-INVOICE-ROUTINE
346
ELSE
311 347
SET REVERSE-FIELD-IMAGE
348
DO-NOT-PROTECT-INPUT-FIELD
349
DISPLAY-FIELD
35
DO-NOT-DISPLAY-OVER-PAYMENT
351
DO-NOT-MAKE-FIELD-BLINK
352
DISPLAY-EXCEPTION
353
DO-NOT-DISPLAY-ACCEPT-PAYMENT
354
DO-NOT-PROTECT-INPUT-FIELD TO TRUE
312 355
MOVE ZEROES TO OVRPMT OF SUBFILE1-O
313 356
MOVE MESSAGE-ONE TO ECPMSG OF SUBFILE1-O
314 357
MOVE '1' TO STSCDE OF SUBFILE1-O
315 358
PERFORM REWRITE-DISPLAY-SUBFILE-RECORD.
316 359
PERFORM READ-MODIFIED-SUBFILE-RECORD.
36 START-ON-CUSTOMER-INVOICE-FILE.
317 361
START CUSTOMER-INVOICE-FILE
362
KEY IS GREATER THAN COMP-KEY
318 363
INVALID KEY SET NO-MORE-INVOICES-EXIST TO TRUE.
364 READ-CUSTOMER-INVOICE-RECORD.
319 365
READ CUSTOMER-INVOICE-FILE NEXT RECORD
32 366
AT END SET NO-MORE-INVOICES-EXIST TO TRUE.
321 367
IF CUST OF CUSTOMER-MASTER-RECORD
368
IS NOT EQUAL TO CUST OF CUSTOMER-INVOICE-RECORD THEN
322 369
SET NO-MORE-INVOICES-EXIST TO TRUE
37
ELSE
371
NEXT SENTENCE.
372 CUSTOMER-MASTER-FILE-UPDATE.
323 373
MOVE FILE-DATE TO LSTDAT OF CUSTOMER-MASTER-RECORD.
324 374
MOVE AMPAID OF SUBFILE1-I
375
TO LSTAMT OF CUSTOMER-MASTER-RECORD.
325 376
SUBTRACT AMPAID OF SUBFILE1-I
377
FROM ARBAL OF CUSTOMER-MASTER-RECORD.
326 378
REWRITE CUSTOMER-MASTER-RECORD.
379 REWRITE-DISPLAY-SUBFILE-RECORD.
327 38
MOVE AMPAID OF SUBFILE1-I TO AMPAID OF SUBFILE1-O.
328 381
MOVE CUST OF SUBFILE1-I TO CUST OF SUBFILE1-O.
329 382
SET WRITE-DISPLAY TO TRUE.
33 383
SET SUBFILE1-FORMAT TO TRUE.
331 384
MOVE CORR INDICATOR-AREA TO SUBFILE1-O-INDIC.
332 385
REWRITE SUBFILE PAYMENT-UPDATE-DISPLAY-RECORD
386
FORMAT IS 'SUBFILE1'.
387 NO-CUSTOMER-INVOICE-ROUTINE.
333 388
IF STSCDE OF SUBFILE1-I IS EQUAL TO '1' THEN
334 389
IF ACPPMT OF SUBFILE1-I IS EQUAL TO '\NO' THEN
335 39
SET DO-NOT-DISPLAY-FIELD
NOMCOPIA
FECH/CAM
237
5763CB1 V3RM5
Listado Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
391
DO-NOT-DISPLAY-OVER-PAYMENT
392
DO-NOT-REVERSE-FIELD-IMAGE
393
DO-NOT-MAKE-FIELD-BLINK
394
DO-NOT-DISPLAY-ACCEPT-PAYMENT
395
PROTECT-INPUT-FIELD
396
TO TRUE
336 397
MOVE SPACES TO ECPMSG OF SUBFILE1-O
337 398
MOVE ZEROES TO OVRPMT OF SUBFILE1-O
338 399
MOVE '' TO STSCDE OF SUBFILE1-O
339 4
PERFORM REWRITE-DISPLAY-SUBFILE-RECORD
41
ELSE
34 42
PERFORM CUSTOMER-MASTER-FILE-UPDATE
341 43
SET MAKE-FIELD-BLINK
44
DISPLAY-FIELD
45
DO-NOT-REVERSE-FIELD-IMAGE
46
OVER-PAYMENT-NOT-DISPLAYED
47
DISPLAY-OVER-PAYMENT
48
DISPLAY-EXCEPTION
49
DO-NOT-DISPLAY-ACCEPT-PAYMENT
41
PROTECT-INPUT-FIELD
411
TO TRUE
342 412
MOVE ARBAL TO OVRPMT OF SUBFILE1-O
343 413
MOVE MESSAGE-THREE TO ECPMSG OF SUBFILE1-O
344 414
MOVE '' TO STSCDE OF SUBFILE1-O
345 415
PERFORM REWRITE-DISPLAY-SUBFILE-RECORD
416
ELSE
346 417
SET REVERSE-FIELD-IMAGE
418
DISPLAY-FIELD
419
DO-NOT-PROTECT-INPUT-FIELD
42
DO-NOT-DISPLAY-OVER-PAYMENT
421
DISPLAY-EXCEPTION
422
DISPLAY-ACCEPT-PAYMENT
423
DISPLAY-ACCEPT-HEADING
424
DISPLAY-ACCEPT-MESSAGE
425
DO-NOT-MAKE-FIELD-BLINK
426
TO TRUE
347 427
MOVE ZEROS TO OVRPMT OF SUBFILE1-O
348 428
MOVE MESSAGE-TWO TO ECPMSG OF SUBFILE1-O
349 429
MOVE '1' TO STSCDE OF SUBFILE1-O
35 43
PERFORM REWRITE-DISPLAY-SUBFILE-RECORD.
431 PAYMENT-UPDATE.
351 432
SUBTRACT AMPAID OF CUSTOMER-INVOICE-RECORD
433
FROM ORDAMT OF CUSTOMER-INVOICE-RECORD
434
GIVING AMOUNT-OWED.
352 435
SUBTRACT AMOUNT-PAID
436
FROM AMOUNT-OWED
437
GIVING INVOICE-BALANCE.
353 438
IF INVOICE-BALANCE IS LESS THAN .1 THEN
354 439
MOVE 2 TO OPNSTS OF CUSTOMER-INVOICE-RECORD
355 44
MOVE ORDAMT OF CUSTOMER-INVOICE-RECORD
441
TO AMPAID OF CUSTOMER-INVOICE-RECORD
356 442
SUBTRACT AMOUNT-OWED
443
FROM AMOUNT-PAID
444
ELSE
357 445
ADD AMOUNT-PAID TO AMPAID OF CUSTOMER-INVOICE-RECORD
358 446
SET NO-MORE-PAYMENT-EXIST TO TRUE.
359 447
REWRITE CUSTOMER-INVOICE-RECORD.
36 448
IF NO-MORE-PAYMENT-EXIST THEN
449
NEXT SENTENCE
45
ELSE
361 451
PERFORM READ-CUSTOMER-INVOICE-RECORD.
452 INITIALIZE-SUBFILE-RECORD.
362 453
MOVE SPACES TO CUST OF SUBFILE1-O.
363 454
MOVE SPACES TO ECPMSG OF SUBFILE1-O.
364 455
MOVE '' TO STSCDE OF SUBFILE1-O.
365 456
MOVE ZEROS TO AMPAID OF SUBFILE1-O.
366 457
MOVE ZEROS TO OVRPMT OF SUBFILE1-O.
367 458
ADD 1 TO REL-NUMBER.
368 459
MOVE CORR INDICATOR-AREA TO SUBFILE1-O-INDIC.
369 46
WRITE SUBFILE PAYMENT-UPDATE-DISPLAY-RECORD
461
FORMAT IS 'SUBFILE1'.
462 CLEAN-UP-ROUTINE.
37 463
CLOSE CUSTOMER-INVOICE-FILE
464
CUSTOMER-MASTER-FILE
465
PAYMENT-UPDATE-DISPLAY-FILE.
371 466
STOP RUN.
\ \ \ \ \
F I N
D E
F U E N T E \ \ \ \ \
NOMCOPIA
FECH/CAM
238
Pago
______
______
______
______
______
______
______
______
______
______
__________
__________
__________
__________
__________
__________
__________
__________
__________
__________
______
______
______
______
______
__________
__________
__________
__________
__________
Fecha
5/24/94
Cliente
Pago
345
45
36
125
22799
419
11
495
133
569
2
3
25
2
45
75
5
25
35
4
Fecha
5/24/94
239
Cliente
Pago
Fecha
5/24/94
Mensaje de Excepcin
_____
45
_____
125
_____
419
11
75
5
_____
133
35
Fecha
Aceptar
Pago
Cliente
\NO
45
\YES
125
\NO
419
11
75
5
\NO
133
35
5/24/94
Mensaje de Excepcin
240
Cliente
Pago
125
11
Fecha
5/24/94
Mensaje de Excepcin
CLIENTE TIENE PAGO EXCESIVO DE
58.5
CLIENTE NO EXISTE
241
242
Clusula LINAGE
Cuando se especifica la clusula LINAGE para un archivo asignado a PRINTER,
todos los controles de espaciado y paginacin se manejan internamente por el
cdigo generado por el compilador.
La colocacin del papel slo se realiza cuando se ejecuta la primera instruccin
WRITE. El papel de la impresora se coloca en una nueva pgina fsica y
LINAGE-COUNTER se establece en 1. Cuando se comparte el archivo de impresora y otros programas poseen registros escritos en el archivo, la instruccin
COBOL WRITE an se considera la primera instruccin WRITE. El compilador
COBOL/400 maneja la colocacin del papel aunque no sea la primera instruccin
WRITE para ese archivo.
243
Todo el espaciado y la paginacin de las instrucciones WRITE se controla internamente. El tamao fsico de la pgina se ignora cuando la posicin del papel no
se define correctamente para el compilador COBOL/400. Para un archivo con una
clusula LINAGE y que est asignado a PRINTER, la paginacin incluye el espaciado hasta el final de la pgina lgica (cuerpo de la pgina) y en el espaciado
hasta los mrgenes inferiores y superiores.
La utilizacin de la clusula LINAGE degrada el rendimiento. La clusula LINAGE
slo debe utilizarse cuando sea necesaria. Si la paginacin fsica es aceptable, no
se necesita la clusula LINAGE.
La clasula LINAGE no debe utilizarse para los archivos asignados a
FORMATFILE.
Archivos FORMATFILE
Los archivos de impresora descritos externamente deben asignarse a un dispositivo de FORMATFILE. El trmino FORMATFILE se utiliza porque la frase
FORMAT es vlida en instrucciones WRITE para el archivo, y el formato de los
datos se especifica en las DDS para el archivo.
Cuando se ha especificado un dispositivo FORMATFILE, se puede obtener el
formato de la salida impresa de dos maneras:
1. Elija los formatos que han de imprimirse y en qu orden utilizando valores
apropiados en las frases FORMAT especificadas en las instrucciones WRITE.
Por ejemplo, utilice un formato una sola vez por pgina para producir un encabezamiento, y utilice otro formato para producir las lneas de detalle en la
pgina.
2. Elija las opciones apropiadas que han de tomarse cuando se imprime cada
formato estableciendo los valores de los indicadores y transfiriendo estos indicadores a la frase INDICATOR para la instruccin WRITE. Por ejemplo, los
campos pueden subrayarse, las lneas en blanco pueden producirse antes o
despus de imprimir el formato o puede saltarse la impresin de ciertos
campos.
El uso de descripciones externas para archivos de impresora disfruta de las
siguientes ventajas con respecto a las descripciones de programa:
Pueden imprimirse varias lneas mediante una instruccin WRITE. Cuando
una instruccin WRITE escribe varias lneas y se alcanza la condicin
END-OF-PAGE, la instruccin imperativa END-OF-PAGE se procesa cuando
se han imprimido todas las lneas. Es posible imprimir lneas en el rea de
desbordamiento, y en la pgina siguiente antes de que se procese la instruccin imperativa END-OF-PAGE.
La Figura 75 en la pgina 245 muestra un ejemplo de una aparicin de la condicin END-OF-PAGE en FORMATFILE.
Se pueden imprimir opcionalmente campos basndose en valores del indicador.
La edicin de los valores de campos se define fcilmente.
Es ms fcil el mantenimiento de formatos de impresin, especialmente los utilizados por mltiples programas.
244
NOMCOPIA
FECH/CAM
2/1/94
3/22/94
1/27/94
1/27/94
2/4/94
3/1/94
1/27/94
1/27/94
1/27/94
1/27/94
1/27/94
1/27/94
2/4/94
2/4/94
2/4/94
2/4/94
2/4/94
2/4/94
1/27/94
1/27/94
2/4/94
2/4/94
2/4/94
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
245
5763CB1 V3RM5
Fuente COBOL AS/4
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
56 +1
5 PERSREPT-RECORD.
+2\ FORMATO SALIDA:HEADING
DESDE ARCHIVO PERSREPT
DE BIBLIOT. XMPLIB
+3\
+4\
6 HEADING-O-INDIC.
+5\ FORMATO SALIDA:DETAIL
DESDE ARCHIVO PERSREPT
DE BIBLIOT. XMPLIB
+6\
57 +7
6 DETAIL-O-INDIC.
58 +8
7 IN1
PIC 1 INDIC 1.
34
59 35 77 EOF-FLAG
PIC X(1)
6 36
VALUE "".
61 37
88 NOT-END-OF-FILE
VALUE "".
62 38
88 END-OF-FILE
VALUE "1".
63 39 77 MARRIED
PIC X(1)
64 4
VALUE "M".
41
65 42 PROCEDURE DIVISION.
43 FIRST-SECT SECTION.
44 FIRST-PARA.
66 45
OPEN INPUT PERSFILE
46
OUTPUT PERSREPT.
67 47
PERFORM HEADING-LINE.
68 48
PERFORM PROCESS-RECORD UNTIL END-OF-FILE.
69 49
CLOSE PERSFILE
5
PERSREPT.
7 51
STOP RUN.
52
53 PROCESS-RECORD.
71 54
READ PERSFILE AT END SET END-OF-FILE TO TRUE.
73 55
IF NOT-END-OF-FILE THEN
74 56
PERFORM PRINT-RECORD. .5/
57
58 PRINT-RECORD.
75 59
MOVE CORR PERSREC TO DETAIL-O. .6/
76 6
IF MARSTAT IN PERSFILE-REC IS EQUAL MARRIED THEN .7/
77 61
MOVE B"1" TO IN1 IN DETAIL-O-INDIC
62
ELSE
78 63
MOVE B"" TO IN1 IN DETAIL-O-INDIC.
79 64
WRITE PERSREPT-REC FORMAT IS "DETAIL" .8/
65
INDICATORS ARE DETAIL-O-INDIC
8 66
AT EOP PERFORM HEADING-LINE. .9/
67 HEADING-LINE.
81 68
MOVE HEAD-ORDER TO ORDERTYPE
82 69
WRITE PERSREPT-REC FORMAT IS "HEADING".
7
\ \ \ \ \
F I N
D E
F U E N T E
\ \ \ \ \
NOMCOPIA
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
FECH/CAM
246
.1/
.2/
.3/
Tenga en cuenta que, a pesar de que los campos del formato DETAIL se
imprimirn en tres lneas separadas, estn definidos en un registro.
.4/
.5/
.6/
.7/
.8/
.9/
A *
10
11
12
13
14
15
AR CH I VO
16
17
18
19
20
21
22
F I S I CO
23
24
25
26
27
DD S
28
29
30
31
P AR A
Descripcin
No (N)
Indicador
No (N)
Indicador
Indicador
9
Longitud
Referencia (R)
Nom bre
Reservado
T i p o N o m b r e o E s p e c (/b / R / H / J / K / S / O )
Nombre Condicin
Impreso en Espaa
Pgina
de
Tecla
32
33
34
35
36
U t i l i z a c/i n ( b / O / I / B / H / M / N / P )
de Grabacin
D ecimales
Secuencia
N mero d e
No (N)
Condicionamiento
Signo
Instrucciones
Fecha
Posiciones
Archivo
Programador
GX21-9891-0 UM/050*
*El nm ero de hojas por rea de re lleno puede variar lige ram ente.
37
38
Ubicacin
Funciones
Lnea
39
A R CH I VO
40
41
Pos
42
43
44
45
46
47
48
P E R S ONA L
49
50
51
E N
52
53
54
55
56
57
58
59
E J E MP L O
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
F OR MA T F I L E
A
A *
P E R S R EC
E MP L NO
N AM E
3 0
ADD R E S S 1
3 5
ADD R E S S 2
2 0
B I R T HDA T E
MA R S T A T
S P O U S E N AM E
A
A
N U MC H I L D
K
6 S
6
1
3 0
2 S
E MP L NO
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
Figura 76 (Parte 1 de 2). Ejemplo de DDS de la Utilizacin de Archivos de Impresora Descritos Externamente Asignados a un Dispositivo de FORMATFILE
247
80
G X 2 1 - 9 8 9 1 - 0
A S / 4 0 0 E S P E C I F I C A C I O N E S D E D E S C R I P C I O N D E D AT O S
Inter national
B usiness
Machines
*El
Archivo
Signo
nmero
de
hojas
por
rea
de
Impreso
relleno puede
Descripcin
variar
Pgina
U M / 0 5 0 *
en
Espaa
ligeramente.
de
Instrucciones
de Grabacin
10
1 1
1 2
1 3
1 4
1 5
A R C H I VO
1 8
1 9
2 0
2 1
2 2
2 3
2 4
2 5
2 6
I MP R E S OR A
2 7
2 8
2 9
D D S
Tipo
3 0
3 1
3 2
3 3
3 4
P A R A
3 5
(b/O /I/B/H/M/N/P)
Referencia (R)
Reservado
Nombre
1 7
Datos/Desplazamiento Teclado
(/b / R / H / J / K / S / O )
1 6
Tipo
No (N)
Indicador
No (N)
Indicador
Espec
(A/O/*)
7
A *
Longitud
3 6
U t i l i z a c/i n
Nom bre
D ecimales
Indicador
de
2
And/Or/Coment.
Tipo
1
Nombre Condicin
No (N)
Secuencia
Formula rio
Condicionamiento
N mero d e
Tecla
Fecha
Posiciones
Programador
3 7
3 8
Ubicacin
Funciones
Lnea
3 9
4 0
4 1
P o s
4 2
E J E MP L O
4 3
4 4
4 5
4 6
4 7
4 8
4 9
5 0
F O R MA T F
5 1
5 2
5 3
5 4
5 5
5 6
5 7
5 8
5 9
6 0
6 1
6 2
6 3
6 4
6 5
6 6
6 7
6 8
6 9
7 0
7 1
7 2
7 3
7 4
7 5
7 6
7 7
7 8
7 9
L E
A *
A
I ND A R A
H E AD I NG
1 5
A
3 3
OR D E R T Y P E
1 5
'
P E R S ON A L
S T A DO
'
'
I N E
P E D I DO
P O R
'
4 6
8 0 D A T E
9 3 T
1 1 5
L E )
S P AC E A ( 3 )
I P B ( 1 )
U ND E R L
R E F ( P E R S F
S K
E D T CD E ( Y )
I M E
' P AG I N A :
+ 1 P AGN B R
'
E D T CD E ( 3 )
A *
A
A *
I N E
D E T A I
S P AC E A ( 3 )
N AM E
E MP L NO
5 5
A
A
A *
I N E
I R T H D A T E
A D D R E S S 1
MA R S T A T
7 3
S P O U S E N AM E R
1 0 3
0 1
A *
A
8 7
I N E
'
'
F E C H A
D E
N AC I M I E N T O :
'
' D I R E CC I ON :
'
'
E S T AD O
C I V I
' N OM B R E
'
E S P O S A :
'
3
A D D R E S S 2
A
A
E MP L E A DO :
1 1
5 5
A
0 1
' N UM E R O
1 0 3 S P AC E A ( 1 )
'
I N E
7 3
8 7
' N OM B R E
1 1 U ND E R L
1 1 S P AC E B ( 1 )
5 5
N U MC H I
L D
' H I
J O S
'
7 3 E D T CD E ( 3 )
A
A
A
Figura 76 (Parte 2 de 2). Ejemplo de DDS de la Utilizacin de Archivos de Impresora Descritos Externamente Asignados a un Dispositivo de FORMATFILE
.1/
.2/
.3/
.4/
248
8 0
.5/
.6/
.7/
.8/
.9/
249
250
Caracterstica
Control
El mandato CL CRTPF
El mandato CL CRTPF
DDS
DDS
DDS
DDS
DDS
El mandato CL OVRDBF
251
Caracterstica
Control
DDS
252
Los tems contiguos son tems de grupo o elementales consecutivos en la Divisin de Datos que forman parte de una jerarqua de datos nica.
253
5763CB1 V3RM5
Fuente COBOL AS/4
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
7 7 FILE-CONTROL.
8 8
SELECT FILE-1 ASSIGN TO DISK-FILE1
9 9
ACCESS IS DYNAMIC RECORD KEY IS FULL-NAME IN FILE-1
1 1
ORGANIZATION IS INDEXED.
11 11 DATA DIVISION.
12 12 FILE SECTION.
13 13 FD FILE-1 LABEL RECORDS ARE STANDARD.
14 14 1 RECORD-DESCRIPTION.
15 15
3 FULL-NAME.
16 16
5 LAST-AND-FIRST-NAMES.
17 17
7 LAST-NAME
PIC X(2).
18 18
7 FIRST-NAME
PIC X(2).
19 19
5 MIDDLE-NAME
PIC X(2).
2 2
3 LAST-FIRST-MIDDLE-INITIAL-NAME REDEFINES FULL-NAME
21 21
PIC X(41).
22 22
3 REST-OF-RECORD
23/
23 24 PROCEDURE DIVISION.
25 START-PROGRAM.
24 26
OPEN INPUT FILE-1.
27\
28\ SITA EL ARCHIVO COMENZANDO CON REGISTROS QUE TENGAN EL APELLIDO
29\ "SMITH"
25 3
MOVE "SMITH" TO LAST-NAME.
26 31
START FILE-1 KEY IS EQUAL TO LAST-NAME
27 32
INVALID KEY DISPLAY "NO DATA IN SYSTEM FOR " LAST-NAME
28 33
GO-TO ERROR ROUTINE.
34\
35\
36\
37\
38\ SITA EL ARCHIVO COMENZANDO CON REGISTROS QUE TENGAN EL APELLIDO
39\ "SMITH" Y EL NOMBRE DE "ROBERT"
29 4
MOVE "SMITH" TO LAST-NAME.
3 41
MOVE "ROBERT" TO FIRST-NAME.
31 42
START FILE-1 KEY IS EQUAL TO LAST-AND-FIRST-NAMES
32 43
INVALID KEY DISPLAY "NO DATA IN SYSTEM FOR "
44
LAST-AND-FIRST-NAMES
33 45
GO-TO ERROR ROUTINE.
46\
47\
48\
49\
5\ SITA EL ARCHIVO COMENZANDO CON REGISTROS QUE TENGAN EL APELLIDO
51\ "SMITH", EL NOMBRE "ROBERT", Y LA INICIAL DEL SEGUNDO NOMBRE SEA "M"
34 52
MOVE "SMITH" TO LAST-NAME.
35 53
MOVE "ROBERT" TO FIRST-NAME.
36 54
MOVE "M" TO MIDDLE-NAME.
37 55
START FILE-1 KEY IS EQUAL TO LAST-AND-FIRST-MIDDLE-INITIAL-NAME
38 56
INVALID KEY DISPLAY "NO DATA IN SYSTEM FOR "
57
LAST-FIRST-MIDDLE-INITIAL-NAME
39 58
GO-TO ERROR ROUTINE.
59
6
61 ERROR-ROUTINE.
4 62
STOP-RUN.
NOMCOPIA
FECH/CAM
Figura 77. Instrucciones START que utilizan un archivo descrito por el programa
La Figura 78 y la Figura 79 muestran un ejemplo de instrucciones START genricas que utilizan un archivo descrito externamente.
254
FECH
Figura 78. Instrucciones START Genricas que Utilizan un archivo Descrito Externamente -- DDS
255
5763CB1 V3RM5
Fuente COBOL AS/4
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
7 7 FILE-CONTROL.
8 8
SELECT FILE-1 ASSIGN TO DATABASE-NAMES
9 9
ACCESS IS DYNAMIC RECORD KEY IS EXTERNALLY-DESCRIBED-KEY
1 1
ORGANIZATION IS INDEXED.
11 11 DATA DIVISION.
12 12 FILE SECTION.
13 13 FD FILE-1 LABEL RECORDS ARE STANDARD.
14 14 1 RECORD-DESCRIPTION
15 15
COPY DDS-RDE IN NAMES-PUBS.
17 +1
+2\
DESDE FILE NAMES
DE BIBLIOTECA XMPLIB
+3\
DESCRIPCIN DE REGISTRO
18 +4
5 RDE.
+5\
CLAVE DE REG. PARA ARCH. INDEX. CLAVE'2 NOM. CAMPO CLAVE FNAME
.
19 +6
6 FNAME
PIC X(2).
+7\
NOMBRE
+8\
CLAVE ARCH. PARA ARCH. INDEX., CLAVE'3 NOMB. CAMPO CLAVE MINAME .
2 +9
6 MINAME
PIC X(1).
+1\
INICIAL SEGUNDO NOMBRE
+11\
CLAVE ARCH. PARA ARCH. INDEX., CLAVE'4 NOMB. CAMPO CLAVE MNAME
.
21 +12
6 MNAME
PIC X(19).
+13\
RESTO SEGUNDO NOMBRE
+14\
CLAVE ARCH. PARA ARCH. INDEX., CLAVE'1 NOMB. CAMPO CLAVE LNAME
.
22 +15
6 LNAME
PIC X(2).
+16\
APELLIDO
23 +17
6 PHONE
PIC S9(1).
COMP-3
+18\
NMERO TELFONO
24 +19
6 DATA-DDS
PIC X(4).
+2\
DATOS RESTANTES
25 16 66 MIDDLE-NAME RENAMES MINAME THRU MNAME.
17/
26 18 PROCEDURE DIVISION.
19 START PROGRAM.
27 2
OPEN INPUT FILE-1.
21\
22\ SITA EL ARCHIVO COMENZANDO CON LOS REGISTROS QUE TENGAN EL APELLIDO
23\ "SMITH"
28 24
MOVE "SMITH" TO LNAME.
29 25
START FILE-1 KEY IS EQUAL TO LNAME
3 26
INVALID KEY DISPLAY "NO DATA IN SYSTEM FOR " LNAME
31 27
GO TO ERROR-ROUTINE.
28\
.
29\
.
3\
.
31\
32\ SITA EL ARCHIVO COMENZANDO CON LOS REGISTROS QUE TENGAN EL APELLIDO
33\ "SMITH" Y EL NOMBRE "ROBERT"
32 34
MOVE "SMITH" TO LNAME.
33 35
MOVE "ROBERT" TO FNAME.
34 36
START FILE-1 KEY IS EQUAL TO LNAME, FNAME
35 37
INVALID KEY DISPLAY "NO DATA IN SYSTEM FOR "
38
LNAME " " FNAME
36 39
GO TO ERROR-ROUTINE.
4\
.
41\
.
42\
.
43\
44\ SITA EL ARCHIVO COMENZANDO CON REGISTROS QUE TENGAN EL APELLIDO
45\ "SMITH", EL NOMBRE "ROBERT", Y LA INICIAL DEL SEGUNDO NOMBRE SEA "M"
32 46
MOVE "SMITH" TO LNAME.
33 47
MOVE "ROBERT" TO FNAME.
33 48
MOVE "M" TO MINAME.
34 49
START FILE-1 KEY IS EQUAL TO LNAME, FNAME, MINAME
35 5
INVALID KEY DISPLAY "NO DATA IN SYSTEM FOR "
51
LNAME SPACE FNAME SPACE MINAME
42 52
GO TO ERROR-ROUTINE.
53
54
55 ERROR-ROUTINE.
56
STOP-RUN.
NOMCOPIA
RDE
RDE
RDE
RDE
RDE
RDE
RDE
RDE
RDE
RDE
RDE
RDE
RDE
RDE
RDE
RDE
RDE
RDE
RDE
RDE
Figura 79. Instrucciones START Genricas que Utilizan un Archivo Descrito Externamente
256
FECH/CAM
257
G X 2 1 - 9 8 9 1 - 0
A S / 4 0 0 E S P E C I F I C A C I O N E S D E D E S C R I P C I O N D E D AT O S
Inter national
Business
Machines
*El
Archivo
Signo
nm e ro
de
hojas
por
rea
de
Impreso
re lleno
Descripcin
puede
variar
Pgina
U M / 0 5 0 *
en
Espaa
ligeramente.
de
Instrucciones
de Grabacin
1 0
1 1
1 2
1 3
1 4
1 5
1 8
19
2 0
2 1
2 2
2 3
2 4
2 5
2 6
2 7
2 8
2 9
3 0
3 1
3 2
3 3
3 4
3 5
(b/O/I/B/H/M/N/P)
Referencia (R)
Reservado
Nombre
1 7
(/b / R / H / J / K / S / O )
1 6
Tipo
No (N)
Indicador
No (N)
Indicador
Espec
(A/O/*)
7
Longitud
3 6
U t i l i z a c/i n
N om b re
D ecimales
Indicador
de
2
And/Or/Coment.
Tipo
1
Nombre Co ndicin
No (N)
Secuencia
Formula rio
Condicionamiento
N mero de
Tecla
Fecha
Posiciones
Programador
3 7
3 8
F O R MA T A
Funciones
Lnea
3 9
4 0
4 1
P os
4 2
4 3
4 4
4 5
4 6
P F
4 7
4 8
F L D A
OR D E R N
F L D B
K
4 9
5 0
5 1
5 2
5 3
5 4
5 5
5 6
5 7
5 8
5 9
6 0
6 1
6 2
6 3
6 4
6 5
6 6
6 7
6 8
6 9
7 0
7 1
7 2
7 3
7 4
7 5
7 6
7 7
7 8
7 9
' V I A
ACC E S O
P A R A
A R C
I ND E X A DO '
1 4
5 S
1 0 1
OR D E R N
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
Figura 80. Utilizacin de Especificaciones de Descripcin de Datos para Definir la Va de Acceso de un Archivo
258
8 0
L E ( OR D D T L P )
T E X T
Ubicacin
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Descripcin
32
33
34
No (N)
Indicador
No (N)
Indicador
Indicador
9
Longitud
Referencia (R)
N om b re
Reservado
T i p o N o m b r e o E s p e c (/b / R / H / J / K / S / O )
Nombre Co ndicin
35
36
37
38
F OR MA T
F L DA
OR D E R N
A
A
de
Ubicacin
Funciones
Lnea
39
40
41
Pos
42
43
44
45
46
47
48
49
50
51
52
53
T E X T ( ' V I A
Pgina
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
P F I L E ( OR DD T L P )
Impreso en Espaa
Tecla
U t i l i z a c/i n ( b / O / I / B / H / M / N / P )
de Grabacin
D ecimales
And/Or/Coment. (A/O/*)
Secuencia
N mero de
No (N)
Condicionamiento
Signo
Instrucciones
Fecha
Posiciones
Archivo
Programador
GX21-9891-0 UM/050*
*El nm e ro de hojas por rea de re lleno puede variar lige ram ente .
ACC E S O
P AR A
ARC
I ND E X ADO ' )
1 4
5 S
I T EM
F L DB
9 6
OR D E R N
I T EM
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
Figura 81. Especificaciones de Descripcin de Datos para la Definicin de la Va de acceso (una Clave Compuesta)
de un Archivo Indexado
259
Control
El mandato CL CRTPF
El mandato CL CRTPF
DDS
El mandato CL OVRDBF
DDS
El mandato CL CRTPF
Para un archivo COBOL con una organizacin RELATIVE, el mandato CL Reorganizar Miembro de Archivo Fsico (RGZPFM) puede:
Eliminar todos los registros suprimidos del archivo. Debido a que COBOL
inicializa todos los registros del archivo relativo a registros suprimidos, se eliminar del archivo cualquier registro que no se haya grabado explcitamente.
Los nmeros relativos de registro de todos los registros que estn despus del
primer registro suprimido en el archivo se cambiarn.
Cambiar los nmeros relativos de registro si el archivo tiene una clave y se
modifica la secuencia de llegada para que coincida con una secuencia de
clave (con el parmetro KEYFILE).
Adems, el mandato CL Cambiar Archivo Fsico (CHGPF) que da soporte la opcin
REUSEDLT, puede modificar el orden de los registros recuperados o grabados
cuando el archivo trabaja de forma secuencial, ya que permite volver a utilizar los
registros eliminados.
260
Control
El mandato CL CRTPF
El mandato CL CRTPF
DDS
El mandato CL CRTPF
DDS
DDS
DDS
DDS
DDS
DDS
El mandato CL CRTPF
261
262
Condiciones
durante
la Apertura
Condiciones
durante
el Cierre
Lmite de Archivo
Secuencial
*INZDLT
Los registros no
escritos
se inicializan
Secuencial
*INZDLT
Tamao *NOMAX
CLOSE satisfactorio
El estado de
archivo es 0Q
Hasta el lmite de
registros escritos
Secuencial
*NOINZDLT
Hasta el lmite de
registros escritos
Al azar o dinmicamente
Los registros
se inicializan
Se abre el archivo
Al azar o dinmicamente
Tamao *NOMAX
OPEN no satisfactorio
Estado de archivo
9Q
Archivo vaco
Para extender el lmite de archivo ms all del nmero actual de registros, pero
permaneciendo dentro del tamao del archivo, utilice el mandato INZPFM para
aadir registros eliminados antes de procesar el archivo. Es preciso efectuar esta
operacin si recibe un estado de archivo de 0Q y todava quiere aadir ms registros al archivo.
Cualquier intento de ampliar un archivo relativo ms all de su tamao actual da
como resultado una violacin de lmite.
Para recuperar el estado de archivo de 9Q, utilice el mandato CHGPF tal como se
describe en el texto de mensaje en tiempo de ejecucin asociado.
Las demoras de larga duracin son normales cuando hay gran cantidad de registros (ms de un 1 000 000) que se deben inicializar para registros suprimidos
cuando se ejecuta la instruccin CLOSE.
Cuando la primera instruccin OPEN para el archivo no es OPEN OUTPUT, los
archivos relativos deben borrarse e inicializarse con registros suprimidos antes de
utilizarlos. Consulte la descripcin sobre los mandatos CLRPFM y INZPFM en el
manual CL Reference para obtener ms informacin.
El parmetro RECORDS del mandato INZPFM debe especificar *DLT. Las alteraciones temporales deben aplicarse cuando COBOL procesa las operaciones de
borrado e inicializacin, pero no cuando se procesan con mandatos CL.
Las demoras de larga duracin son normales en el proceso OPEN OUTPUT para
archivos sumamente grandes (ms de 1 000 000 registros) a los que se accede en
modalidad dinmica o al azar.
263
SELECT
CLAUSE
ORG ACC DEV OPEN READ WRITE START REWRITE DELETE CLOSE FORMAT KEY IS
S S ANY INPUT
X
S S ANY OUTPUT
X(F1)
A1
S S ANY I-O
S S ANY EXTEND
I S D/DB INPUT
X
B1
C1
I S D/DB OUTPUT
X(F1)
B1
C1
I S D/DB I-O
B1
C1
I R D/DB INPUT
X
B1
D1
I R D/DB OUTPUT
X(F1)
B1
D1
I R D/DB I-O
X
X
B1
D1
I D D/DB INPUT
X
B1
D1
I D D/DB OUTPUT
X(F1)
B1
D1
I D D/DB I-O
X
X
B1
D1
R S D/DB INPUT
X
C1
R S D/DB OUTPUT
X(G1)
C1
R S D/DB I-O
C1
R R D/DB INPUT
X
E1
R R D/DB OUTPUT
X(G1)
E1
R R D/DB I-O
X
X
E1
R D D/DB INPUT
X
E1
R D D/DB OUTPUT
X(G1)
E1
R D D/DB I-O
X
X
E1
T S W
I-O
X
X
H1
T D W
I-O
X(K1) X(K1)
I1
J1
ORG:
ACC:
DEV:
S = Secuencial
S = Secuencial
ANY = Cualquier dispositivo
R = Relativo
R = Al azar
D
= DISK
I = Indexado
D = Dinmico
DB = DATABASE
T = TRANSACTION
W
= WORKSTATION
Se permite la combinacin.
A1
Se requiere la frase FORMAT para archivos FORMATFILE con formatos mltiples y no se permite para todos los otros archivos de dispositivo.
B1
C1
D1
264
E1
F1
G1
Se borra un archivo fsico abierto para salida y se inicializa a registros suprimidos. Existe una serie de excepciones segn el tamao del archivo y las
opciones especificadas. Para obtener ms informacin, consulte la Tabla 4
en la pgina 263.
H1
I1
La frase FORMAT es necesaria para distinguir entre los registros del subarchivo y el registro de control del subarchivo. El nombre del formato de
registro de control WRITE FORMAT IS visualiza el subarchivo, pero se necesita un nombre de formato de registro de control READ FORMAT IS para que
los datos puedan entrarse y al mismo tiempo para que la entrada del operador de los registros del subarchivo se coloque en el subarchivo.
J1
Se utiliza la frase RELATIVE KEY en la clusula SELECT para las instrucciones READ, WRITE y REWRITE que utilizan la frase SUBFILE, excepto
cuando READ SUBFILE NEXT MODIFIED utilice el nmero relativo de
registro actual del sistema en lugar del tem de datos RELATIVE KEY. El
tem de datos RELATIVE KEY se actualiza con el nmero relativo de registro
para registros del subarchivo en las instrucciones READ con la clusula
NEXT MODIFIED.
K1
265
266
1
2
3
4
5
6
7
8
9
1
11
12
13
14
15
16
17
-A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..
IDENTIFICATION DIVISION.
PROGRAM-ID. CMDXMPLE.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-AS4.
OBJECT-COMPUTER. IBM-AS4.
DATA DIVISION.
WORKING-STORAGE SECTION.
1 PROGRAM-VARIABLES.
5 CL-CMD
PIC X(33)
VALUE "ADDLIBLE COBOLTEST".
5 PACK-VAL
PIC 9(1)V9(5) COMP-3
VALUE 18.
PROCEDURE DIVISION.
MAINLINE.
CALL "QCMDEXC" USING CL-CMD PACK-VAL.
STOP RUN.
267
268
5763CB1 V3RM5
Fuente COBOL AS/4
XMPLIB/CORR
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
1 1 IDENTIFICATION DIVISION.
2 2 PROGRAM-ID.
CORRPHRASE.
3 3
AUTHOR.
PROGRAMMER NAME.
4 4
INSTALLATION. TORONTO COBOL DEVELOPMENT CENTRE.
5 5
DATE-WRITTEN. 5/24/91.
6 6
DATE-COMPILED. 5/24/94 11:9:11
.
7 7 ENVIRONMENT DIVISION.
8 8 CONFIGURATION SECTION.
9 9 SOURCE-COMPUTER. IBM-AS4.
1 1 OBJECT-COMPUTER. IBM-AS4.
11 11 DATA DIVISION.
12 12 WORKING-STORAGE SECTION.
13 13 1 GROUP1.
14 14
5 ITEM1
PIC 99
VALUE 1.
15 15
5 ITEM2
PIC 99
VALUE 2.
16 16
5 ITEM3
PIC X(1)
VALUE "GREEN".
17 17
5 ITEM4
PIC X(1)
VALUE "BLUE".
18 18 1 GROUP2.
19 19
5 ITEM1
PIC 99
VALUE 8.
2 2
5 ITEM2
PIC 99
VALUE 9.
21 21
5 ITEM3
PIC XXBX(8)
VALUE SPACES.
22 22
5 ITEM4
PIC X(1)
VALUE SPACES.
23 23 1 GROUP3.
24 24
5 SPECIAL PIC XX.
25 25 PROCEDURE DIVISION.
26 MAINLINE.
26 27
ADD CORRESPONDING GROUP1 TO GROUP2.
\
\\ tems CORRESPONDING para instruccin 26:
\
\\
ITEM1
\
\\
ITEM2
\
\\ Fin de tems CORRESPONDING para instruccin 26
27 28
SUBTRACT CORRESPONDING GROUP1 FROM GROUP2.
\
\\ tems CORRESPONDING para instruccin 27:
\
\\
ITEM1
\
\\
ITEM2
\
\\ Fin de tems CORRESPONDING para instruccin 27
28 29
MOVE CORRESPONDING GROUP1 TO GROUP2.
\
\\ tems CORRESPONDING para instruccin 28:
\
\\
ITEM1
\
\\
ITEM2
\
\\
ITEM3
\
\\
ITEM4
\
\\ Fin de tems CORRESPONDING para instruccin 28
29 3
MOVE CORRESPONDING GROUP3 TO GROUP2.
\
\\ tems CORRESPONDING para instruccin 29:
\
\\
No se han encontrado tems CORRESPONDING
\
\\ Fin de tems CORRESPONDING para instruccin 29
3 31
STOP RUN.
\ \ \ \ \
F I N
D E
F U E N T E
\ \ \ \ \
5763CB1 V3RM5
Mensajes COBOL AS/4
XMPLIB/CORR
INST
\
29 MSGID: LBL336 GRAVEDAD: 1 NUMSEC: 3
Mensaje . . . . :
No se han encontrado tems CORRESPONDING. Sentencia
ignorada.
\ \ \ \ \
F I N
D E
M E N S A J E S
\ \ \ \ \
Resumen Mensajes
Total
Info(-4)
Aviso(5-19)
Error(2-29)
Grave(3-39)
Terminal(4-99)
1
Errores de secuencia . . . . . . . :
NOMCOPIA
FECH/CAM
269
Ampliacin de IBM
Clusula LIKE
La clusula LIKE sirve para definir las caractersticas PICTURE, USAGE, SIGN y
BLANK WHEN ZERO de un nombre de datos copindolas de un nombre de datos
definido con anterioridad. LIKE slo puede referirse a un nombre de datos o un
nombre de ndice, y tales nombres deben calificarse nicamente si se han definido
anteriormente. Tambin sirve para cambiar la longitud de los nombres de datos
definidos por el usuario.
Esta clusula es particularmente til, ya que el usuario puede utilizarla para definir
los identificadores en la Seccin de Almacenamiento del programa que tengan los
mismos atributos como variables definidas utilizando la instruccin COPY.
Para crear el nombre de datos DEPTH con los mismos atributos que el nombre de
datos HEIGHT, escriba:
DEPTH LIKE HEIGHT
Para crear el nombre de datos PROVINCE con los mismos atributos que el nombre
de datos STATE, slo que con un byte ms, escriba:
PROVINCE LIKE STATE (+1)
Este ejemplo le muestra cmo puede crear el tem de datos WS-KEY3 con los
mismos atributos que el tem de datos KEY3 en la Seccin de Almacenamiento de
Trabajo:
5763CB1 V3RM5
Fuente AS/4 COBOL
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
14
FILE SECTION.
15
FD FILE1.
16
1 FILE1-REC.
17
COPY DDS-ALL-FORMATS OF COPYDDS2.
+1
5 COPYDDS2-RECORD PIC X(2).
+2\
FORMATO E-S: RECORD1 DESDE ARCHIVO COPYDDS2 DE BIBLIOTECA COPYLIB
+3\
+4\LAS DEFINICIONES DE CLAVE PARA FORMATO DE REGISTRO RECORD1
+5\ NUMERO
NOMBRE
RECUPERAC.
TIPO
+6\ 1
KEY1-DDS
ASCENDENTE
+7\
NOMBRE CLAVE ORIGINAL DEL ARCHIVO FSICO
+8
5 RECORD1
REDEFINES COPYDDS2-RECORD.
+9
6 KEY3
PIC X(8).
+1
6 FILLER REDEFINES KEY3.
+11
7 KEY1-DDS
PIC X(4).
+12
7 FILLER
PIC X(4).
+13
6 DATA1
PIC X(12).
18 WORKING-STORAGE SECTION.
19 1 WS-KEY3 LIKE KEY3.
\ PICTURE IS X(8)
La clusula LIKE no puede utilizarse conjuntamente con las clusulas REDEFINES, SIGN, USAGE o PICTURE. Si utiliza alguna de estas clusulas con la
clusula LIKE, se producir un error de duplicacin. Igualmente, slo puede especificarse BLANK WHEN ZERO conjuntamente con la clusula LIKE si el atributo
BLANK WHEN ZERO no ha sido heredado por la clusula LIKE.
270
INCOME.
5 ANNUAL-WAGES
PIC 9(6)V9(2) COMP-3.
1 YTD-WAGES LIKE ANNUAL-WAGES.
\ PICTURE IS 9(6)V9(2)
\ USAGE IS PACKED-DECIMAL
1
RATES.
5 MONTHLY-RATE
PIC 9(3).
66 GROSS-RATE RENAMES MONTHLY-RATE.
1 NET-RATE LIKE GROSS-RATE.
\ PICTURE IS 9(3)
1 FAMILY-NAME
PIC X(2)
1 GIVEN-NAME LIKE FAMILY-NAME.
\ PICTURE IS X(2)
VALUE "JONES".
1
1
EMPLOYEE-NUMBER
PIC X(6).
DEPARTMENT-MEMBERS.
5 DEPT-EMPLOYEE-NUMBER LIKE EMPLOYEE-NUMBER
OCCURS 1 TIMES.
\ PICTURE IS X(6)
Nota: DEPARTMENT-MEMBERS, en el ejemplo anterior, tiene una longitud de 60
bytes.
5 TENANT-NAME
PIC X(2) OCCURS 1 TIMES.
RENEWAL-RECORD.
5 RENEWAL-MONTH PIC X(3).
5 RENEWAL-NAME LIKE TENANT-NAME.
\ PICTURE IS X(2)
1
271
ORDER-DETAILS.
5 ORDER-TYPE
PIC XX.
5 ORDER-CODE LIKE ORDER-TYPE.
\ PICTURE IS X(2)
1
FASTENINGS.
5 NAILS
PIC 9V99
5 RIVETS LIKE NAILS.
\ PICTURE IS 9V9(2)
\ BLANK WHEN ZERO
MORTGAGE-PAYMENT.
5 MORTGAGE-TOTAL PIC S999V99 SIGN IS LEADING SEPARATE.
5 MORTGAGE-INTEREST LIKE MORTGAGE-TOTAL.
\ PICTURE IS S9(3)V9(2)
\ SIGN IS LEADING SEPARATE
1
PROFIT.
5 GROSS-PROFIT
PIC 999(3)PP(5).
5 NET-PROFIT LIKE GROSS-PROFIT.
\ PICTURE IS 9(5)P(6)
Puede utilizar un entero para aumentar o disminuir la longitud del campo. El
ejemplo siguiente muestra cmo aumentar la longitud de campo de
WEEKLY-AMOUNT:
1 WEEKLY-AMOUNT
PIC 9(3).
1 ANNUAL-AMOUNT LIKE WEEKLY-AMOUNT (+3).
\ PICTURE IS 9(6)
Asimismo, tenga en cuenta que:
Cualquier campo que tenga atributos de BLANK WHEN ZERO se considera un
campo editado.
Si se especifica un entero de cero, se genera un mensaje informativo.
Slo se puede aumentar o disminuir la parte del entero de la longitud de campo.
No se puede cambiar el nmero de posiciones decimales de un tem de datos.
Los atributos por omisin, SIGN IS TRAILING y USAGE IS DISPLAY, nunca se
imprimen como comentarios despus de una operacin LIKE.
Cuando utiliza la clusula LIKE, las reglas normales de calificacin de nombres de
datos se aplican en el nombre de datos principal; sin embargo, el nombre de datos
referenciado debe estar calificado exclusivamente si se defini anteriormente ms
de una vez. Por ejemplo:
1
COMBINATIONS.
5 PHENOTYPE
PIC XX.
5 GENOTYPE LIKE PHENOTYPE.
\ PICTURE IS X(2)
1 PHENOTYPE-TRAITS.
5 PHENOTYPE
PIC X(3).
5 PHENO-GROUP LIKE PHENOTYPE OF COMBINATIONS.
\ PICTURE IS X(2)
272
GARAGE-1.
5 STD-PARKING-1 PIC 9(3).
1 GARAGE-2.
5 STD-PARKING-2 PIC 9(3) COMP-3.
77 VACANCIES-1 LIKE GARAGE-1.
\ PICTURE IS X(3)
77 VACANCIES-2 LIKE GARAGE-2.
\ PICTURE IS X(2)
STD-PARKING-1 es un campo numrico con zona, de forma que VACANCIES-1
necesita 3 bytes de almacenamiento. STD-PARKING-2 es un campo numrico
empaquetado, de manera que VACANCIES-2 slo necesita 2 bytes de almacenamiento.
Podr utilizar la clusula LIKE con la clusula USAGE IS POINTER:
1
CUSTOMER-RECORD.
5 CUST-NAME
5 CUST-ADDR-POINTER
5 CUST-STATS-POINTER
\ USAGE IS POINTER
5 CUST-NUMBER
PIC X(16).
POINTER.
LIKE CUST-ADDR-POINTER.
PIC S9(8).
273
Modificacin de Referencias
La modificacin de referencias permite referenciar subseries de un tem de datos.
Simplemente debe especificar la posicin en el tem de datos en el que desee
iniciar la subserie, as como la longitud de la subserie. La longitud es opcional: si
la omite, se ampla automticamente hasta el final del tem de datos.
El usuario puede escribir la posicin inicial y el valor de la longitud como literales
enteros, tems de datos o expresiones aritmticas.
La posicin inicial debe ser, como mnimo, 1, y no puede ser mayor que la longitud
del tem de datos referenciado. La longitud debe ser, como mnimo, 1.
El resultado de aadir la posicin inicial a la especificacin de longitud, y despus
sustraerle 1, debe estar entre 1 y la longitud total del tem de datos referenciado,
ambos inclusive. Cuando el valor de longitud es mayor que la longitud total del
tem de datos, se produce un error.
Para informacin adicional acerca de la modificacin de referencias, vea la publicacin COBOL/400 Reference.
La opcin de generacin *RANGE produce cdigos para detectar situaciones de
modificacin de referencias fuera del rango, as como para sealar las violaciones
con un mensaje en tiempo de ejecucin.
Imagine que quiere recuperar la hora actual del sistema y visualizar su valor en un
formato ampliado. Puede recuperarla con la instruccin ACCEPT, que devuelve
las horas, minutos, segundos y centsimas de segundo en el formato:
HHMMSSss
Sin embargo, es posible que quiera visualizar la hora actual en el formato:
HH:MM:SS
Sin la modificacin de referencias, deber definir los tems de datos siguientes:
1
TIME-GROUP.
INTERESTING-FIELDS.
1 HOURS
1 MINUTES
1 SECONDS
5 UNINTERESTING-FIELDS.
1 HUNDREDTHS-OF-SECONDS
1 EXPANDED-TIME-GROUP.
5 INTERESTING-FIELDS.
1 HOURS
1 FILLER
1 MINUTES
1 FILLER
1 SECONDS
5
PIC XX.
PIC XX.
PIC XX.
PIC XX.
PIC
PIC
PIC
PIC
PIC
XX.
X
VALUE ":".
XX.
X
VALUE ":".
XX.
274
REFMOD-TIME-ITEM
PIC X(8).
NAME-GROUP.
NAME-LENGTH
PIC
NAME-PORTION.
1 FILLER
PIC
OCCURS 1 TO 17 TIMES
DEPENDING ON NAME-LENGTH.
1 NEW-NAME-GROUP.
5 NEW-NAME-LENGTH
PIC
5 NEW-NAME-PORTION.
1 FILLER
PIC
OCCURS 1 TO 17 TIMES
DEPENDING ON NEW-NAME-LENGTH.
5
5
99.
X
99.
X
275
8WILLIAMS THOMAS J
5SMITH MICHAEL
Segn las reglas para la instruccin MOVE, se sustituir todo el contenido del
campo de recepcin NAME-GROUP. Este problema puede evitarse utilizando la
modificacin de referencias en la instruccin MOVE:
MOVE NEW-NAME-GROUP TO NAME-GROUP ( 1 :LENGTH OF NAME-GROUP )
Al especificar la modificacin de referencias con la longitud (LENGTH OF) de
registro especial, la longitud de NAME-GROUP queda determinada por el valor de
la variable NAME-LENGTH.
El nuevo valor de NAME-GROUP ser:
5SMITH THOMAS J
LEFTY
RIGHTY
PIC X(3).
PIC X(3)
JUSTIFIED RIGHT.
PIC 9(9)
USAGE BINARY.
276
ANY-TABLE.
TABLE-ELEMENT
OCCURS 3 TIMES
VALUE "ABCDEFGHIJ".
PIC X(1)
Puede cambiar el tercer y cuarto byte del primer tem de TABLE-ELEMENT al valor
?? con la instruccin MOVE siguiente:
MOVE "??" TO TABLE-ELEMENT ( 1 ) ( 3 : 2 )
Esta instruccin mover el valor ?? al tem de la tabla nmero 1, comenzando en
la posicin del carcter 3, para una longitud 2.
ANY-TABLE tendra este aspecto antes del cambio:
ABCDEFGHIJ
ABCDEFGHIJ
ABCDEFGHIJ
AB??EFGHIJ
ABCDEFGHIJ
ABCDEFGHIJ
Deseditar
La accin Deseditar sirve para mover un tem de datos editados de forma numrica a un tem de datos de recepcin numricos o editados de forma numrica. El
compilador realiza esta accin estableciendo en primer lugar el valor no editado del
tem editado de forma numrica. A continuacin mueve el valor no editado al
receptor.
La accin Deseditar puede producirse en operaciones del tipo MOVE e INITIALIZE.
Una clusula VALUE no deshace la edicin.
Observe que los valores numricos no editados pueden significar signos.
Captulo 11. Consideraciones de Programacin en COBOL/400
277
Imagine que utiliza un campo de caracteres para que contenga un valor numrico
que se visualice en el terminal y para que contenga un valor suministrado por el
operador del sistema. Suponga que este campo tiene la siguiente definicin:
Una posicin de caracteres para un signo (para que contenga un espacio si el
campo numrico es positivo o cero, o un signo menos si el campo numrico es
negativo).
Seis posiciones de dgitos, en las que los ceros iniciales se representen
mediante espacios;
Una coma decimal;
Dos posiciones de dgitos decimales.
Los tems de datos que utilice para definir este campo tendran el siguiente
aspecto:
1 NUM-EDIT
PIC Z(6).9(2)
USAGE IS DISPLAY.
PIC S9(6)V9(2)
USAGE IS PACKED-DECIMAL.
La instruccin:
MOVE NUM-EDIT TO NUMERIC-ITEM
provoca la accin Deshacer Edicin, con lo que el tem numrico recibe el valor
numrico del campo editado de forma numrica NUM-EDIT. Como resultado, el
tem numrico contiene el valor +123,45.
Ejemplos de Deseditar
La Tabla 5 y la Tabla 6 en la pgina 279 muestran ejemplos de la accin deseditar de COBOL/400.
Tabla 5. Mover tems Editados de Forma Numrica a Receptores Numricos
278
Imagen Origen
Valor Origen
Imagen Receptora
Valor Receptor
$+++,+++.++
$+123.45
S9(5)V9(5)
USAGE IS
DISPLAY
+123.45
$+++,+++.++
$1,234.56
S9(5)V9(5)
USAGE IS
BINARY
1234.56
*****.999+
**123.450
S9(5)V9(5)
USAGE IS
PACKED-DECIMAL
123.45
Valor Origen
Imagen Receptora
Valor Receptor
$+++,+++.++
$+123.45
$$$$,$$$.$$CR
$123.45
$+++,+++.++
$1,234.56
,.99
1,234.56
*****.999+
**123.450
ZZZBZZZBVZZZ
123450
ZZZ999CR
12345
$++++9999
$+12345
ZZZ999CR
12345CR
999999.99
012345.00
Prueba de Signo
El compilador valida los signos en tems fuente editados de forma numrica, segn
las reglas que aparecen a continuacin.
Definicin PICTURE
Contenidos admisibles
+ fijo
+o
fijo
CR
o CR
DB
o DB
Prueba de Flotantes
Si el fuente tiene una serie de caracteres flotantes, esta prueba verifica la correccin de caracteres flotantes iniciales en el campo de datos.
Las reglas para la prueba de flotantes son:
Si la clusula fuente PICTURE contiene smbolos $ flotantes, el primer carcter
que no sea espacio en blanco de la parte pertinente del campo fuente (posiciones 2 a 7 en el ejemplo) debe ser un signo $, y su ubicacin debe ser
correcta segn las reglas de edicin de la clusula PICTURE. (Vea la publicacin COBOL/400 Reference para ms informacin acerca de estas reglas).
Por ejemplo:
279
\/
\/
\/
\/
\/
\/
\/
280
Segmentacin
La utilizacin de la segmentacin aumenta los tiempos de compilacin y ejecucin
del programa COBOL. La caracterstica de segmentacin slo se proporciona para
lograr la compatibilidad con otros sistemas. Al utilizar programas COBOL/400 no
tiene que preocuparse por la gestin de almacenamiento.
77
mgtstruc.
3 FILLER PIC X(277).
3 mgtfunc pic 9(2) comp-4 value 9.
TEST-VAR PIC X(1) value spaces.
if test-var = spaces then
display 'spaces'
move 'faked' to test-var
call 'QLRMAIN' using mgtstruc
else
display 'not spaces ' test-var.
Notas:
1. 1 Mgtstruc debe estar en un lmite de 16 bytes. Si se produce un error de
lmite, aada 77 aa PIC X. delante de 1.
2. Dado que la llamada a QLRMAIN cambia el programa principal COBOL por un
subprograma, deber utilizar el mandato EXIT PROGRAM y no STOP RUN, ya
que podran producirse errores.
3. RCLRSC desactivar el programa principal (ahora un subprograma).
281
Depuracin
La depuracin del lenguaje fuente COBOL se proporciona para ayudar al programador en COBOL a depurar un programa que no funciona segn lo esperado. La
utilizacin de este servicio aumenta los tiempos de compilacin y ejecucin de un
programa COBOL.
Opcin *NORANGE
Esta opcin del parmetro GENOPT del mandato CRTCBLPGM suprime las comprobaciones en tiempo de ejecucin para rangos de modificacin de subndices y
referencias.
Esta opcin puede aumentar el rendimiento cuando:
Realice referencias frecuentes a las tablas, y los subndices siempre hagan
referencia a tems que estn en las tablas
Utilice frecuentemente la modificacin de referencias.
Nota: La opcin *RANGE genera cdigos para comprobar rangos de subndice.
Por ejemplo, asegura que el usuario no est intentando acceder al tem
nmero 21 de una matriz de 20 tems.
La opcin *NORANGE no genera cdigos para comprobar rangos de modificacin
de subndices o referencias.
Estas opciones no eliminan la comprobacin de subndice cero realizada por el
sistema operativo. Si se produce el subndice cero, el sistema operativo no permitir su utilizacin y emitir el mensaje MCH0603.
Opcin *DUPKEYCHK
Esta opcin de parmetro GENOPT del mandato CRTCBLPGM indica que se efectuar la comprobacin de clave duplicada para archivos INDEXED. La utilizacin
de DUPKEYCHK durante la lectura de archivos INDEXED puede afectar
negativamente al rendimiento.
Archivos Relativos
Pueden producirse retrasos duraderos si se abren o se cierran archivos relativos
en los que se estn inicializando grandes volmenes de registros para suprimir
registros.
Consulte la Tabla 4 en la pgina 263 para ms informacin.
Indicadores
Si utiliza los indicadores en un rea de indicadores separada (palabra clave
INDARA especificada en las DDS) en vez de hacerlo en un rea de registros, la
utilizacin de la clusula OCCURS para especificar una tabla de hasta 99 indicadores puede aumentar el rendimiento. Consulte la Figura 60 en la pgina 163
para ms informacin.
282
Control de Compromiso
Generalmente, la utilizacin del control de compromiso aumenta el tiempo de ejecucin de un programa COBOL. Adems, el bloqueo de registros resultante de la
utilizacin del control de compromiso por un trabajo puede provocar retrasos para
otros usuarios que intenten acceder al mismo archivo.
Inicializacin de Variables
Se puede reducir el tiempo de ejecucin de un programa eligiendo la posibilidad de
no inicializar variables de programa que no tengan clusulas de valor asociadas.
Se puede especificar esta no inicializacin mediante \NOSTDINZ para el parmetro
GENOPT del mandato CRTCBLPGM, o especificando NOSTDINZ en la instruccin
PROCESS. A continuacin, el compilador inicializa nicamente aquellas variables
que tienen clusulas de valor declaradas. Una ventaja adicional de esta opcin
consiste en que el usuario tambin puede compilar programas ms grandes con un
nmero mayor de variables.
Si se especifica \NOSTDINZ, deber asegurarse de que todos los tems de datos
contengan datos vlidos antes de intentar manipular los tems. Si un tem no contiene datos vlidos, pueden producirse errores de datos decimales.
Bloqueo de Registros
Se puede utilizar el bloqueo de registros para mejorar el rendimiento del tiempo de
ejecucin. Las ventajas del bloqueo quedan patentes cuando se leen varios registros de manera secuencial, como una lectura aleatoria seguida de lecturas secuenciales.
Para ms informacin acerca de los bloqueos, consulte el apartado Desbloqueo
de Registros de Entrada y Bloqueo de Registros de Salida en la pgina 107.
Bucles en un Programa
Cuando un programa procesa repetidamente la misma serie de instrucciones, y
parece evidente que as continuar indefinidamente, el programa se encuentra en
un bucle. Para identificar los bucles, puede utilizar la informacin conocida acerca
del propio programa, de la manera siguiente:
Tiempo: Si el tiempo de ejecucin real sobrepasa sustancialmente el tiempo
de ejecucin esperado, el programa puede estar en un bucle.
Operaciones de E/S: Si no se dan operaciones de entrada/salida y se espera
que la E/S se produzca repetidamente, es probable que el programa est en
un bucle.
283
284
285
286
Nota: Puede sustituir una instruccin GOBACK por una instruccin EXIT
PROGRAM que aparezca en un subprograma, o una instruccin STOP
RUN que aparezca en un programa principal.
LLAMADA
UNIDAD EJECUCIN A
NIVEL
PGMA
Programa
Principal COBOL
PGMB
PGMC
n + 1
COBOL
No COBOL
PGMD
PGME
PGMF
n + 2
COBOL
COBOL
No COBOL
INSTRUCCIN
PGMA
PGMB
PGMD
PGME
EXIT PROGRAM
.1/
.2/
.2/
.2/
STOP RUN
.3/
.3/
.3/
.3/
.1/
.2/
.3/
287
LLAMADA
NIVEL
PGMA
No COBOL
UNIDAD EJECUCIN B
UNIDAD EJECUCIN C
PGMB
PGMC
Programa
Programa
Pincipal COBOL
Principal COBOL
PGMD
PGME
PGMF
No COBOL
COBOL
COBOL
n + 1
n + 2
PGME
PGME
PGMB
PGMC
(UNIDAD DE(UNIDAD PGMF
INSTRUCCIN
EJEC. B) EJEC.C)
EXIT PROGRAM
.1/
.1/
.2/
.2/
.2/
STOP RUN
.3/
.4/
.3/
.4/
.4/
Figura 86. Ejemplo de Varias Unidades de Ejecucin que se Ejecutan de Manera Consecutiva
288
.1/
.2/
.3/
.4/
LLAMADA
NIVEL
PGMA
No COBOL
UNIDAD EJECUCIN B
PGMB
PGMC
Programa
Principal COBOL
No COBOL
UNIDAD EJECUCIN E
UNIDAD EJECUCIN F
PGMD
PGME
PGMF
Programa
No COBOL
COBOL
Principal COBOL
n + 1
n + 2
PGME
PGME
PGMB
(UNIDAD DE(UNIDAD DE
PGMF
INSTRUCCIN
EJEC. B) EJEC. E)
EXIT PROGRAM
.1/
.2/
.1/
.1/
STOP RUN
.3/
.3/
.4/
.5/
Figura 87. Ejemplo de una Unidad de Ejecucin con un Programa Compartido que es tanto
un subprograma como un programa principal
.1/
.2/
.3/
289
.4/
.5/
PGMA
No en COBOL
UNIDAD DE EJECUCIN B
PGMB
Programa
Principal COBOL
6
6
PGMC
PGMD
COBOL
no en COBOL
UNIDAD DE EJECUCIN E
PGM QLRCHGCM
PGME
Programa
Principal
API
2
COBOL
PGMF
COBOL
n+1
n+2
n+3
n+4
PGMC
PGME
PGMB
(UNIDAD DE(UNIDAD DE
PGMF
INSTRUCCIN
EJEC. B) EJEC. E)
EXIT PROGRAM
.1/
.2/
.1/
.2/
STOP RUN
.3/
.3/
.4/
.4/
.1/
290
.2/
.3/
.4/
Inicializacin de Almacenamiento
La primera vez que se llama a un programa COBOL en una unidad de ejecucin,
se inicializa su almacenamiento. El almacenamiento se inicializa de nuevo con las
condiciones siguientes:
Se termina la unidad de ejecucin, luego se vuelve a iniciar.
El programa se cancela (utilizando la instruccin CANCEL para COBOL, la
operacin FREE para el lenguaje de programacin RPG/400* o el mandato
Reclamar Recurso (RCLRSC), y a continuacin se llama de nuevo.
Si se nombra un programa que no sea COBOL en una instruccin CANCEL, su
nombre debe respetar las reglas para la formacin de un nombre de programa
COBOL.
291
292
En la Seccin de Enlace
El usuario deber conocer lo que est pasando desde el programa de llamada y
configurar la Seccin de Enlace en el programa llamado para aceptarlo. Al programa llamado no le importa la clusula de la instruccin CALL que el usuario
utilice para pasar los datos (BY REFERENCE o BY CONTENT). En cualquiera de
los dos casos, el programa llamado debe describir los datos que est recibiendo,
cosa que realiza en la Seccin de Enlace.
El nmero de nombres-datos de la lista de identificador de un programa llamado no
debe ser mayor que el nmero de nombres-datos de la lista de identificador del
programa de llamada. Existe una correspondencia de posicin de uno a uno; es
decir, el primer identificador del programa de llamada se pasa al primer identificador del programa llamado, y as sucesivamente. El compilador no hace ningn
intento de hacer coincidir argumentos y parmetros.
293
1 PARAMLIST.
1 USINGLIST.
5 PARTCODE PIC A.
5 1 PARTID PIC X(5).
5 PARTNO
PIC X(4).
1 SALES
PIC 9(5).
5 USALES
PIC 9(5).
PROCEDURE DIVISION.
PROCEDURE DIVISION
6
.
USING USINGLIST.
.
CALL CALLEDPROG
6
USING PARAMLIST.
En el programa llamado, el cdigo
de componentes y de nmero de
componentes se combinan en un tem
En el programa de llamada, el
de datos (PARTID). En el programa
cdigo de componente (PARTCODE)
llamado, la nica consulta vlida
y el nmero de componente (PARTNO)
es la consulta a un tem de datos
aparecen por separado.
(PART-ID).
Figura 89. tem de Datos Comunes en el Enlace de Subprograma
294
295
296
297
Por ejemplo:
WORKING-STORAGE SECTION.
1 AB.
5 ALPHA-NUM PIC X(16).
5 APTR REDEFINES ALPHA-NUM USAGE POINTER.
5 BPTR USAGE POINTER.
5 CPTR REDEFINES BPTR USAGE POINTER.
Figura 92. REDEFINES e tems Alineados de Datos Puntero
En el ejemplo anterior, tanto APTR como CPTR son tems de datos puntero que
vuelven a definir tems alineados de 16 bytes. En el ejemplo siguiente, el tem
redefinido dara como resultado un error grave de compilador:
WORKING-STORAGE SECTION.
1 EF.
5 ALPHA-NUM PIC X(5).
5 HI.
1 ALPHA-NUM-TWO PIC X(11).
1 APTR USAGE POINTER.
5 BPTR REDEFINES HI USAGE POINTER.
Figura 93. REDEFINES e tems Alineados de Datos Puntero - Mtodo Incorrecto
En el ejemplo anterior, APTR se alinea en un lmite de 16 bytes. Es decir, el compilador de COBOL/400 no necesitaba aadir tems FILLER para alinear APTR. El
tem de grupos HI no est en el lmite de 16 bytes y, por lo tanto, tampoco lo est
el tem de datos puntero BPTR. Dado que el compilador de COBOL/400 no puede
aadir tems FILLER para colocar el BPTR en un lmite de 16 bytes, se producir
un error grave. En el ejemplo que se muestra a continuacin, similar al anterior, el
compilador de COBOL/400 es capaz de colocar el tem de datos puntero en un
lmite de 16 bytes:
WORKING-STORAGE SECTION.
1 EF.
5 ALPHA-NUM PIC X(5).
5 HI.
1 ALPHA-NUM-TWO PIC X(11).
1 APTR USAGE POINTER.
1 ALPHA-NUM-THREE PIC X(5).
5 KL REDEFINES HI.
1 BPTR USAGE POINTER.
Figura 94. REDEFINES e tems no Alineados de Datos Puntero - Mtodo Correcto
298
299
WORKING-STORAGE SECTION.
77 APTR USAGE POINTER.
1 AB.
5 BPTR USAGE POINTER.
5 BVAR PIC S9(3) PACKED-DECIMAL.
5 CVAR PIC S9(3) PACKED-DECIMAL.
PROCEDURE DIVISION.
MOVE LENGTH OF AB TO BVAR.
MOVE LENGTH OF BPTR TO CVAR.
Figura 96. Utilizacin de LENGTH OF con Punteros
300
301
WORKING-STORAGE SECTION.
1 A.
5 B
PIC X(1).
5 C.
1 D
PIC X(6).
1 E
POINTER.
1 A2.
5 B2
PIC X(6).
5 C2.
1 D2
PIC X(1).
1 E2
POINTER.
1 A3.
5 B3
PIC X(22).
5 C3.
1 D3
PIC X(1).
1 E3
POINTER.
PROCEDURE DIVISION.
MOVE A to A2. .1/
MOVE A to A3. .1/
MOVE C to C2. .2/
MOVE C2 to C3. .3/
.1/
.2/
Da como resultado un movimiento sin puntero, puesto que los desplazamientos no coinciden. El desplazamiento del tem de grupos C es 10
y el del tem del grupos C2 es 6. La integridad del puntero no se mantiene.
.3/
Da como resultado un movimiento del puntero, puesto que el desplazamiento del grupo de artculos C2 es 6 y el desplazamiento de C3
relativo a un lmite de 16 bytes es tambin de 6. (Cuando el desplazamiento es mayor que 16, el desplazamiento relativo al lmite de 16
bytes se calcula dividiendo el desplazamiento entre 16. El recordatorio
es el desplazamiento relativo. En este caso, el desplazamiento era 22,
lo que, dividido entre 16, da un recordatorio, o desplazamiento relativo,
de 6). La integridad del puntero se mantiene.
Si un tem de grupos contiene un puntero, y el compilador no puede
determinar el desplazamiento relativo a un lmite de 16 bytes, el compilador enva un mensaje de aviso y se intenta el traslado del puntero.
Sin embargo, es posible que la integridad no se mantenga. El compilador no puede determinar el desplazamiento si el tem se define en la
Seccin de Enlace, o si el tem viene modificado por referencia con una
posicin de inicio desconocida. Deber asegurarse de que la alineacin
del puntero se mantiene; de lo contrario, puede darse un MCH0602.
302
A. .1/
5 B
PIC X(3).
5 C..2/
1 FILLER
PIC X(13).
1 D
POINTER.
PROCEDURE DIVISION.
CALL "B" USING A C.
Figura 97. Programa A -- Programa Principal
303
WORKING-STORAGE SECTION.
1
77
E.
5
5
K
PIC X(16).
G
POINTER.
PIC S9(3)
VALUE 8.
LINKAGE SECTION.
1
A. .3/
5 B
PIC X(3).
5 C.
1
FILLER
PIC X(13).
1
D
POINTER.
C2..4/
5 FILLER
PIC X(13).
5 D2
POINTER.
304
305
5763CB1 V3RM5 1
IBM SAA COBOL/4
TESTER/POINTA
AS4SYS 5/1/94 18:1:14
Programa . . . . . . . . . . . . . . :
POINTA
Biblioteca . . . . . . . . . . . . :
TESTER
Archivo fuente . . . . . . . . . . . :
QLBLSRC
Biblioteca . . . . . . . . . . . . :
TESTER
Miembro fuente . . . . . . . . . . . :
POINTA
5/1/94 17:55:27
Nivel de gravedad de generacin . . :
29
"Descripcin" del texto. . . . . . . :
\BLANK
Opciones de listado fuente . . . . . :
\NONE
Opciones de generacin . . . . . . . :
\NONE
Opciones de conversin . . . . . . . :
\NONE
Lmite de mensaje:
Cantidad de mensajes.. . . . . . . :
\NOMAX
Gravedad lmite de mensaje
. . . :
29
Imprimir archivo. . . . . . . . . . :
QSYSPRT
Biblioteca . . . . . . . . . . . . :
\LIBL
Sealizacin FIPS. . . . . . . . . . :
\NOFIPS \NOSEG \NODEB \NOOBSOLETE
Sealizacin SAA . . . . . . . . . . :
\NOFLAG
Opciones de visualizacin ampliada . :
Gravedad de sealizacin . . . . . . :
Sustituir programa . . . . . . . . . :
\YES
Release de destino . . . . . . . . . :
\CURRENT
Perfil de usuario. . . . . . . . . . :
\USER
Autorizacin . . . . . . . . . . . . :
\LIBCRTAUT
Compilador . . . . . . . . . . . . . :
IBM SAA COBOL/4
Pantalla de Informacin del Cliente .1/
5763CB1 V3RM5 1
Fuente COBOL AS/4
TESTER/POINTA
AS4SYS 5/1/94 18:1:14
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN S NOMCOPIA
FECH/CAM
1 1 PROCESS extaccdsp varchar .2/
2 2 ID DIVISION.
CBT1
3
4
5
6
7
8
9
1
11
12
13
14
15
16
17
18
19
2
21
22
23
24
25
26
27
28
29
3
31
32
33
34
35
36
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
<-ALL-FMTS
Figura 100 (Parte 1 de 7). Ejemplo de Utilizacin de Punteros para Acceder a Espacios de Usuario
306
Pgina
Pgina
Pgina
Figura 100 (Parte 2 de 7). Ejemplo de Utilizacin de Punteros para Acceder a Espacios de Usuario
307
Figura 100 (Parte 3 de 7). Ejemplo de Utilizacin de Punteros para Acceder a Espacios de Usuario
308
Pgina
5/1/94 18:1:14
Pgina
Figura 100 (Parte 4 de 7). Ejemplo de Utilizacin de Punteros para Acceder a Espacios de Usuario
309
AS4SYS
5/1/94 18:1:14
Figura 100 (Parte 5 de 7). Ejemplo de Utilizacin de Punteros para Acceder a Espacios de Usuario
310
Pgina
Pgina
Pgina
Figura 100 (Parte 6 de 7). Ejemplo de Utilizacin de Punteros para Acceder a Espacios de Usuario
311
Resumen Mensajes
Total
Info(-4)
Aviso(5-19)
Error(2-29)
Grave(3-39)
Terminal(4-99)
1
1
Figura 100 (Parte 7 de 7). Ejemplo de Utilizacin de Punteros para Acceder a Espacios de Usuario
312
.1/
.3/
.4/
.5/
.6/
.7/
.8/
.9/
.1/
FILLER se utiliza para mantener la alineacin del puntero, porque convierte a Is-header-record en un mltiplo de 16 bytes de longitud.
.11/
.12/
.13/
.14/
.15/
.16/
.17/
.18/
.19/
Utiliza ADDRESS OF, no la direccin (ADDRESS OF) del registro especial, porque est modificado por referencia.
.2/
.21/
.22/
.23/
.24/
.25/
Esta instruccin ACCEPT espera la entrada de la pantalla de Informacin del Cliente. Partiendo de la tecla de funcin pulsada, llama al
prrafo adecuado para visualizar el siguiente conjunto de registros
(forward-screen), o el anterior conjunto de registros (back-screen), o
establece un indicador para finalizar la rutina si se pulsa F3.
.26/
.27/
.28/
313
F3=Salir
Nombre Cliente
Direccin Cliente
Bakery Unlimited
Window World
Jons Clothes
Pizza World
Marv's Auto Body
Jack's Snacks
Video World
Pat's Daycare
Mary's Pies
Carol's Fashions
Grey Optical
Fred's Forage
Dave's Trucking
Doug's Music
Anytime Copiers
Rosa's Ribs
+
+
+
+
+
F8=Av Pg
314
+
+
Si hay ms de 16 registros en el espacio de usuario (segn la lnea inicial en wsstart-line), el programa habilita la tecla F8=Av Pg, para permitir al usuario que
avance las pginas de la lista. Cuando el usuario ha avanzado alguna pgina, se
habilita la tecla F7=Re Pg para que el usuario pueda retroceder las pginas de la
lista, tal como se muestra en la siguiente pantalla:
F3=Salir
Nombre Cliente
Direccin Cliente
Picture It
Paula's Flowers
Mom's Diapers
Chez Francois
Vetements de Louise
Good Eats
F7=Re Pg
F3=Salir
315
REGISTRO SALARIO6
NULLdir.
siguiente
no vlida
NOMBRE
. . .
SALARIO
316
IDENTIFICATION DIVISION.
PROGRAM-ID. LISTS.
ENVIRONMENT DIVISION.
DATA DIVISION.
\\\\\\
WORKING-STORAGE SECTION.
77 PTR-FIRST
POINTER VALUE IS NULL.
77 DEPT-TOTAL
PIC 9(4) VALUE IS .
\\\\\\
LINKAGE SECTION.
1 SALARY-REC.
2 PTR-NEXT-REC
POINTER.
2 NAME
PIC X(2).
2 DEPT
PIC 9(4).
2 SALARY
PIC 9(6).
1 DEPT-X
PIC 9(4).
\\\\\\
PROCEDURE DIVISION USING DEPT-X.
\\\\\\
\ PARA TODOS EN EL DEPTO. RECIBIDOS COMO DEPT-X, REVISEN TODOS
\ LOS REGISTROS DE LA LISTA EN CADENA SEGN LA DIRECCIN DEL
\ PROGRAMA CHAIN-ANCH Y SUMEN LOS SALARIOS EN CADA REGISTRO.
\ EN CADA REGISTRO, PRT-NEXT-REC ES UN PUNTERO PARA EL
\ SIGUIENTE REGISTRO DE LA LISTA; EN EL LTIMO REGISTRO,
\ PRT-NEXT-REC ES NULO.
\ VISUALIZAR EL TOTAL.
\\\\\\
CALL "CHAIN-ANCH" USING PTR-FIRST
SET ADDRESS OF SALARY-REC TO PTR-FIRST
\\\\\\
PERFORM WITH TEST BEFORE UNTIL ADDRESS OF SALARY-REC = NULL
IF DEPT = DEPT-X
THEN ADD SALARY TO DEPT-TOTAL
ELSE CONTINUE
END-IF
SET ADDRESS OF SALARY-REC TO PTR-NEXT-REC
END-PERFORM
\\\\\\
DISPLAY DEPT-TOTAL
GOBACK.
VALUE IS NULL.
317
NULL es una constante figurativa utilizada para asignar el valor de una direccin
no vlida a tems puntero. Puede utilizarse en la clusula VALUE IS NULL, en la
instruccin SET y como operando en una condicin de relacin con un tem de
datos puntero.
La Seccin de Enlace del programa de llamada contiene la descripcin de los
registros en la lista encadenada. Contiene asimismo la descripcin del cdigo de
departamento que se pasa a travs de la frase USING de la instruccin CALL.
LINKAGE SECTION.
1 SALARY-REC.
2 PTR-NEXT-REC
2 NAME
2 DEPT
2 SALARY
1 DEPT-X
POINTER.
PIC X(2).
PIC 9(4).
PIC 9(6).
PIC 9(4).
..
.
318
..
.
LINKAGE SECTION.
1 RECORD-A.
2 HEADER
PIC X(16).
2 REAL-SALARY-REC PIC X(3).
1
SALARY-REC.
PTR-NEXT-REC
NAME
DEPT
SALARY
2
2
2
2
POINTER.
PIC X(2).
PIC 9(4).
PIC 9(6).
reas de Datos
Un rea de datos es un objeto utilizado para comunicar datos tales como valores
de variables entre programas dentro de un trabajo y entre trabajos. Un rea de
datos puede crearse y declararse en un programa antes de que se utilice en dicho
programa o trabajo. Para ms informacin acerca de la creacin y declaracin de
un rea de datos, consulte la publicacin CL Gua del Programador.
319
El sistema crea automticamente un rea de datos local para cada trabajo. El rea
de datos local est definida fuera del programa COBOL como una rea de 1024
bytes.
Cuando se somete un trabajo, el rea de datos local del trabajo que se somete se
copia al rea de datos local del trabajo sometido. Si no hay ningn trabajo que se
someta, el rea de datos local se inicializa a espacios en blanco.
Un programa COBOL puede acceder al rea de datos local para su trabajo con las
instrucciones ACCEPT y DISPLAY, utilizando un nombre mnemotcnico asociado
al nombre de funcin LOCAL-DATA.
Slo hay un rea de datos local asociada a cada trabajo. Incluso si se adquieren
varias estaciones de trabajo mediante un nico trabajo, slo existe un rea de
datos local para dicho trabajo. No hay un rea de datos local para cada estacin
de trabajo.
320
Consideraciones de Archivo
Puede pasar un nombre de archivo como parmetro en un programa COBOL, pero
no podr utilizar dicho archivo en el programa llamado. Si se define un archivo en
un programa de llamada y un programa llamado, se trata como dos archivos distintos. El contenido del rea de registro y el puntero del registro actual en cada
programa son independientes, a menos que los archivos compartidos se especifiquen en mandatos CL. Consulte la publicacin Gua para la Gestin de Datos
para ms informacin acerca de los archivos compartidos.
Las instrucciones siguientes afectan al estado de archivo de manera diferente:
Una instruccin EXIT PROGRAM no cambia el estado de cualquier archivo en
una unidad de ejecucin.
Una instruccin STOP RUN cierra todos los archivos de una unidad de ejecucin.
Ampliacin de IBM
Una instruccin A GOBACK emitida desde un programa principal cierra todos
los archivos de una unidad de ejecucin. Una instruccin GOBACK emitida
desde un subprograma no cambia el estado de ningn archivo en una unidad
de ejecucin.
Fin de Ampliacin de IBM
Una instruccin CANCEL no cambia el estado de ningn archivo en el programa que se cancela. Libera el almacenamiento que contiene informacin
acerca del archivo. Si el programa tiene archivos que se abren cuando se
procesa la instruccin CANCEL, esos archivos se cierran cuando se cancela el
programa. El programa ya no puede seguir utilizando el archivo. Si el programa cancelado se llama de nuevo, el programa considera que el archivo
est cerrado. Si el programa abre el archivo, se establece un nuevo enlace
para dicho archivo. Esto puede hacer que se utilice el almacenamiento auxiliar
del sistema.
321
322
Segmentos de Programa
Hay tres tipos de segmentos de programa: permanente fijo, recubrible fijo e independiente.
Segmentos Fijos
Los segmentos permanentes fijos y los segmentos recubribles fijos componen la
parte fija, la parte de la Divisin de Procedimientos que se trata lgicamente como
si estuviese siempre presente fsicamente en almacenamiento principal. Los
nmeros de segmento de la parte fija han de ser enteros del 0 al 49.
Un segmento permanente fijo queda disponible siempre en su ltimo estado de
utilizacin.
Un segmento recubrible fijo est siempre lgicamente en el almacenamiento principal durante el proceso del programa; por lo tanto, siempre se encuentra disponible en su ltimo estado de utilizacin. Cualquier recubrimiento de uno de esos
segmentos es transparente para el usuario. De este modo, un segmento fijo recubrible es idntico lgicamente a un segmento permanente fijo.
323
Segmentos Independientes
Obviamente, un segmento independiente puede recubrir y ser recubierto por otros
segmentos durante la ejecucin de un programa.
Un segmento independiente queda disponible en su estado inicial la primera vez
que se le transfiere control (explcita o implcitamente) durante la ejecucin de un
programa.
Un segmento independiente queda disponible en su estado inicial durante posteriores transferencias de control cuando:
La transferencia es el resultado de una transferencia implcita de control entre
instrucciones consecutivas que se encuentren en segmentos distintos (es decir,
cuando el control llega al segmento independiente desde el segmento fsicamente anterior).
La transferencia es el resultado de una transferencia implcita desde una instruccin SORT o MERGE en un segmento a un procedimiento de entrada
SORT o un procedimiento de salida SORT/MERGE dentro de un segmento
independiente.
Una transferencia explcita de control se lleva cabo desde una seccin con un
nmero de segmento distinto (como sucede, por ejemplo, durante la transferencia de control en una instruccin PERFORM n TIMES).
Un segmento independiente queda disponible en su ltimo estado de utilizacin
durante posteriores transferencias de control, cuando:
Exceptuando los dos tipos anteriores de transferencias implcitas, tiene lugar
una transferencia implcita desde una seccin con una prioridad diferente
(como, por ejemplo, cuando se devuelve control al segmento independiente
desde un procedimiento Declarativo).
Se obtiene como resultado una transferencia explcita desde una instruccin
EXIT PROGRAM o GOBACK.
Los segmentos independientes han de tener asignados nmeros de segmento del
50 al 99.
Lgica de segmentacin
En un programa segmentado, las secciones se clasifican por un sistema de
nmeros de segmento de acuerdo con los criterios siguientes:
Frecuencia de ReferenciaLas secciones ms utilizadas, o aqullas que han
de estar disponibles en todo momento como referencia, deben estar normalmente dentro de segmentos fijos permanentes. Las secciones que se utilizan con menor frecuencia pueden estar en segmentos fijos recubribles o en
segmentos independientes, segn la lgica del programa.
Frecuencia de UtilizacinCuanto mayor sea la frecuencia con la que se utilice
una seccin, menor ser su nmero de segmento; cuanto menor sea la frecuencia con la que se la referencie, mayor ser su nmero de segmento.
Relaciones LgicasA las secciones que se comunican ms frecuentemente
entre ellas habra que darles nmeros de segmento idnticos.
324
Control de Segmentacin
Excepto para transferencias especficas de control, la secuencia lgica y la
secuencia fsica de instrucciones de programa son iguales. El compilador inserta
cualquier instruccin necesaria para inicializar un segmento. No es necesario
transferir control al principio de un segmento, o al principio de una seccin dentro
de un segmento. En su lugar, el control puede transferirse a cualquier prrafo en
la Divisin de Procedimientos.
La clusula SEGMENT-LIMIT permite que el programador especifique ciertos segmentos permanentes como susceptibles de ser recubiertos por segmentos independientes, sin perder las propiedades lgicas de los segmentos de la parte fija.
El nmero-segmento debe ser un entero con un valor dentro del rango de 1 a 49.
Cuando se especifica la clusula SEGMENT-LIMIT:
Los segmentos permanentes fijos son los que poseen nmeros de segmento
del 0 hasta el nmero de segmento especificado pero sin incluirlo.
Los segmentos recubribles fijos son los que poseen nmeros de segmento
desde el nmero de segmento especificado hasta el 49.
Por ejemplo, si se especifica SEGMENT-LIMIT IS 25, las secciones con nmeros
de segmento del 0 al 24 son segmentos permanentes fijos, y las secciones con
nmeros de segmento del 25 al 49 son segmentos recubribles fijos.
325
SegmentacinDivisin de Procedimientos
En la Divisin de Procedimientos de un programa segmentado, la clasificacin de
secciones se especifica mediante los nmeros de segmento en los encabezamientos de seccin. El nmero de segmento ha de ser un entero del 0 al 99.
Formato
55nomb-seccinSECTION.5%
nombr-segmento
SegmentacinConsideraciones Especiales
Cuando se utiliza la segmentacin, existen una serie de restricciones en las instrucciones ALTER, PERFORM, SORT y MERGE. Tambin hay consideraciones
especiales para los programas de llamada y programas llamados.
Instruccin ALTER
No debe hacerse referencia a una instruccin GO TO en un segmento independiente por medio de una instruccin ALTER en un segmento distinto. Todas las
otras utilizaciones de la instruccin ALTER son vlidas y se realizan, incluso si la
instruccin GO TO a la que se haga referencia est en un segmento recubrible fijo.
Instruccin PERFORM
Una instruccin PERFORM en la parte fija puede tener en su rango, adems de
cualquier procedimiento Declarativo, cuya ejecucin tenga lugar dentro de ese
rango, slo uno de los elementos siguientes:
Secciones y/o prrafos en la parte fija
Secciones y/o prrafos dentro de un nico segmento independiente.
Una instruccin PERFORM en un segmento independiente puede tener dentro de
su rango, adems de los procedimientos Declarativos, cuyo proceso tenga lugar
dentro de ese rango, slo uno de los elementos siguientes:
Secciones y/o prrafos en la parte fija
Secciones y/o prrafos contenidos totalmente en el mismo segmento independiente que la instruccin PERFORM.
326
327
328
329
F3=Salir F4=Solicitud
F24=Ms teclas
F5=Renovar
\LIBL
Nombre
Nombre, \LIBL, \CURLIB
F12=Cancelar
Final
F13=Cmo util. esta pantalla
55STRCBLDBG5%
PGM(nombre-prgm.)
\LIBL/
\CURLIB/
nombre-bibl./
Se permite utilizar este mandato tanto en procesos interactivos y por lotes como en
programas CL.
Interfaz de Programacin de Uso General
Se puede utilizar este mandato en QCMDEXC.
Fin de Interfaz de Programacin de Uso General
330
F3=Salir F4=Solicitud
F24=Ms teclas
F5=Renovar
Nombre
Nombre, \LIBL, \CURLIB
\LIBL
F12=Cancelar
Final
F13=Cmo util. esta pantalla
55ENDCBLDBG 5%
PGM( nombre-prgm.)
\LIBL/
\CURLIB/
nombre-bibl./
Se permite utilizar este mandato tanto en procesos interactivos y por lotes como en
programas CL.
Interfaz de Programacin de Uso General
Se puede utilizar este mandato en QCMDEXC.
Fin de Interfaz de Programacin de Uso General
El valor por omisin para el conmutador en tiempo de ejecucin se desactiva.
331
55USEDEBUGGINGidentific.-15%
FOR
ON ALL
REFERENCES OF
nomb-arch-1
nombre-proced.-1
ALL PROCEDURES
332
Observe que la declarativa USE FOR DEBUGGING provoca que se ignoren todas
las instrucciones subsiguientes hasta llegar a una instruccin USE AFTER
EXCEPTION/ERROR vlida o a un delimitador END DECLARATIVES. Es posible
que programas enteros se omitan por esta razn.
La aparicin de una instruccin en una seccin de depuracin no provoca la ejecucin automtica de dicha seccin.
Una seccin de depuracin para un operando especfico se procesa una sola vez
como resultado de la ejecucin de una nica instruccin, sin importar cuntas
veces se especifica el operando en la instruccin. Una excepcin a esta regla es
que cada especificacin de un identificador subindexado o indexado en la que los
subndices o ndices sean distintos, provoca la invocacin de la Declarativa de
depuracin. Para una instruccin PERFORM que cause la ejecucin repetida de
un procedimiento, cualquier nombre del procedimiento asociado a una seccin
Declarativa de depuracin, se ejecuta una vez por cada ejecucin del procedimiento.
A efectos de depuracin, cada aparicin por separado de un verbo imperativo
dentro de una instruccin imperativa comienza una instruccin distinta.
Las instrucciones que aparecen fuera de las secciones de depuracin no deben
hacer referencia a los nombres de procedimientos definidos dentro de las secciones de depuracin.
Excepto para la propia sentencia USE FOR DEBUGGING, las instrucciones dentro
de una seccin Declarativa de depuracin slo puede hacer referencia a nombres
de procedimientos definidos en un procedimiento USE distinto mediante la instruccin PERFORM. Los nombres de Procedimientos dentro de las secciones Declarativas de depuracin no deben aparecer en las sentencias USE FOR
DEBUGGING.
En la Tabla 7 se definen los puntos en los que se ejecutan los procedimientos
USE FOR DEBUGGING durante el tiempo de ejecucin. El identificador-n, el
nombre de archivo-n y el nombre de procedimiento-n hacen referencia a la primera
y a todas las especificaciones posteriores de ese tipo de operando en una sentencia USE FOR DEBUGGING. Cualquier identificador, nombre de archivo, o
nombre de procedimiento en particular puede aparecer en una sola sentencia USE
FOR DEBUGGING, y slo una vez en esa sentencia.
Un identificador en una sentencia USE FOR DEBUGGING:
Debe especificarse sin la subindexacin o la indexacin necesaria normalmente si contiene una clusula OCCURS o est subordinada a una entrada
que contenga una clusula OCCURS. (Una instruccin SEARCH o SEARCH
ALL que haga referencia a uno de esos identificadores, no invoca a los procedimientos USE FOR DEBUGGING.)
No debe ser un registro especial.
Cuando se especifica ALL PROCEDURES en una sentencia USE FOR
DEBUGGING, no deben especificarse el nombre de procedimiento-1, el nombre de
procedimiento-2, el nombre de procedimiento-3, etc., en ninguna sentencia USE
FOR DEBUGGING. La frase ALL PROCEDURES slo puede especificarse una
vez en un programa.
333
Cuando se utiliza una operando USE FOR DEBUGGING como calificador, dicha
referencia en el programa no activa los procedimientos de depuracin.
Las referencias al registro especial DEBUG-ITEM slo se pueden realizar desde
dentro de un procedimiento Declarativo de depuracin.
Tabla 7. Ejecucin de las Declarativas de Depuracin
Operando USE FOR
DEBUGGING
identificador-n
ALL REFERENCES OF
identificador-n
nombre-archivo-n
nombre-procedimiento-n
ALL PROCEDURES
Nota: Los operandos sobre los que acte pero no se nombren explcitamente en
las instrucciones tales como ADD, MOVE, o SUBTRACT
CORRESPONDING nunca causan la activacin de un procedimiento USE
FOR DEBUGGING cuando se ejecutan dichas instrucciones. Si se especifica el identificador-n en una frase que no se procesa, no se ejecuta la
seccin de depuracin asociada.
334
1 DEBUG-ITEM.
2 DEBUG-LINE
2 FILLER
2 DEBUG-NAME
2 FILLER
2 DEBUG-SUB-1
2 FILLER
2 DEBUG-SUB-2
2 FILLER
2 DEBUG-SUB-3
2 FILLER
2 DEBUG-CONTENTS
PICTURE
PICTURE
PICTURE
PICTURE
PICTURE
LEADING
PICTURE
PICTURE
LEADING
PICTURE
PICTURE
LEADING
PICTURE
PICTURE
IS X(6).
IS X VALUE SPACE.
IS X(3).
IS X VALUE SPACE.
IS S9999 SIGN IS
SEPARATE CHARACTER.
IS X VALUE SPACE.
IS S9999 SIGN IS
SEPARATE CHARACTER.
IS X VALUE SPACE.
IS S9999 SIGN IS
SEPARATE CHARACTER.
IS X VALUE SPACE.
IS X(n).
El registro especial DEBUG-ITEM proporciona informacin acerca de las condiciones que provocan la ejecucin de una seccin de depuracin.
Antes de que se procese cada seccin de depuracin, DEBUG-ITEM se llena de
espacios. El contenido de los subcampos DEBUG-ITEM se actualiza segn las
reglas que rige la instruccin MOVE, con una excepcin: DEBUG-CONTENTS se
actualiza como si el movimiento fuera un movimiento alfanumrico a alfanumrico
sin conversin de datos desde una forma de representacin interna a otra.
Despus de la actualizacin, cada campo contiene:
DEBUG-LINE: El nmero de instruccin generado por el compilador, ajustado
a la derecha y rellenado con ceros por la izquierda. Por ejemplo, 000112.
DEBUG-NAME: Los primeros 30 caracteres del nombre causante de la ejecucin de la seccin de depuracin. Todos los calificadores se separan mediante
la palabra OF (no se introducen subndices o ndices en DEBUG-NAME).
DEBUG-SUB-1, DEBUG-SUB-2, DEBUG-SUB-3: Si DEBUG-NAME est
subindexado o indexado, el nmero de aparicin de cada nivel se introduce en
el DEBUG-SUB-n correspondiente. Si el artculo no est subindexado o
indexado, estos campos permanecen con espacios en blanco.
DEBUG-CONTENTS: Los datos se mueven a DEBUG-CONTENTS tal como
se muestra en la Tabla 8. DEBUG-CONTENTS tiene el mismo tamao que el
identificador ms grande del programa.
335
DEBUG-LINE
Contiene el nmero
de la instruccin
COBOL
que hace referencia
a
identificador-n
Contenido de
DEBUG-NAME
Contenido de
DEBUG-CONTENTS
identificador-n
identificador-n
nombre-archivo-n
nombre-archivo-n
nombre-archivo-n
instruccin ALTER
nombreprocedimiento-n
nombre-procedimiento-n en la
frase TO PROCEED TO
GO TO nombreprocedimiento-n
instruccin GO TO
nombreprocedimiento-n
nombreprocedimiento-n en
SORT/MERGE
INPUT/OUTPUT
PROCEDURE
instruccin
SORT/MERGE
nombreprocedimiento-n
Transferencia de
control de la instruccin PERFORM
Esta instruccin
PERFORM
nombreprocedimiento-n
PERFORM LOOP
nombreprocedimiento en un
procedimiento USE
Instruccin causante
de la ejecucin del
procedimiento USE
nombreprocedimiento-n
USE PROCEDURE
Instruccin anterior
procesada en un procedimiento secuencial
previo (vase nota
adjunta)
nombreprocedimiento-n
FALL THROUGH
Primera entrada en el
primer procedimiento
no declarativo
Nmero de lnea de
la primera instruccin
del procedimiento
Primer nombre de
procedimiento no
declarativo
START PROGRAM
336
Lneas de depuracin
Las lneas de depuracin pueden ayudar a determinar la causa de un error. Una
lnea de depuracin es cualquier lnea en un programa fuente con una D codificada
en la columna 7 (el rea de continuacin). Si una lnea de depuracin slo contiene espacios en blanco en el rea A y B, se considera una lnea en blanco.
Cada lnea de depuracin debe escribirse de tal forma que el resultado sea un
programa sintcticamente correcto, ya sea mediante la compilacin de las lneas
de depuracin o mediante una correccin sintctica, aunque se traten como documentacin.
Se permiten lneas de depuracin sucesivas. Las lneas de depuracin pueden
continuarse. Sin embargo, cada lnea de continuacin debe contener una D en la
columna 7, y la serie de caracteres no debe partirse en dos lneas.
Las lneas de depuracin slo pueden especificarse despus del prrafo
OBJECT-COMPUTER.
Cuando se especifica la clusula WITH DEBUGGING MODE en el prrafo
SOURCE-COMPUTER, se compilan todas las lneas de depuracin como parte del
programa objeto.
Cuando se omite la clusula WITH DEBUGGING MODE, se comprueba la sintaxis
de las lneas de depuracin, pero se tratan como documentacin.
337
338
339
&
SEG
,2
&
340
Ncleo
1 NUC 1,2
E-S Secuencial
1 SEQ 1,2
E-S Relativa
1 REL 0,2
E-S Indexada
1 INX 0,2
Comunicacin
Entre programas
1 IPC 1,2
Permite que un programa COBOL comunique con otros programas mediante transferencias de control y acceso a elementos
de datos comunes.
Clasificacin-Fusin
1 SRT 0,1
Manipulacin del
Texto Fuente
1 STM 0,2
Transcriptor
de informes
0 RPW 0,1
Comunicaciones
0 COM 0,2
Permite acceder, procesar, y crear mensajes o partes de mensajes; tambin permite la comunicacin entre un Sistema de
Control de Mensajes con dispositivos de comunicaciones locales
y remotos.
Depuracin
2 DEB 0,2
Segmentacin
2 SEG 0,2
341
342
Mensajes COBOL/400
Este apndice proporciona una descripcin general de los mensajes que IBM suministra con el programa bajo licencia COBOL/400.
Mensajes Interactivos
En un entorno interactivo, los mensajes se visualizan en la pantalla de la estacin
de trabajo. Pueden aparecer en la pantalla actual como resultado de la ejecucin
del programa o como respuesta a las entradas introducidas desde la lnea de mandatos, mens, pantalla de entrada de mandatos o Herramientas para el Desarrollo
de Aplicaciones (Appl Dev Tools). Los mensajes tambin pueden aparecer si se
solicitan mediante un mandato de visualizacin o de una opcin del men.
Los mensajes para el programa bajo licencia COBOL/400 empiezan con un prefijo
LSC, LBE, o LBL.
El comprobador de sintaxis COBOL/400 emite los mensajes LSC cuando se utiliza
el Programa de Utilidad de Entrada Fuente (SEU) para introducir el fuente
COBOL/400. Por ejemplo, se visualiza la pantalla siguiente despus de introducir
incorrectamente el nombre del programa en el prrafo PROGRAM-ID.
Columna . . . :
1 71
Editar
XMPLIB/QLBLSRC
SEU==>
TESTPR
FMT CB ......-A+++B+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
\\\\\\\\\\\\\\\ Inicio de datos \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
.1
IDENTIFICATION DIVISION.
.2
PROGRAM-ID. #TESTPR.
.7
ENVIRONMENT DIVISION.
.9
SOURCE-COMPUTER. IBM-AS4.
\\\\\\\\\\\\\\\\\\ Fin de datos \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
343
F12=Cancelar
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
:
:
:
:
:
LBE72
INQUIRY
3/4/9
QLREXHAN
\EXT
Gravedad . . . . . . :
99
Hora envo . . . . . :
Instruccin . . . . :
Instruccin . . . . :
14:37:15
Mensaje . . . . :
Mensaje CPF411 en XMPLDUMP en COBOLEX (C D F).
Causa . . . . . :
Se detect el mensaje CPF411 en la instruccin COBOL. OPEN
(instruccin MI 7E) en programa XMPLDUMP en COBOLEX.
Recuperacin. . :
Entre una G para continuar el programa en el siguiente
instruccin MI, o C si no desea vuelco, una D si desea vuelco de los
identificadores COBOL o una F si desea volcar los identificadores COBOL
y las variable generadas por el compilador. El texto de mensaje para CPF411
es el siguiente: archivo SALES en biblioteca \LIBL no encontrado o archivo
de datos en lnea perdido.
Elecciones posibles de respuesta al mensaje. . . . . . . . . . . . . :
C -- No se produce ningn vuelco con formato
D -- Se produce un vuelco de los identificadores COBOL
F -- Se produce un vuelco de todas las variables
G -- Para continuar el programa en la siguiente instruccin MI.
Final
Pulse Intro para continuar.
F3=Salir
F12=Cancelar
Los mensajes LBE 7900 a 7999 se utilizan como encabezamientos para la informacin impresa durante un vuelco con formato COBOL/400.
344
Mensajes de Compilacin
Los mensajes LBL se imprimen en el listado del programa cuando se detectan
errores durante la compilacin del programa. Los mensajes LBL incluyen el
mensaje emitido cuando se solicita la sealizacin de Federal Information
Processing Standard (FIPS); para obtener ms informacin acerca de los mensajes
FIPS, vea la pgina 347 de este apndice.
Listados de Programas
En la salida del compilador, el listado de mensajes COBOL/400 sigue al listado
fuente. El listado de mensajes COBOL/400 muestra el identificador del mensaje, la
gravedad, el texto, normalmente la ubicacin del error y el resumen de los mensajes.
Para obtener ms informacin acerca de los Listados de Programas, consulte el
apartado Listado Fuente en la pgina 42.
Respuestas a Mensajes
En un entorno interactivo, se indica un mensaje mediante una o varias de las condiciones siguientes:
Un mensaje escueto (llamado texto de primer nivel) en la lnea de mensajes
Una imagen invertida resaltando el campo de entrada con error
Un teclado bloqueado
El sonido de una alarma (si se instal la opcin de alarma).
Los siguiente prrafos describen brevemente algunos mtodos de respuestas a
mensajes de error; hay ms informacin disponible en la publicaciones Gua para
Nuevos Usuarios y Herramientas para el Desarrollo de Aplicaciones.
Si la correccin necesaria es obvia desde la pantalla inicial, puede pulsar la tecla
Restaurar Error (si el teclado est bloqueado), introduzca la informacin correcta y
contine el trabajo.
Si el mensaje indica que debe elegir una respuesta (como por ejemplo C para cancelar, D para volcar los identificadores COBOL, F para volcar todas las variables, o
G para reanudar el proceso en la siguiente instruccin COBOL), las opciones de
respuesta se muestran entre parntesis en el texto de mensaje de primer nivel.
Para ver un ejemplo, consulte la Figura 110 en la pgina 344.
Si la informacin en la pantalla de informacin inicial no ofrece los suficientes datos
para manejar el error, puede pulsar la tecla AYUDA (despus de colocar el cursor
en la lnea de mensajes, si es necesario) para obtener una pantalla de segundo
nivel con informacin adicional que permite solucionar este error. Para volver a la
pantalla inicial, pulse la tecla Intro; luego pulse la tecla Restaurar Error (si el
teclado est bloqueado) y efecte la correccin o respuesta.
345
Descripcin
LBE7000 al LBE7199
LBE7200 al LBE7999
LBE9001
LBL0000 al LBL0999
LBL1000 al LBL1999
Mensajes de Escape
Mensajes en Tiempo de Ejecucin
Mensaje de Escape
Mensajes con gravedad menor a 30
Mensajes con gravedad superior o igual a
30
Mensajes de Sealizador FIPS
Mensajes de Sealizacin SAA
Mensajes del controlador de sintaxis
LBL8000 al LBL8799
LBL8800 al LBL8899
LSC0000 al LSC1999
Niveles de Gravedad
El programa bajo licencia COBOL/400 proporciona los siguientes niveles de gravedad de mensajes:
Gravedad Significado
346
00
10
20
Error: Este nivel indica que se ha producido un error, pero el compilador est efectuando una operacin que podra producir el cdigo
deseado.
30
40
50
Irrecuperable: Este nivel indica generalmente un error del compilador que provoca la finalizacin del proceso.
99
Accin: Se requiere alguna accin manual, como por ejemplo introducir una respuesta, cambiar los formularios de impresora o sustituir
los disquetes.
Si es preciso modificar y sustituir un mensaje suministrado por IBM en su archivo de mensajes, pngase en contacto con su
representante de servicio.
Apndice D. Mensajes COBOL/400
347
&
SEG
,2
&
Tabla 10 (Pgina 1 de 2). Estndar 1985 American National COBOL y Niveles FIPS 1986
Nombre de
Mdulo
1985 ANSI
FIPS
Superior
FIPS
Intermedio
FIPS
Inferior
Ncleo
2 NUC 1,2
1 NUC 1,2
1 NUC 1,2
E-S Secuencial
2 SEQ 1,2
1 SEQ 1,2
1 SEQ 1,2
E-S Relativa
2 REL 0,2
1 REL 0,2
0 REL 0,2
E-S Indexada
2 INX 0,2
1 INX 0,2
0 INX 0,2
Manipulacin del
Texto Fuente
2 STM 0,2
1 STM 0,2
0 STM 0,2
348
Tabla 10 (Pgina 2 de 2). Estndar 1985 American National COBOL y Niveles FIPS 1986
Nombre de
Mdulo
1985 ANSI
FIPS
Superior
FIPS
Intermedio
FIPS
Inferior
1 SRT 0,1
1 SRT 0,1
0 SRT 0,1
2 IPC 1,2
1 IPC 1,2
1 IPC 1,2
Transcriptor de
Informes
0, o 1 RPW 0,1
0, o 1 RPW 0,1
0, o 1 RPW 0,1
Segmentacin
Depuracin
Comunicaciones
ClasificacinFusin
Comunicacin
Entre Programas
Sealizacin SAA
Puede escoger la realizacin de la sealizacin SAA para determinar si las funciones COBOL/400 que utiliza son portables o no a otros entornos SAA COBOL.
La sealizacin se realiza en aquellas funciones COBOL/400 que se encuentran
fuera de SAA COBOL, como por ejemplo:
Ampliaciones COBOL/400
Lmites del compilador COBOL/400
Palabras reservadas no de SAA
Opciones del compilador.
De esta manera, puede escribir programas que se ajusten a la definicin COBOL
SAA.
Como ejemplo de sealizacin SAA en un listado de compilador, consulte la
Figura 12 en la pgina 48. Para realizar la sealizacin SAA mediante el mandato
CRTCBLPGM CL, especifique SAAFLAG(*FLAG). Para realizar la sealizacin
SAA mediante la instruccin PROCESS, especifique SAAFLAG.
Al compilar un programa para que se ajuste a la definicin SAA mediante el
mandato CRTCBLPGM, especifique lo siguiente:
OPTION(\QUOTE \NOSEQUENCE \NONUMBER)
GENOPT(\CRTF \DUPKEYCHK \SYNC)
SAAFLAG(\FLAG)
Si utiliza la instruccin PROCESS, especifique lo siguiente:
QUOTE, NOSEQUENCE, NONUMBER, CRTF,
DUPKEYCHK, SYNC, SAAFLAG.
349
350
351
EL pseudotexto-1 de la instruccin COPY no debe estar nicamente compuesto por una coma o por dos puntos.
Un tem de datos que aparece en la frase USING de la cabecera de la Divisin
de Procedimiento no debe tener una clusula REDEFINES en la entrada de
descripcin de datos.
Si no se especifica la frase FOOTING, no existe ninguna condicin de fin de
pgina independiente de la condicin de desbordamiento de pgina.
La frase NO REWIND no puede especificarse en una instruccin CLOSE que
tenga una frase REEL/UNIT.
Las instrucciones CANCEL y STOP RUN cierran todos los archivos abiertos.
Cuando un tem receptor es un elemento de datos de longitud variable y contiene el objeto de la frase DEPENDING ON, se utilizar la longitud mxima del
elemento.
Dentro de la frase VARYING ... AFTER de la instruccin PERFORM, el
identificador-2 se aumenta antes de establecer el identificador-5.
Cualquier subindexacin para el identificador-4 de la frase REMAINDER de la
instruccin DIVIDE se evala despus de que el resultado de la operacin
DIVIDE se haya almacenado en el identificador-3 de la frase GIVING.
Las frases ADVANCING PAGE y END-OF-PAGE no deben estar en la misma
instruccin WRITE.
La serie de caracteres de PICTURE de un tem alfanumrico slo puede contener el smbolo A. No se permite ninguna edicin para la categora de datos
alfabticos.
Nota: Un carcter alfabtico es una letra o un carcter en blanco.
Cuando se hace referencia a un tem de datos descritos por una PICTURE y
dicho elemento contiene una P, se considera que las posiciones del dgito
especificadas por P contienen ceros en las operaciones siguientes:
Toda operacin que precise un operando emisor de tipo numrico
Una instruccin MOVE donde el operando emisor sea numrico y cuya
serie de caracteres PICTURE contenga el smbolo P
Una instruccin MOVE donde el operando emisor sea numrico editado y
cuya serie de caracteres PICTURE contenga el smbolo P, y el operando
sea numrico o numrico editado.
Una operacin de comparacin donde ambos operandos sean numricos.
El literal en la clusula CURRENCY SIGN no puede ser una constante figurativa.
Si la instruccin COPY aparece en una entrada de comentarios, se considera
parte de la entrada de comentarios.
Se definen los siguientes casos de exponenciacin:
Si una expresin con un valor cero se eleva a una potencia negativa o
igual a cero, se produce una condicin de error de tamao.
Si la evaluacin de la exponenciacin da un nmero real a la vez positivo y
negativo, se devuelve el nmero positivo.
352
353
354
Literales DBCS: El compilador COBOL reconoce los caracteres DBCS en los literales DBCS cuando se utiliza la opcin GRAPHIC en la instruccin PROCESS.
Nota: La opcin GRAPHIC en la instruccin PROCESS no debe confundirse con
el valor *GRAPHIC del parmetro CVTOPT del mandato CRTCBLPGM ni
con la opcin CVTGRAPHIC en la instruccin PROCESS, que se utilizan
Copyright IBM Corp. 1994
355
para especificar los datos grficos de doble byte desde una descripcin
DDS. Para obtener ms informacin sobre cmo especificar datos grficos,
consulte el apartado Campos Grficos DBCS en la pgina 139.
Literales DBCS/SBCS: El compilador COBOL reconoce caracteres DBCS en literales DBCS/SBCS (mixtos), cuando se est en un sistema DBCS y no se especifica ni la opcin GRAPHIC ni la instruccin PROCESS.
356
Otras Consideraciones
Comillas: Aunque el comentario anterior utiliza el trmino comillas para describir el
carcter que identifica un literal, el carcter que realmente se ha utilizado puede
variar segn la opcin especificada en el mandato CL CRTCBLPGM o en la instruccin PROCESS. Si se especifica la opcin APOST, se utiliza un apstrofe (').
De lo contrario, se utilizan las comillas ("). En este apndice, las comillas hacen
referencia tanto a los apstrofes como a las comillas. El carcter que elija no
afecta a las reglas que especifican el literal.
Caracteres de Desplazamiento: Los caracteres de desplazamiento a teclado
ideogrfico y a teclado estndar separan los caracteres EBCDIC de los caracteres
DBCS. Forman parte de los literales DBCS y DBCS/SBCS. Por lo tanto, los
caracteres de codificacin de desplazamiento participan en todas las operaciones
cuando aparecen en los literales DBCS o DBCS/SBCS.
357
PIC X(12)
VALUE "EK1K2K3F
Clusula ALPHABET-NAME
Clusula CURRENCY SIGN
Clusula ASSIGN
Clusula CLASS
Instruccin CALL
Instruccin CANCEL
Nota: No puede utilizar los caracteres DBCS para palabras o nombres COBOL.
Consulte la publicacin COBOL/400 Reference para obtener ms informacin sobre cmo dar formato a los nombres del sistema COBOL, palabras reservadas y palabras definidas por el usuario, como por ejemplo
nombres de datos y nombres de archivos.
358
Divisin de Identificaciones
Se pueden colocar entradas de comentarios que contengan caracteres DBCS en
cualquier parte de la Divisin de Identificaciones excepto en el prrafo
PROGRAM-ID. El nombre del programa especificado en el prrafo PROGRAM-ID
debe ser alfanumrico.
Divisin de Entornos
Seccin de Configuracin
Es posible utilizar los caracteres DBCS en las entradas de comentarios slo en el
prrafo de la Seccin de Configuracin. Todos los nombres de funcin, nombres
mnemotcnicos, nombres de condicin y nombres del alfabeto deben especificarse
con los caracteres alfanumricos. Para las entradas SOURCE-COMPUTER y
OBJECT-COMPUTER, utilice el nombre del sistema alfanumrico:
IBM-AS400
No es posible utilizar los literales DBCS o DBCS/SBCS en la Seccin de Configuracin. En su lugar, utilice los literales alfanumricos para definir un nombre del
alfabeto y el literal en la clusula CURRENCY SIGN del prrafo SPECIAL-NAMES.
No hay alfabeto DBCS. En su lugar, utilice el juego de caracteres EBCDIC.
Seccin Entrada-Salida
Especifique todos los nombres de datos, nombres de archivos y nombres de asignacin que utilicen caracteres alfanumricos. Puede utilizar los caracteres DBCS
en los comentarios.
Para archivos indexados, el nombre de datos en la clusula RECORD KEY puede
referirse a un tem de datos DBCS o DBCS/SBCS dentro de un registro. El
nmero de campos en el registro, ms el nmero de posiciones que ocupa la clave
del registro, no puede ser superior a 120.
Nota: Cada carcter DBCS ocupa dos posiciones y los caracteres de control de
desplazamiento ocupan cada uno una posicin. Asegrese de que la descripcin de datos de la clave y la posicin de la clave en el archivo coincidan con las especificadas en el momento de creacin del archivo.
No puede utilizar datos DBCS y DBCS/SBCS como RELATIVE KEY en los
archivos relativos.
359
Divisin de Datos
Seccin de Archivos
Para la entrada FD (Descripcin de Archivo), se puede utilizar tems de datos
DBCS o DBCS/SBCS o literales en la clusula VALUE OF. La clusula DATA
RECORDS puede referirse slo a tems de datos. Debido a que el compilador
COBOL/400 trata la clusula VALUE OF y la clusula DATA RECORDS en la
Seccin de Archivos como documentacin, ninguna clusula tiene efecto alguno
cuando ejecuta el programa. No obstante, el compilador COBOL comprueba todos
los literales de la clusula VALUE OF para asegurarse de que son vlidos.
Para cintas magnticas, el sistema slo puede leer caracteres DBCS o bien grabar
a caracteres DBCS a la cinta en el formato EBCDIC. El sistema no puede realizar
funciones de cinta que involucren una cinta con formato ASCII. Defina el nombre
del alfabeto en la clusula CODE-SET como NATIVE. Utilice los caracteres
alfanumricos para especificar el nombre del alfabeto.
Clusula OCCURS: Utilice esta clusula para definir las tabla para el almacenamiento de datos DBCS o DBCS/SBCS. Si especifica la frase
ASCENDING/DESCENDING KEY, el COBOL asume que los contenidos de la tabla
estn en la secuencia de clasificacin EBCDIC del programa. Los caracteres de
control de desplazamiento en los datos DBCS y DBCS/SBCS forman parte del
orden de clasificacin.
Para obtener ms informacin sobre el manejo de tablas que contienen caracteres
DBCS, consulte el apartado Manejo de TablasInstruccin SEARCH en la
pgina 367.
360
Divisin de Procedimientos
Declarativas
Un identificador en la sentencia USE FOR DEBUGGING de la seccin
DECLARATIVES puede referirse a un tem de datos DBCS o DBCS/SBCS.
No puede utilizar los caracteres DBCS para los nombres de archivos o de procedimientos en la sentencia USE FOR DEBUGGING.
361
Expresiones Condicionales
Debido a que los nombres de condicin (entradas de nivel 88) pueden referirse a
los tems de datos que contienen caracteres DBCS, puede utilizar la condicin de
nombre de condicin para comprobar estos datos. (Consulte el apartado Clusula
VALUE en la pgina 361). Siga las normas que se listan en el manual
COBOL/400 Reference para conocer mejor el uso de las variables condicionales y
de los nombres de condicin.
Puede utilizar los tems de datos DBCS o DBCS/SBCS o los literales como
operandos en una condicin de relacin. Debido a que COBOL trata los datos
DBCS como alfanumricos, todas las comparaciones se producen de acuerdo con
las normas de los operandos alfanumricos. Tenga siempre presente que:
El sistema no reconoce el contenido mixto.
El sistema utiliza los cdigos de desplazamiento en las comparaciones de
datos DBCS y DBCS/SBCS.
El sistema compara los datos utilizando la secuencia de clasificacin EBCDIC,
o una secuencia definida por el usuario.
En una comparacin de tem DBCS o DBCS/SBCS con tems similares de
tamao desigual, se llena el tem ms pequeo de la derecha con espacios
EBCDIC.
Consulte la seccin Prrafo SPECIAL-NAMES en el manual COBOL/400
Reference para obtener ms informacin.
Puede utilizar las condiciones de clase y de estado de conmutador tal y como se
describe en la publicacin COBOL/400 Reference.
Instrucciones de Entrada/Salida
Instruccin ACCEPT: Los datos de entrada recibidos desde un dispositivo utilizando la instruccin ACCEPT de Formato 1 pueden incluir datos DBCS o
DBCS/SBCS. Todos los datos DBCS y DBCS/SBCS deben identificarse mediante
la sintaxis adecuada. Los datos de entrada, incluyendo los caracteres de control
de desplazamiento, sustituyen los contenidos existentes del identificador. COBOL
no realiza la edicin ni la comprobacin de error en los datos.
Si utiliza la instruccin ACCEPT de Formato 3 para obtener informacin
OPEN-FEEDBACK acerca del archivo, dicha informacin incluye un campo que
muestra si el archivo contiene datos DBCS o DBCS/SBCS.
La informacin que se recibe desde el rea de datos local por medio de una instruccin ACCEPT de Formato 4 puede incluir series de caracteres DBCS o
DBCS/SBCS. La informacin recibida sustituye los contenidos existentes. COBOL
no realiza ninguna edicin o comprobacin de errores. Esto tambin se aplica a la
informacin recibida desde el rea de datos PIP por medio de una instruccin
ACCEPT de Formato 5.
Al utilizar la instruccin ACCEPT de Formato 6, se pueden obtener los atributos de
una pantalla de estacin de trabajo y de su teclado. Para estaciones de pantalla
que pueden visualizar caracteres DBCS, el sistema establece el valor apropiado en
el tem de datos ATTRIBUTE-DATA. No se puede utilizar los caracteres DBCS
para nombrar un dispositivo.
362
|
|
|
|
Debido a que COBOL ignora las caractersticas del dispositivo en que se visualizan
los datos, debe asegurarse de que los datos DBCS y DBCS/SBCS sean correctos.
Es posible que sea preciso especificar la opcin de visualizacin ampliada
*NOUNDSPCHAR (o la opcin del parmetro de instruccin del proceso equivalente) cuando se compile el programa, para asegurarse de que la estacin de
trabajo puede manejar correctamente los datos DBCS.
Nota: ALL es una opcin vlida para literales mixtos.
Si utiliza una instruccin DISPLAY (Formato 3) ampliada para la salida de la
estacin de trabajo a nivel de campo, debe asegurarse de que los datos DBCS no
se dividan entre lneas.
Instruccin READ: Puede utilizar los tems de datos DBCS o DBCS/SBCS como
la RECORD KEY para un archivo indexado. Consulte el apartado Seccin
Entrada-Salida en la pgina 359 para obtener ms informacin.
Frase INTO: Es posible leer un registro de un tem de datos DBCS o DBCS/SBCS
mediante la frase INTO. Esta frase provoca que se realice una instruccin MOVE
(pero sin la opcin CORRESPONDING). El compilador mueve los datos DBCS y
DBCS/SBCS de la misma manera que mueve los datos alfanumricos. No
asegura que estos datos sean vlidos.
Instruccin REWRITE: Utilice la frase FROM de esta instruccin para transferir
datos DBCS o DBCS/SBCS desde un tem de datos DBCS o DBCS/SBCS a un
registro existente. La frase FROM provoca que ambos tipos de datos se muevan
de la misma manera que la frase INTO en la instruccin READ. (Consulte el apartado Instruccin READ.)
Instruccin START: Si utiliza caracteres DBCS en la clave de un archivo
indexado, especifique un tem de datos correspondientes en la frase KEY de la
instruccin START.
Debe cumplirse una de las condiciones siguientes:
El elemento de datos debe ser el mismo que el tem de datos especificado en
la clusula RECORD KEY del prrafo FILE-CONTROL.
El tem de datos tiene el mismo primer carcter que la clave de registro y no
es ms largo que la clave de registro.
Puede especificar los operadores vlidos (como por ejemplo EQUAL, GREATER
THAN, NOT LESS THAN) en la frase KEY. El sistema puede seguir la secuencia
de clasificacin EBCDIC o la secuencia definida por el usuario.
363
Instruccin WRITE: Utilice la frase FROM de esta instruccin para grabar los
datos DBCS o DBCS/SBCS en un registro. Esta frase mueve los datos de la
misma manera que la instruccin REWRITE. (Consulte el apartado Instruccin
REWRITE).
Debe incluir los caracteres de control de desplazamiento cuando grabe los datos
en un archivo de dispositivo.
SUBJECT-ITEM
DBCS-CHARACTERS
5 SHIFT-OUT
5 DBCS-CHARACTER-1
5 DBCS-CHARACTER-2
5 SHIFT-IN
PICTURE X(5).
VALUE "EK1K2F".
PICTURE X.
PICTURE XX.
PICTURE XX.
PICTURE X.
364
SUBJECT-FIELD
TALLY-FIELD
SHIFTS
5 SHIFT-OUT
5 SHIFT-IN
PICTURE X(5).
PICTURE 9(3) COMP.
VALUE "EF".
PICTURE X.
PICTURE X.
365
contengan caracteres de control de desplazamiento, y utilcelos como identificadores en la frase DELIMITED BY. Observe con detenimiento los ejemplos
siguientes para comprender mejor cmo se lleva a cabo lo expuesto anteriormente.
Utilice la variable POINTER para continuar examinando los subcampos del campo
emisor.
Despus de que el sistema realice la operacin UNSTRING, puede comprobar los
delimitadores almacenados mediante las frases DELIMITER IN con los caracteres
de control de desplazamiento para ver qu subcampos contienen caracteres DBCS
y cules contienen caracteres alfanumricos.
El ejemplo siguiente muestra cmo puede establecer los campos para preparar la
operacin no de serie en la serie de caracteres que contienen datos DBCS/SBCS:
1
1
SUBJECT-FIELD
FILLER.
5 UNSTRING-TABLE
1 RECEIVER
1 DELIMTR
1 COUNTS
SHIFTS
5 SHIFT-OUT
5 SHIFT-IN
PICTURE X(4)
OCCURS 4 TIMES.
PICTURE X(4).
PICTURE X.
PICTURE 99 COMP.
VALUE "EF".
PICTURE X.
PICTURE X.
DELIMITED BY SHIFT-OUT
OR SHIFT-IN
INTO RECEIVER (1) DELIMITER IN DELIMTR (1)
COUNT
IN COUNTS (1)
INTO RECEIVER (2) DELIMITER IN DELIMTR (2)
COUNT
IN COUNTS (2)
INTO RECEIVER (3) DELIMITER IN DELIMTR (3)
COUNT
IN COUNTS (3)
INTO RECEIVER (4) DELIMITER IN DELIMTR (4)
COUNT
IN COUNTS (4)
ON OVERFLOW PERFORM UNSTRING-OVERFLOW-MESSAGE.
Esta instruccin UNSTRING divide una serie de caracteres en partes alfanumricas
y DBCS. Teniendo en cuenta que los datos en la serie de caracteres son vlidos,
un valor del delimitador de desplazamiento a teclado ideogrfico indica que el
campo receptor correspondiente contiene datos alfanumricos, mientras que un
valor de desplazamiento a teclado estndar indica que el campo receptor correspondiente tiene datos DBCS. Puede comprobar los tems de datos COUNT para
determinar si cada campo receptor ha recibido todos los caracteres. La figura
siguiente es un ejemplo que muestra los resultados de la operacin UNSTRING
descrita anteriormente:
366
SUBJECT-FIELD = ABCEK1K2K3FDEK4K5K6F
RECEIVER (1) = ABC
DELIMTR (1) = E
RECEIVER (2) = K1K2K3
DELIMTR (2) = F
RECEIVER (3) = D
DELIMTR (3) = E
RECEIVER (4) = K4K5K6
DELIMTR (4) = F
COUNTS
COUNTS
COUNTS
COUNTS
(1)
(2)
(3)
(4)
=
=
=
=
3
6
1
6
SUBJECT-FIELD = EK1K2K3FABCEK4F
RECEIVER (1) = (blanks) DELIMTR (1)
RECEIVER (2) = K1K2K3
DELIMTR (2)
RECEIVER (3) = ABC
DELIMTR (3)
RECEIVER (4) = K4
DELIMTR (4)
COUNTS
COUNTS
COUNTS
COUNTS
(1)
(2)
(3)
(4)
=
=
=
=
6
3
2
=
=
=
=
E
F
E
F
SORT/MERGE
No se puede realizar una clasificacin alfabtica DBCS utilizando COBOL. Sin
embargo, puede utilizar tems de datos DBCS o DBCS/SBCS como claves en una
instruccin SORT o MERGE. La operacin de clasificacin ordena los datos de
acuerdo con la secuencia de clasificacin especificada en el prrafo SORT,
MERGE o SPECIAL NAMES. El sistema ordena cualquier carcter de control de
desplazamiento que se encuentre dentro de las claves DBCS y DBCS/SBCS.
Utilice la instruccin RELEASE para transferir registros que contengan caracteres
DBCS desde un rea de entrada/salida hasta la fase inicial de una operacin de
clasificacin. El sistema realiza la frase FROM con la instruccin RELEASE de la
misma manera que realiza la frase FROM con la instruccin WRITE. (Consulte el
apartado Instruccin WRITE en la pgina 364).
Tambin es posible utilizar la instruccin RETURN para transferir registros que
contengan caracteres DBCS desde la fase final de una operacin de fusin o clasificacin hasta un rea de entrada/salida. El sistema realiza la frase INTO con la
instruccin RETURN de la misma manera que realiza la frase INTO con la instruccin READ. (Consulte el apartado Instruccin READ en la pgina 363).
367
Instruccin TITLE
Puede utilizar literales DBCS/SBCS como el literal de la instruccin TITLE.
368
Distintivo FIPS
Las mejoras para el lenguaje COBOL que permiten utilizar caracteres DBCS se
distinguen (identifican) mediante el distintivo FIPS (Federal Information Processing
Standard) proporcionado por el compilador como ampliaciones de IBM.
369
370
371
5763CB1 V3RM5
Fuente COBOL AS/4
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
1 1 IDENTIFICATION DIVISION.
2 2 PROGRAM-ID. CRTSEQ.
3
3 4 ENVIRONMENT DIVISION.
4 5 CONFIGURATION SECTION.
5 6 SOURCE-COMPUTER.
IBM-AS4.
6 7 OBJECT-COMPUTER.
IBM-AS4.
7 8 SPECIAL-NAMES. CONSOLE IS TYPEWRITER.
8 9 INPUT-OUTPUT SECTION.
9 1 FILE-CONTROL.
1 11
SELECT INPUT-FILE ASSIGN TO DISK-FILEA
11 12
FILE STATUS IS INPUT-FILE-STATUS.
12 13
SELECT OUTPUT-FILE ASSIGN TO DISK-FILEB
13 14
FILE STATUS IS OUTPUT-FILE-STATUS.
14 15 DATA DIVISION.
15 16 FILE SECTION.
16 17 FD INPUT-FILE LABEL RECORDS STANDARD.
17 18 1 INPUT-RECORD.
18 19
5 INPUT-EMPLOYEE-NUMBER
PICTURE 9(6).
19 2
5 INPUT-EMPLOYEE-NAME
PICTURE X(28).
2 21
5 INPUT-EMPLOYEE-CODE
PICTURE 9.
21 22
5 INPUT-EMPLOYEE-SALARY
PICTURE 9(6)V99.
22 23 FD OUTPUT-FILE LABEL RECORDS STANDARD.
23 24 1 OUTPUT-RECORD.
24 25
5 OUTPUT-EMPLOYEE-NUMBER
PICTURE 9(6).
25 26
5 OUTPUT-EMPLOYEE-NAME
PICTURE X(28).
26 27
5 OUTPUT-EMPLOYEE-CODE
PICTURE 9.
27 28
5 OUTPUT-EMPLOYEE-SALARY
PICTURE 9(6)V99.
28 29 WORKING-STORAGE SECTION.
29 3 77 INPUT-FILE-STATUS
PICTURE XX.
3 31 77 OUTPUT-FILE-STATUS
PICTURE XX.
31 32 1 INPUTEND
PICTURE X VALUE SPACE.
32 33
88 THE-END-OF-INPUT
VALUE "E".
33 34 1 DISP-RECORD.
34 35
5 OP-NAME
PICTURE X(7).
35 36
5 FILLER
PICTURE XX VALUE SPACE.
36 37
5 FILE-NAME
PICTURE X(11).
37 38
5 FILLER
PICTURE XX VALUE SPACE.
38 39
5 FILLER
PICTURE X(14)
39 4
VALUE "FILE STATUS IS".
4 41
5 FILLER
PICTURE XX VALUE SPACE.
41 42
5 SK
PICTURE XX.
42 43 PROCEDURE DIVISION.
44 DECLARATIVES.
45 I-O-ERROR SECTION.
46
USE AFTER STANDARD ERROR PROCEDURE ON INPUT-FILE,
47
OUTPUT-FILE.
48 I-O-ERROR-PARA.
49\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
5\ PARA ASEGURAR CONTROL SE DEVUELVEN DECLARATIVAS FICTICIAS\
51\ A ESTE PROGRAMA CUANDO SE PRODUCE ERROR DURANTE PROCESO \
52\ ARCHIVO. MANEJO ERRORES DESPUS DE CADA INSTRUCCIN E/S. \
53\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
54 END DECLARATIVES.
55 MAIN-PROGRAM SECTION.
56 OPEN-FILES.
43 57
OPEN INPUT INPUT-FILE
58
OUTPUT OUTPUT-FILE.
44 59
IF INPUT-FILE-STATUS NOT = ""
45 6
MOVE "OPEN" TO OP-NAME
46 61
MOVE "INPUT-FILE" TO FILE-NAME
47 62
MOVE INPUT-FILE-STATUS TO SK
48 63
PERFORM ERROR-OUT-1 THROUGH ERROR-OUT-2.
49 64
IF OUTPUT-FILE-STATUS NOT = ""
5 65
MOVE "OPEN" TO OP-NAME
51 66
MOVE "OUTPUT-FILE" TO FILE-NAME
52 67
MOVE OUTPUT-FILE-STATUS TO SK
53 68
PERFORM ERROR-OUT-1 THROUGH ERROR-OUT-2.
54 69
PERFORM BUILD-FILE UNTIL THE-END-OF-INPUT.
7 CLOSE-FILES.
55 71
CLOSE INPUT-FILE
72
OUTPUT-FILE.
56 73
STOP RUN.
74 BUILD-FILE.
NOMCOPIA
FECH/CAM
5/24/94
5/24/94
Figura 112 (Parte 1 de 2). Ejemplo de un Archivo Secuencial de Registros del Salario de un Empleado
372
5763CB1 V3RM5
Fuente COBOL AS/4
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
57 75
READ INPUT-FILE INTO OUTPUT-RECORD
58 76
AT END SET THE-END-OF-INPUT TO TRUE.
59 77
IF INPUT-FILE-STATUS NOT = ""
6 78
MOVE "WRITE" TO OP-NAME
61 79
MOVE "OUTPUT-FILE" TO FILE-NAME
62 8
MOVE OUTPUT-FILE-STATUS TO SK
63 81
PERFORM ERROR-OUT-1 THROUGH ERROR-OUT-2
64 82
GO TO CLOSE-FILES.
65 83
WRITE OUTPUT-RECORD.
66 84
IF OUTPUT-FILE-STATUS NOT = ""
67 85
MOVE "WRITE" TO OP-NAME
68 86
MOVE "OUTPUT-FILE" TO FILE-NAME
69 87
MOVE OUTPUT-FILE-STATUS TO SK
7 88
PERFORM ERROR-OUT-1 THROUGH ERROR-OUT-2
71 89
GO TO CLOSE-FILES.
9 ERROR-OUT-1.
72 91
DISPLAY "FILE PROCESSING ERROR" UPON TYPEWRITER.
73 92
DISPLAY DISP-RECORD UPON TYPEWRITER.
74 93
CLOSE INPUT-FILE
94
OUTPUT-FILE.
75 95
STOP RUN.
96 ERROR-OUT-2.
97
EXIT.
\ \ \ \ \
F I N
D E
F U E N T E
\ \ \ \ \
5763CB1 V3RM5
Mensajes COBOL AS/4
INST
\
16 IDMEN: LBL65 GRAVEDAD: NUMSEC: 17
Mensaje . . . . :
Bloqueo/Desbloqueo para archivo 'INPUT-FILE'
se realizar por medio del cdigo generado por compilador.
\
22 IDMEN: LBL65 GRAVEDAD: NUMSEC: 23
Mensaje . . . . :
Bloqueo/Desbloqueo para archivo 'OUTPUT-FILE'
se realizar por medio del cdigo generado por compilador.
\
43 IDMEN: LBL335 GRAVEDAD: NUMSEC: 54
Mensaje . . . . :
Prrafo vaco o seccin precede el prrafo
o seccin 'END DECLARATIVES'
\ \ \ \ \
NOMCOPIA
FECH/CAM
D E
M E N S A J E S
\ \ \ \ \
Resumen de mensajes
Total
Info(-4)
Aviso(5-19)
Error(2-29)
Grave(3-39)
Terminal(4-99)
3
3
Errores secuencia . . . . . . . . . :
F I N
F I N
D E
C O M P I L A C I N \ \ \ \ \
Figura 112 (Parte 2 de 2). Ejemplo de un Archivo Secuencial de Registros del Salario de un Empleado
373
5763CB1 V3RM5
Fuente COBOL AS/4
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
1 1 IDENTIFICATION DIVISION.
2 2 PROGRAM-ID. UPDTSEQ.
3 3 ENVIRONMENT DIVISION.
4 4 CONFIGURATION SECTION.
5 5 SOURCE-COMPUTER. IBM-AS4.
6 6 OBJECT-COMPUTER. IBM-AS4.
7 7 INPUT-OUTPUT SECTION.
8 8 FILE-CONTROL.
9 9
SELECT INPUT-FILE ASSIGN TO DISK-FILES
1 1
FILE STATUS IS INPUT-FILE-STATUS. .A/
11 11
SELECT MASTER-FILE ASSIGN TO DISK-MSTFILEB
12 12
FILE STATUS IS MASTER-FILE-STATUS. .B/
13
13 14 DATA DIVISION.
14 15 FILE SECTION.
15 16 FD INPUT-FILE LABEL RECORDS STANDARD.
16 17 1 INPUT-RECORD.
17 18
5 INPUT-EMPLOYEE-NUMBER
PICTURE 9(6).
18 19
5 INPUT-EMPLOYEE-NAME
PICTURE X(28).
19 2
5 INPUT-EMPLOYEE-CODE
PICTURE 9.
2 21
5 INPUT-EMPLOYEE-SALARY
PICTURE 9(6)V99.
21 22 FD MASTER-FILE LABEL RECORDS STANDARD.
22 23 1 MASTER-RECORD.
23 24
5 MST-EMPLOYEE-NUMBER
PICTURE 9(6).
24 25
5 MST-EMPLOYEE-NAME
PICTURE X(28).
25 26
5 MST-EMPLOYEE-CODE
PICTURE 9.
26 27
5 MST-EMPLOYEE-SALARY
PICTURE 9(6)V99.
27 28 WORKING-STORAGE SECTION.
28 29 77 INPUT-FILE-STATUS
PICTURE XX.
29 3 77 MASTER-FILE-STATUS
PICTURE XX.
3 31 1 INPUTEND
PICTURE X VALUE SPACE.
31 32
88 THE-END-OF-INPUT
VALUE "E".
32 33 1 MASTEREND
PICTURE X VALUE SPACE.
33 34
88 THE-END-OF-MASTER
VALUE "E".
34 35 1 ERROR-INFO.
35 36
5 OP-NAME
PICTURE X(12).
36 37
5 FILLER
PICTURE XX VALUE SPACE.
37 38
5 FILE-NAME
PICTURE X(11).
38 39
5 FILLER
PICTURE XX VALUE SPACE.
39 4
5 FILLER
PICTURE X(14)
4 41
VALUE "FILE STATUS IS".
41 42
5 FILLER
PICTURE XX VALUE SPACE.
42 43
5 SK
PICTURE XX.
43 44 PROCEDURE DIVISION.
45 DECLARATIVES.
46 INPUT-FILE-ERROR SECTION.
47
USE AFTER STANDARD ERROR PROCEDURE ON INPUT-FILE. .C/
48 INPUT-FILE-ERROR-PARA.
44 49
MOVE INPUT-FILE-STATUS TO SK.
45 5
MOVE "INPUT-FILE" TO FILE-NAME.
46 51
DISPLAY "FILE PROCESSING ERROR".
47 52
DISPLAY ERROR-INFO.
48 53
DISPLAY "PROCESSING TERMINATED DUE TO I-O ERROR".
49 54
STOP RUN.
55 I-O-FILE-ERROR SECTION.
56
USE AFTER STANDARD ERROR PROCEDURE ON MASTER-FILE. .D/
57 MASTER-FILE-ERROR-PARA.
5 58
MOVE MASTER-FILE-STATUS TO SK.
51 59
MOVE "MASTER-FILE" TO FILE-NAME.
52 6
DISPLAY "FILE PROCESSING ERROR".
53 61
DISPLAY ERROR-INFO.
54 62
DISPLAY "PROCESSING TERMINATED DUE TO I-O ERROR".
55 63
STOP RUN.
64 END DECLARATIVES.
65 MAIN-PROGRAM SECTION.
66 OPEN-FILES.
56 67
MOVE "OPEN" TO OP-NAME.
57 68
OPEN INPUT INPUT-FILE
69
I-O
MASTER-FILE.
7 PROCESSING-LOGIC.
58 71
PERFORM READ-INPUT-FILE.
59 72
PERFORM READ-MASTER-FILE.
6 73
PERFORM PROCESS-FILES UNTIL THE-END-OF-INPUT.
NOMCOPIA
FECH/CAM
5/24/94
5/24/94
374
5763CB1 V3RM5
Fuente COBOL AS/4
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
74 CLOSE-FILES.
61 75
MOVE "CLOSE" TO OP-NAME.
62 76
CLOSE MASTER-FILE
77
INPUT-FILE.
63 78
STOP RUN.
79 READ-INPUT-FILE.
64 8
MOVE "READ" TO OP-NAME.
65 81
READ INPUT-FILE
66 82
AT END SET THE-END-OF-INPUT TO TRUE.
83 READ-MASTER-FILE.
67 84
MOVE "READ" TO OP-NAME.
68 85
READ MASTER-FILE
86
AT END
69 87
SET THE-END-OF-MASTER TO TRUE
7 88
MOVE "AT END CLOSE" TO OP-NAME
71 89
CLOSE MASTER-FILE
72 9
MOVE "OPEN EXTEND" TO OP-NAME
73 91
OPEN EXTEND MASTER-FILE.
92 PROCESS-FILES.
74 93
IF THE-END-OF-MASTER
75 94
WRITE MASTER-RECORD FROM INPUT-RECORD
76 95
PERFORM READ-INPUT-FILE
96
ELSE
77 97
IF MST-EMPLOYEE-NUMBER LESS THAN INPUT-EMPLOYEE-NUMBER
78 98
PERFORM READ-MASTER-FILE
99
ELSE
79 1
IF MST-EMPLOYEE-NUMBER = INPUT-EMPLOYEE-NUMBER
8 11
MOVE "REWRITE" TO OP-NAME
81 12
REWRITE MASTER-RECORD FROM INPUT-RECORD
82 13
PERFORM READ-INPUT-FILE
83 14
PERFORM READ-MASTER-FILE
15
ELSE
84 16
DISPLAY "ERROR RECORD -> ", INPUT-EMPLOYEE-NUMBER
85 17
PERFORM READ-INPUT-FILE.
\ \ \ \ \
F I N
D E
F U E N T E
\ \ \ \ \
5763CB1 V3RM5
Mensajes COBOL AS/4
INST
\
15 IDMEN: LBL65 GRAVEDAD: NUMSEC: 16
Mensaje . . . . :
Bloqueo/Desbloqueo para archivo 'INPUT-FILE'
se realizar por medio del cdigo generado por compilador.
\ \ \ \ \
NOMCOPIA
FECH/CAM
F I N
Total
Info(-4)
Aviso(5-19)
1
1
D E
M E N S A J E S
\ \ \ \ \
Resumen de mensajes
Error(2-29)
Grave(3-39)
Terminal(4-99)
:
17
:
en biblioteca XMPLIB.
F I N
D E
C O M P I L A C I N \ \ \ \ \
Una clusula FILE STATUS para que el programa registre el estado de las
solicitudes de E/S ms recientes relacionadas con INPUT-FILE.
.B/
Una clusula FILE STATUS para que el programa registra el estado de las
solicitudes de E/S ms recientes relacionadas con MASTER-FILE.
.C/
.D/
375
Los valores de estado del archivo y los procedimientos USE juegan un papel muy
importante en el manejo de errores. Para obtener ms informacin, consulte el
Captulo 6, Manejo de Errores y Excepciones COBOL/400.
376
5763CB1 V3RM5
Fuente COBOL AS/4
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
1 1 IDENTIFICATION DIVISION.
2 2 PROGRAM-ID. CRTIND.
3
3 4 ENVIRONMENT DIVISION.
4 5 CONFIGURATION SECTION.
5 6 SOURCE-COMPUTER. IBM-AS4.
6 7 OBJECT-COMPUTER. IBM-AS4.
7 8 INPUT-OUTPUT SECTION.
8 9 FILE-CONTROL.
9 1
SELECT INDEXED-FILE ASSIGN TO DISK-INDEXFILE
1 11
ORGANIZATION IS INDEXED
11 12
ACCESS IS SEQUENTIAL
12 13
RECORD KEY IS INDEX-KEY
13 14
FILE STATUS IS INDEXED-FILE-STATUS.
14 15
SELECT INPUT-FILE ASSIGN TO DISK-FILEG
15 16
FILE STATUS IS INPUT-FILE-STATUS.
16 17 DATA DIVISION.
17 18 FILE SECTION.
18 19 FD INDEXED-FILE LABEL RECORDS STANDARD.
19 2 1 INDEX-RECORD.
2 21
5 INDEX-KEY
PICTURE X(1).
21 22
5 INDEX-FLD1
PICTURE X(1).
22 23
5 INDEX-NAME
PICTURE X(2).
23 24
5 INDEX-BAL
PICTURE S9(5)V99.
24 25 FD INPUT-FILE LABEL RECORDS STANDARD.
25 26 1 INPUT-RECORD.
26 27
5 INPUT-KEY
PICTURE X(1).
27 28
5 INPUT-NAME
PICTURE X(2).
28 29
5 INPUT-BAL
PICTURE S9(5)V99.
29 3 WORKING-STORAGE SECTION.
3 31 77 INDEXED-FILE-STATUS
PICTURE XX.
31 32 77 INPUT-FILE-STATUS
PICTURE XX.
32 33 77 OP-NAME
PICTURE X(7).
33 34 1 INPUTEND
PICTURE X VALUE SPACES.
34 35
88 THE-END-OF-INPUT
VALUE "E".
35 36 1 ERRORFLAG
PICTURE X VALUE SPACES.
36 37
88 ERROR-OCCURRED
VALUE "1".
37 38 PROCEDURE DIVISION.
39 DECLARATIVES.
4 INPUT-ERROR SECTION.
41
USE AFTER STANDARD ERROR PROCEDURE ON INPUT.
42 INPUT-ERROR-PARA.
38 43
DISPLAY "UNEXPECTED ERROR ON ", OP-NAME, " FOR INPUT-FILE ".
39 44
DISPLAY "FILE STATUS IS ", INPUT-FILE-STATUS.
4 45
SET ERROR-OCCURRED TO TRUE.
46 OUTPUT-ERROR SECTION.
47
USE AFTER STANDARD ERROR PROCEDURE ON OUTPUT.
48 OUTPUT-ERROR-PARA.
41 49
DISPLAY "UNEXPECTED ERROR ON ", OP-NAME, " FOR INDEXED-FILE ".
42 5
DISPLAY "FILE STATUS IS ", INDEXED-FILE-STATUS.
43 51
SET ERROR-OCCURRED TO TRUE.
52 END DECLARATIVES.
53 MAIN-PROCESSING SECTION.
54 MAIN-PROCEDURE.
44 55
MOVE "OPEN" TO OP-NAME.
45 56
OPEN INPUT INPUT-FILE
57
OUTPUT INDEXED-FILE.
46 58
IF ERROR-OCCURRED GO TO ERROR-TERMINATION.
48 59
PERFORM READ-INPUT-FILE.
49 6
PERFORM LOAD-INDEXED-FILE THRU READ-INPUT-FILE
61
UNTIL THE-END-OF-INPUT.
NOMCOPIA
FECH/CAM
5/24/94
5/24/94
377
5763CB1 V3RM5
Fuente COBOL AS/4
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
5 62
MOVE "CLOSE" TO OP-NAME.
51 63
CLOSE INPUT-FILE
64
INDEXED-FILE.
52 65
IF ERROR-OCCURRED GO TO ERROR-TERMINATION.
54 66
STOP RUN.
67 LOAD-INDEXED-FILE.
55 68
MOVE INPUT-KEY TO INDEX-KEY.
56 69
MOVE INPUT-NAME TO INDEX-NAME.
57 7
MOVE INPUT-BAL TO INDEX-BAL.
58 71
MOVE SPACES TO INDEX-FLD1.
59 72
MOVE "WRITE" TO OP-NAME.
6 73
WRITE INDEX-RECORD
74
INVALID KEY
61 75
DISPLAY "WRITE FAILED FOR KEY ", INDEX-KEY.
62 76
IF ERROR-OCCURRED GO TO ERROR-TERMINATION.
77 READ-INPUT-FILE.
64 78
MOVE "READ" TO OP-NAME.
65 79
READ INPUT-FILE
66 8
AT END SET THE-END-OF-INPUT TO TRUE.
67 81
IF ERROR-OCCURRED GO TO ERROR-TERMINATION.
82 ERROR-TERMINATION.
69 83
DISPLAY "I-O ERROR OCCURRED - PROCESS TERMINATING".
7 84
STOP RUN.
\ \ \ \ \
F I N
D E
F U E N T E
\ \ \ \ \
5763CB1 V3RM5
Mensajes COBOL AS/4
INST
\
18 IDMEN: LBL65 GRAVEDAD: NUMSEC: 19
Mensaje . . . . :
Bloqueo/Desbloqueo para archivo 'INDEXED-FILE'
se realizar por medio del cdigo generado por compilador.
\
24 IDMEN: LBL65 GRAVEDAD: NUMSEC: 25
Mensaje . . . . :
Bloqueo/Desbloqueo para archivo 'INPUT-FILE'
se realizar por medio del cdigo generado por compilador.
\ \ \ \ \
NOMCOPIA
FECH/CAM
D E
M E N S A J E S
\ \ \ \ \
Resumen de mensajes
Total
Info(-4)
Aviso(5-19)
Error(2-29)
Grave(3-39)
Terminal(4-99)
2
2
Errores secuencia . . . . . . . . . :
F I N
F I N
D E
C O M P I L A C I N \ \ \ \ \
378
5763CB1 V3RM5
Fuente COBOL AS/4
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
1 1 IDENTIFICATION DIVISION.
2 2 PROGRAM-ID. UPDTIND.
3
3 4 ENVIRONMENT DIVISION.
4 5 CONFIGURATION SECTION.
5 6 SOURCE-COMPUTER. IBM-AS4.
6 7 OBJECT-COMPUTER. IBM-AS4.
7 8 INPUT-OUTPUT SECTION.
8 9 FILE-CONTROL.
9 1
SELECT MASTER-FILE ASSIGN TO DISK-INDXFILE
1 11
ORGANIZATION IS INDEXED
11 12
ACCESS IS DYNAMIC
12 13
RECORD KEY IS MASTER-KEY
13 14
FILE STATUS IS MASTER-FILE-STATUS.
14 15
SELECT INPUT-FILE ASSIGN TO DISK-FILEH
15 16
FILE STATUS IS INPUT-FILE-STATUS.
16 17
SELECT PRINT-FILE ASSIGN TO PRINTER-QSYSPRT
17 18
FILE STATUS IS PRINT-FILE-STATUS.
18 19 DATA DIVISION.
19 2 FILE SECTION.
2 21 FD MASTER-FILE LABEL RECORDS STANDARD.
21 22 1 MASTER-RECORD.
22 23
5 MASTER-KEY.
23 24
1
MASTER-GEN-FLD
PICTURE X(5).
24 25
1
MASTER-DET-FLD
PICTURE X(5).
25 26
5 MASTER-FLD1
PICTURE X(1).
26 27
5 MASTER-NAME
PICTURE X(2).
27 28
5 MASTER-BAL
PICTURE S9(5)V99.
28 29 FD INPUT-FILE LABEL RECORDS STANDARD.
29 3 1 INPUT-REC.
3 31
5 INPUT-KEY.
31 32
1 INPUT-GEN-FLD
PICTURE X(5).
32 33
1 INPUT-DET-FLD
PICTURE X(5).
33 34
5 INPUT-NAME
PICTURE X(2).
34 35
5 INPUT-AMT
PICTURE S9(5)V99.
35 36 FD PRINT-FILE LABEL RECORDS OMITTED
36 37
LINAGE 12 LINES FOOTING AT 9.
37 38 1 PRINT-RECORD-1.
38 39
5 PRINT-KEY
PICTURE X(1).
39 4
5 FILLER
PICTURE X(5).
4 41
5 PRINT-NAME
PICTURE X(2).
41 42
5 FILLER
PICTURE X(5).
42 43
5 PRINT-BAL
PICTURE $$$,$$9.99-.
43 44
5 FILLER
PICTURE X(7).
44 45
5 PRINT-AMT
PICTURE $$$,$$9.99-.
45 46
5 FILLER
PICTURE X(5).
46 47
5 PRINT-NEW-BAL
PICTURE $$$,$$9.99-.
47 48 1 PRINT-RECORD-2
PICTURE X(89).
48 49 WORKING-STORAGE SECTION.
49 5 77 MASTER-FILE-STATUS
PICTURE XX.
5 51 77 INPUT-FILE-STATUS
PICTURE XX.
51 52 77 PRINT-FILE-STATUS
PICTURE XX.
52 53 77 LINES-TO-FOOT
PICTURE 99.
53 54 1 PAGE-HEAD.
54 55
5 FILLER
PICTURE X(38) VALUE SPACES.
55 56
5 FILLER
PICTURE X(13) VALUE "UPDATE REPORT".
56 57
5 FILLER
PICTURE X(38) VALUE SPACES.
57 58 1 COLUMN-HEAD.
58 59
5 FILLER
PICTURE X(6) VALUE "KEY ID".
59 6
5 FILLER
PICTURE X(9) VALUE SPACES.
6 61
5 FILLER
PICTURE X(4) VALUE "NAME".
61 62
5 FILLER
PICTURE X(21) VALUE SPACES.
62 63
5 FILLER
PICTURE X(11) VALUE "CUR BALANCE".
63 64
5 FILLER
PICTURE X(6) VALUE SPACES.
64 65
5 FILLER
PICTURE X(13) VALUE "UPDATE AMOUNT".
65 66
5 FILLER
PICTURE X(4) VALUE SPACES.
66 67
5 FILLER
PICTURE X(11) VALUE "NEW BALANCE".
67 68
5 FILLER
PICTURE X(4) VALUE SPACES.
68 69 1 PAGE-FOOT.
69 7
5 FILLER
PICTURE X(81) VALUE SPACES.
7 71
5 FILLER
PICTURE A(6)
VALUE "PAGE ".
71 72
5 PG-NUMBER
PICTURE 99
VALUE .
73
72 74 1 INPUTEND
PICTURE X VALUE SPACE.
73 75
88 THE-END-OF-INPUT
VALUE "E".
NOMCOPIA
FECH/CAM
5/24/94
5/24/94
379
5763CB1 V3RM5
Fuente COBOL AS/4
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
74 76 1 ERRORFLAG
PICTURE X VALUE SPACE.
75 77
88 ERROR-OCCURRED
VALUE "1".
76 78 1 ERROR-DATA.
77 79
5 FILLER
PICTURE X(21)
78 8
VALUE "STATEMENT FAILING IS ".
79 81
5 OP-NAME
PICTURE X(9).
8 82
5 FILLER
PICTURE X(16)
81 83
VALUE "FILE STATUS IS".
82 84
5 STATUS-VALUE
PICTURE XX.
83 85 1 INPUT-MESSAGE.
84 86
5 FILLER
PICTURE X(3)
85 87
VALUE "UNEXPECTED ERROR ON INPUT-FILE" .
86 88 1 I-O-MESSAGE.
87 89
5 FILLER
PICTURE X(31)
88 9
VALUE "UNEXPECTED ERROR ON MASTER-FILE" .
89 91 1 OUTPUT-MESSAGE.
9 92
5 FILLER
PICTURE X(3)
91 93
VALUE "UNEXPECTED ERROR ON PRINT-FILE" .
92 94 PROCEDURE DIVISION.
95 DECLARATIVES.
96 INPUT-ERROR SECTION.
97
USE AFTER STANDARD ERROR PROCEDURE ON INPUT.
98 INPUT-ERROR-PARA.
93 99
DISPLAY INPUT-MESSAGE.
94 1
MOVE INPUT-FILE-STATUS TO STATUS-VALUE.
95 11
DISPLAY ERROR-DATA.
96 12
SET ERROR-OCCURRED TO TRUE.
13 I-O-ERROR SECTION.
14
USE AFTER STANDARD ERROR PROCEDURE ON I-O.
15 I-O-ERROR-PARA.
97 16
DISPLAY I-O-MESSAGE.
98 17
MOVE MASTER-FILE-STATUS TO STATUS-VALUE.
99 18
DISPLAY ERROR-DATA.
1 19
SET ERROR-OCCURRED TO TRUE.
11 OUTPUT-ERROR SECTION.
111
USE AFTER STANDARD ERROR PROCEDURE ON OUTPUT.
112 OUTPUT-ERROR-PARA.
11 113
DISPLAY OUTPUT-MESSAGE.
12 114
MOVE PRINT-FILE-STATUS TO STATUS-VALUE.
13 115
DISPLAY ERROR-DATA.
14 116
SET ERROR-OCCURRED TO TRUE.
117 END DECLARATIVES.
118 MAIN-PROCESSING SECTION.
119 MAIN-PROCEDURE.
15 12
MOVE "OPEN" TO OP-NAME.
16 121
OPEN INPUT INPUT-FILE
122
I-O MASTER-FILE
123
OUTPUT PRINT-FILE.
17 124
IF ERROR-OCCURRED GO TO ERROR-TERMINATION.
19 125
PERFORM PAGE-START.
11 126
PERFORM READ-INPUT-FILE.
111 127
PERFORM PROCESS-DATA THRU READ-INPUT-FILE
128
UNTIL THE-END-OF-INPUT.
112 129
PERFORM PAGE-END.
113 13
MOVE "CLOSE" TO OP-NAME.
114 131
CLOSE INPUT-FILE
132
MASTER-FILE
133
PRINT-FILE.
115 134
IF ERROR-OCCURRED GO TO ERROR-TERMINATION.
117 135
STOP RUN.
136
137 PROCESS-DATA.
118 138
IF INPUT-DET-FLD EQUAL SPACES
119 139
PERFORM INIT-SEQUENTIAL-PROCESS
14
ELSE
12 141
PERFORM DYNAMIC-PROCESS.
142 READ-INPUT-FILE.
121 143
MOVE "READ" TO OP-NAME.
122 144
READ INPUT-FILE
123 145
AT END SET THE-END-OF-INPUT TO TRUE.
124 146
IF ERROR-OCCURRED GO TO ERROR-TERMINATION.
147
148 INIT-SEQUENTIAL-PROCESS.
NOMCOPIA
FECH/CAM
380
5763CB1 V3RM5
Fuente COBOL AS/4
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
126 149
MOVE INPUT-GEN-FLD TO MASTER-GEN-FLD.
127 15
MOVE "START" TO OP-NAME.
128 151
START MASTER-FILE
152
KEY IS NOT LESS THAN MASTER-GEN-FLD
153
INVALID KEY
129 154
DISPLAY "MASTER-FILE START FAILED: INVALID KEY ",
155
MASTER-GEN-FLD
13 156
MOVE HIGH-VALUE TO MASTER-GEN-FLD.
131 157
IF ERROR-OCCURRED GO TO ERROR-TERMINATION.
133 158
PERFORM SEQUENTIAL-PROCESS
159
UNTIL INPUT-GEN-FLD NOT EQUAL MASTER-GEN-FLD.
16
161 SEQUENTIAL-PROCESS.
134 162
MOVE "READ NEXT" TO OP-NAME.
135 163
READ MASTER-FILE NEXT RECORD
136 164
AT END MOVE HIGH-VALUE TO MASTER-GEN-FLD.
137 165
IF ERROR-OCCURRED GO TO ERROR-TERMINATION.
139 166
IF INPUT-GEN-FLD EQUAL MASTER-GEN-FLD
14 167
MOVE MASTER-KEY TO PRINT-KEY
141 168
MOVE MASTER-NAME TO PRINT-NAME
142 169
MOVE MASTER-BAL TO PRINT-NEW-BAL
143 17
PERFORM PRINT-DETAIL.
171
172 DYNAMIC-PROCESS.
144 173
MOVE INPUT-KEY TO MASTER-KEY.
145 174
MOVE "READ" TO OP-NAME.
146 175
READ MASTER-FILE
176
INVALID KEY
147 177
DISPLAY "MASTER-FILE READ FAILED: INVALID KEY ",
178
MASTER-KEY
148 179
MOVE HIGH-VALUE TO MASTER-GEN-FLD.
149 18
IF ERROR-OCCURRED GO TO ERROR-TERMINATION.
151 181
IF INPUT-GEN-FLD EQUAL MASTER-GEN-FLD
152 182
MOVE MASTER-KEY TO PRINT-KEY
153 183
MOVE MASTER-NAME TO PRINT-NAME
154 184
MOVE MASTER-BAL TO PRINT-BAL
155 185
MOVE INPUT-AMT TO PRINT-AMT
156 186
ADD INPUT-AMT TO MASTER-BAL
157 187
MOVE MASTER-BAL TO PRINT-NEW-BAL
158 188
PERFORM PRINT-DETAIL
159 189
MOVE "REWRITE" TO OP-NAME
16 19
REWRITE MASTER-RECORD
191
INVALID KEY
161 192
DISPLAY "MASTER-FILE REWRITE FAILED: INVALID KEY ",
193
MASTER-KEY
162 194
MOVE HIGH-VALUE TO MASTER-GEN-FLD.
163 195
IF ERROR-OCCURRED GO TO ERROR-TERMINATION.
196 PRINT-DETAIL.
165 197
MOVE "WRITE" TO OP-NAME.
166 198
WRITE PRINT-RECORD-1
199
AT END-OF-PAGE
167 2
PERFORM PAGE-END THROUGH PAGE-START.
168 21
IF ERROR-OCCURRED GO TO ERROR-TERMINATION.
17 22
MOVE SPACES TO PRINT-RECORD-1.
23
24 PAGE-END.
171 25
MOVE "WRITE" TO OP-NAME.
172 26
ADD 1 TO PG-NUMBER.
173 27
SUBTRACT LINAGE-COUNTER OF PRINT-FILE FROM 12
28
GIVING LINES-TO-FOOT.
174 29
MOVE SPACES TO PRINT-RECORD-1.
175 21
WRITE PRINT-RECORD-1
211
AFTER ADVANCING LINES-TO-FOOT.
176 212
WRITE PRINT-RECORD-2 FROM PAGE-FOOT
213
BEFORE ADVANCING PAGE.
177 214
IF ERROR-OCCURRED GO TO ERROR-TERMINATION.
NOMCOPIA
FECH/CAM
381
5763CB1 V3RM5
Fuente COBOL AS/4
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN S NOMCOPIA
215 PAGE-START.
179 216
WRITE PRINT-RECORD-2 FROM PAGE-HEAD
217
AFTER ADVANCING LINES.
18 218
IF ERROR-OCCURRED GO TO ERROR-TERMINATION.
182 219
MOVE SPACES TO PRINT-RECORD-2.
183 22
WRITE PRINT-RECORD-2 FROM COLUMN-HEAD
221
AFTER ADVANCING 1 LINE.
184 222
IF ERROR-OCCURRED GO TO ERROR-TERMINATION.
186 223
MOVE SPACES TO PRINT-RECORD-2.
224 ERROR-TERMINATION.
187 225
DISPLAY "PROCESS TERMINATING ABNORMALLY".
188 226
STOP RUN.
\ \ \ \ \
F I N
D E
F U E N T E
\ \ \ \ \ 5763CB1 V3RM5
INST
\
28 IDMEN: LBL65 GRAVEDAD: NUMSEC: 29
Mensaje . . . . :
Bloqueo/Desbloqueo para archivo 'INPUT-FILE'
se realizar por medio del cdigo generado por compilador.
\ \ \ \ \
F I N
Total
Info(-4)
Aviso(5-19)
1
1
FECH/CAM
D E
M E N S A J E S
\ \ \ \ \
Resumen de mensajes
Error(2-29)
Grave(3-39)
Terminal(4-99)
:
226
:
en biblioteca XMPLIB.
F I N
D E
C O M P I L A C I N \ \ \ \ \
382
5763CB1 V3RM5
Fuente COBOL AS/4
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
1 1 IDENTIFICATION DIVISION.
2 2 PROGRAM-ID.
CRTREL.
3
3 4 ENVIRONMENT DIVISION.
4 5 CONFIGURATION SECTION.
5 6 SOURCE-COMPUTER.
IBM-AS4.
6 7 OBJECT-COMPUTER.
IBM-AS4.
7 8 SPECIAL-NAMES. REQUESTOR IS REQUESTOR.
8 9 FILE-CONTROL.
9 1
SELECT RELATIVE-FILE ASSIGN TO DISK-FILED
1 11
ORGANIZATION IS RELATIVE
11 12
ACCESS IS SEQUENTIAL
12 13
FILE STATUS RELATIVE-FILE-STATUS.
13 14
SELECT INPUT-FILE ASSIGN TO DISK-FILEC
14 15
FILE STATUS INPUT-FILE-STATUS.
16
15 17 DATA DIVISION.
16 18 FILE SECTION.
17 19 FD RELATIVE-FILE LABEL RECORDS ARE STANDARD.
18 2 1 RELATIVE-RECORD-1.
19 21
5 RELATIVE-RECORD OCCURS 5 TIMES INDEXED BY REL-INDEX.
2 22
1 RELATIVE-YEAR
PICTURE 99.
21 23
1 RELATIVE-WEEK
PICTURE 99.
22 24
1 RELATIVE-UNIT-SALES
PICTURE S9(6).
23 25
1 RELATIVE-DOLLAR-SALES PICTURE S9(9)V99.
24 26 FD INPUT-FILE LABEL RECORDS STANDARD.
25 27 1 INPUT-RECORD.
26 28
5 INPUT-YEAR
PICTURE 99.
27 29
5 INPUT-WEEK
PICTURE 99.
28 3
5 INPUT-UNIT-SALES
PICTURE S9(6).
29 31
5 INPUT-DOLLAR-SALES
PICTURE S9(9)V99.
3 32 WORKING-STORAGE SECTION.
31 33 77 INPUT-FILE-STATUS
PICTURE XX.
32 34 77 RELATIVE-FILE-STATUS
PICTURE XX.
33 35 1 WORK-RECORD.
34 36
5 WORK-YEAR
PICTURE 99 VALUE .
35 37
5 WORK-WEEK
PICTURE 99.
36 38
5 WORK-UNIT-SALES
PICTURE S9(6).
37 39
5 WORK-DOLLAR-SALES
PICTURE S9(9)V99.
38 4 1 ERROR-INFO.
39 41
5 OP-NAME
PICTURE X(5).
4 42
5 FILLER
PICTURE X(1)
41 43
VALUE " ERROR ON ".
42 44
5 FILE-NAME
PICTURE X(13).
43 45
5 FILLER
PICTURE X(16)
44 46
VALUE " FILE STATUS IS ".
45 47
5 STATUS-VALUE
PICTURE XX.
46 48 1 ERROR-FLAG
PICTURE X VALUE SPACE.
47 49
88 ERROR-OCCURRED
VALUE "1".
48 5 1 INPUTEND
PICTURE X VALUE SPACE.
49 51
88 THE-END-OF-INPUT
VALUE "E".
52
5 53 PROCEDURE DIVISION.
54 DECLARATIVES.
55
56 INP-FILE-ERROR SECTION.
57
USE AFTER STANDARD ERROR PROCEDURE ON INPUT-FILE.
58 INPUT-FILE-ERROR.
51 59
MOVE "INPUT-FILE" TO FILE-NAME.
52 6
MOVE INPUT-FILE-STATUS TO STATUS-VALUE.
53 61
SET ERROR-OCCURRED TO TRUE.
62 REL-FILE-ERROR SECTION.
63
USE AFTER STANDARD ERROR PROCEDURE ON RELATIVE-FILE.
64 RELATIVE-FILE-ERROR.
54 65
MOVE "RELATIVE-FILE" TO FILE-NAME.
55 66
MOVE RELATIVE-FILE-STATUS TO STATUS-VALUE.
56 67
SET ERROR-OCCURRED TO TRUE.
68 END DECLARATIVES.
69 BEGIN-PROCESSING SECTION.
7 PROCESSING-CONTROL.
57 71
MOVE "OPEN" TO OP-NAME.
58 72
OPEN INPUT INPUT-FILE
73
OUTPUT RELATIVE-FILE.
59 74
IF ERROR-OCCURRED GO TO ERROR-TERMINATION.
61 75
SET REL-INDEX TO 1.
62 76
PERFORM READ-INPUT-FILE.
NOMCOPIA
FECH/CAM
5/24/94
5/24/94
383
5763CB1 V3RM5
Fuente COBOL AS/4
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN S NOMCOPIA
FECH/CAM
63 77
PERFORM PROCESS-DATA THRU READ-INPUT-FILE
78
UNTIL THE-END-OF-INPUT.
64 79
CLOSE RELATIVE-FILE INPUT-FILE.
65 8
IF ERROR-OCCURRED GO TO ERROR-TERMINATION.
67 81
STOP RUN.
82 ERROR-TERMINATION.
68 83
DISPLAY ERROR-INFO UPON REQUESTOR.
69 84
DISPLAY "PROCESSING TERMINATED DUE TO I-O ERROR"
85
UPON REQUESTOR.
7 86
STOP RUN.
87 PROCESS-DATA.
71 88
MOVE INPUT-RECORD TO RELATIVE-RECORD (REL-INDEX).
72 89
IF REL-INDEX NOT = 5
73 9
SET REL-INDEX UP BY 1
91
ELSE
74 92
SET REL-INDEX TO 1
75 93
PERFORM RELATIVE-FILE-WRITE.
94 READ-INPUT-FILE.
76 95
MOVE "READ" TO OP-NAME.
77 96
READ INPUT-FILE
78 97
AT END SET THE-END-OF-INPUT TO TRUE.
79 98
IF ERROR-OCCURRED GO TO ERROR-TERMINATION.
99 RELATIVE-FILE-WRITE.
81 1
MOVE "WRITE" TO OP-NAME.
82 11
WRITE RELATIVE-RECORD-1.
83 12
IF ERROR-OCCURRED GO TO ERROR-TERMINATION.
\ \ \ \ \
F I N
D E
F U E N T E
\ \ \ \ \ 5763CB1 V3RM5
Mensajes COBOL AS/4
INST
\
IDMEN: LBL27 GRAVEDAD: 1 NUMSEC:
Mensaje . . . . :
No se encuentra I-O SECTION. Se asume la presente
\
17 IDMEN: LBL65 GRAVEDAD: NUMSEC: 19
Mensaje . . . . :
Bloqueo/Desbloqueo para archivo 'RELATIVE-FILE'
se realizar por medio del cdigo generado por compilador.
\
24 IDMEN: LBL65 GRAVEDAD: NUMSEC: 26
Mensaje . . . . :
Bloqueo/Desbloqueo para archivo 'INPUT-FILE'
se realizar por medio del cdigo generado por compilador.
\ \ \ \ \
D E
M E N S A J E S
\ \ \ \ \
Resumen de mensajes
Total
Info(-4)
Aviso(5-19)
Error(2-29)
Grave(3-39)
Terminal(4-99)
3
2
1
Errores secuencia . . . . . . . . . :
F I N
F I N
D E
C O M P I L A C I N \ \ \ \ \
384
5763CB1 V3RM5
Fuente COBOL AS/4
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
1 1 IDENTIFICATION DIVISION.
2 2 PROGRAM-ID. UPDTREL.
3
3 4 ENVIRONMENT DIVISION.
4 5 CONFIGURATION SECTION.
5 6 SOURCE-COMPUTER.
IBM-AS4.
6 7 OBJECT-COMPUTER.
IBM-AS4.
7 8 INPUT-OUTPUT SECTION.
8 9 FILE-CONTROL.
9 1
SELECT RELATIVE-FILE ASSIGN TO DISK-FILED
1 11
ORGANIZATION IS RELATIVE
11 12
ACCESS IS SEQUENTIAL
12 13
RELATIVE KEY INPUT-WEEK
13 14
FILE STATUS STATUS-VALUE.
14 15
SELECT INPUT-FILE ASSIGN TO DISK-FILES2
15 16
FILE STATUS STATUS-VALUE.
17
16 18 DATA DIVISION.
17 19 FILE SECTION.
18 2 FD RELATIVE-FILE LABEL RECORDS STANDARD.
19 21 1 RELATIVE-RECORD
PICTURE X(15).
2 22 FD INPUT-FILE LABEL RECORDS STANDARD.
21 23 1 INPUT-RECORD.
22 24
5 INPUT-YEAR
PICTURE 99.
23 25
5 INPUT-WEEK
PICTURE 99.
24 26
5 INPUT-UNIT-SALES
PICTURE S9(6).
25 27
5 INPUT-DOLLAR-SALES
PICTURE S9(9)V99.
26 28 WORKING-STORAGE SECTION.
29
27 3 1 INPUTEND
PICTURE X VALUE SPACE.
28 31
88 THE-END-OF-INPUT
VALUE "E".
29 32 1 WORK-RECORD.
3 33
5 FILLER
PICTURE X(21).
31 34
5 CURRENT-WORK-YEARS
PICTURE X(84).
32 35
5 NEW-WORK-YEAR.
33 36
1 WORK-YEAR
PICTURE 99.
34 37
1 WORK-WEEK
PICTURE 99.
35 38
1 WORK-UNIT-SALES
PICTURE S9(6).
36 39
1 WORK-DOLLAR-SALES
PICTURE S9(9)V99.
37 4 66 WORK-OUT-RECORD RENAMES
38 41
CURRENT-WORK-YEARS THROUGH NEW-WORK-YEAR.
39 42 1 ERROR-MESSAGE.
4 43
5 OP-NAME
PICTURE X(7).
41 44
5 FILLER
PICTURE X(1)
42 45
VALUE " ERROR ON ".
43 46
5 FILE-NAME
PICTURE X(13).
44 47
5 FILLER
PICTURE X(16)
45 48
VALUE " FILE STATUS IS ".
46 49
5 STATUS-VALUE
PICTURE X(2).
5
47 51 PROCEDURE DIVISION.
52 DECLARATIVES.
53 I-O-ERROR SECTION.
54
USE AFTER STANDARD ERROR PROCEDURE ON RELATIVE-FILE,
55
INPUT-FILE.
56 ERROR-PROCEDURE.
48 57
DISPLAY ERROR-MESSAGE.
49 58
DISPLAY "PROCESSING TERMINATING".
5 59
STOP RUN.
6 END DECLARATIVES.
61 MAIN-PROCEDURE SECTION.
62 BEGIN-PROCESSING.
51 63
MOVE "OPEN" TO OP-NAME.
52 64
MOVE "INPUT-FILE" TO FILE-NAME.
53 65
OPEN INPUT INPUT-FILE.
54 66
MOVE "RELATIVE-FILE" TO FILE-NAME.
55 67
OPEN I-O RELATIVE-FILE.
56 68
PERFORM READ-FILES.
57 69
PERFORM UPDATE-RELATIVE-FILE THRU READ-FILES
7
UNTIL THE-END-OF-INPUT.
58 71
MOVE "CLOSE" TO OP-NAME.
59 72
MOVE "INPUT-FILE" TO FILE-NAME.
6 73
CLOSE INPUT-FILE.
61 74
MOVE "RELATIVE-FILE" TO FILE-NAME.
62 75
CLOSE RELATIVE-FILE.
63 76
STOP RUN.
NOMCOPIA
FECH/CAM
5/24/94
5/24/94
385
5763CB1 V3RM5
Fuente COBOL AS/4
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
77 UPDATE-RELATIVE-FILE.
64 78
MOVE "REWRITE" TO OP-NAME.
65 79
MOVE "RELATIVE-FILE" TO FILE-NAME.
66 8
REWRITE RELATIVE-RECORD FROM WORK-OUT-RECORD.
81 READ-FILES.
67 82
MOVE "READ" TO OP-NAME.
68 83
MOVE "RELATIVE-FILE" TO FILE-NAME.
69 84
READ RELATIVE-FILE INTO WORK-RECORD
7 85
AT END SET THE-END-OF-INPUT TO TRUE.
71 86
MOVE "INPUT-FILE" TO FILE-NAME.
72 87
READ INPUT-FILE INTO NEW-WORK-YEAR
73 88
AT END SET THE-END-OF-INPUT TO TRUE.
\ \ \ \ \
F I N
D E
F U E N T E
\ \ \ \ \
5763CB1 V3RM5
Mensajes COBOL AS/4
INST
\
2 IDMEN: LBL65 GRAVEDAD: NUMSEC: 22
Mensaje . . . . :
Bloqueo/Desbloqueo para archivo 'INPUT-FILE'
se realizar por medio del cdigo generado por compilador.
\ \ \ \ \
NOMCOPIA
FECH/CAM
F I N
Total
Info(-4)
Aviso(5-19)
1
1
D E
M E N S A J E S
\ \ \ \ \
Resumen de mensajes
Error(2-29)
Grave(3-39)
Terminal(4-99)
:
88
:
en biblioteca XMPLIB.
F I N
D E
C O M P I L A C I N \ \ \ \ \
386
5763CB1 V3RM5
Fuente COBOL AS/4
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
1 1 IDENTIFICATION DIVISION.
2 2 PROGRAM-ID. RTRVREL.
3
3 4 ENVIRONMENT DIVISION.
4 5 CONFIGURATION SECTION.
5 6 SOURCE-COMPUTER.
IBM-AS4.
6 7 OBJECT-COMPUTER.
IBM-AS4.
7 8 SPECIAL-NAMES. REQUESTOR IS REQUESTOR.
8 9 INPUT-OUTPUT SECTION.
9 1 FILE-CONTROL.
1 11
SELECT RELATIVE-FILE ASSIGN TO DISK-FILED
11 12
ORGANIZATION IS RELATIVE
12 13
ACCESS IS DYNAMIC
13 14
RELATIVE KEY INPUT-WEEK
14 15
FILE STATUS IS RELATIVE-FILE-STATUS.
15 16
SELECT INPUT-FILE ASSIGN TO DISK-FILEF
16 17
FILE STATUS IS INPUT-FILE-STATUS.
17 18
SELECT PRINT-FILE ASSIGN TO PRINTER-QSYSPRT
18 19
FILE STATUS IS PRINT-FILE-STATUS.
2
19 21 DATA DIVISION.
2 22 FILE SECTION.
21 23 FD RELATIVE-FILE LABEL RECORDS STANDARD.
22 24 1 RELATIVE-RECORD-1.
23 25
5 RELATIVE-RECORD OCCURS 5 TIMES INDEXED BY REL-INDEX.
24 26
1 RELATIVE-YEAR
PICTURE 99.
25 27
1 RELATIVE-WEEK
PICTURE 99.
26 28
1 RELATIVE-UNIT-SALES
PICTURE S9(6).
27 29
1 RELATIVE-DOLLAR-SALES PICTURE S9(9)V99.
28 3 FD INPUT-FILE LABEL RECORDS STANDARD.
29 31 1 INPUT-RECORD.
3 32
5 INPUT-WEEK
PICTURE 99.
31 33
5 END-WEEK
PICTURE 99.
32 34 FD PRINT-FILE LABEL RECORDS OMITTED.
33 35 1 PRINT-RECORD.
34 36
5 PRINT-WEEK
PICTURE 99.
35 37
5 FILLER
PICTURE X(5).
36 38
5 PRINT-YEAR
PICTURE 99.
37 39
5 FILLER
PICTURE X(5).
38 4
5 PRINT-UNIT-SALES
PICTURE ZZZ,ZZ9.
39 41
5 FILLER
PICTURE X(5).
4 42
5 PRINT-DOLLAR-SALES
PICTURE $$$$,$$$,$$$.99.
41 43 WORKING-STORAGE SECTION.
42 44 77 RELATIVE-FILE-STATUS
PICTURE XX.
43 45 77 INPUT-FILE-STATUS
PICTURE XX.
44 46 77 PRINT-FILE-STATUS
PICTURE XX.
45 47 77 HIGH-WEEK
PICTURE 99 VALUE 53.
46 48 77 OP-NAME
PICTURE X(9).
47 49 1 INPUTEND
PICTURE X(9).
48 5
88 THE-END-OF-INPUT
VALUE "E".
49 51 PROCEDURE DIVISION.
52 DECLARATIVES.
53 RELATIVE-FILE-ERROR SECTION.
54
USE AFTER STANDARD ERROR PROCEDURE ON RELATIVE-FILE.
55 RELATIVE-ERROR-MSG.
5 56
DISPLAY OP-NAME, " ERROR ON RELATIVE-FILE ".
51 57
DISPLAY "FILE STATUS VALUE IS ", RELATIVE-FILE-STATUS.
52 58
DISPLAY "PROCESSING TERMINATED ".
53 59
STOP RUN.
6 INPUT-FILE-ERROR SECTION.
61
USE AFTER STANDARD ERROR PROCEDURE ON INPUT-FILE.
62 INPUT-ERROR-MSG.
54 63
DISPLAY OP-NAME, " ERROR ON INPUT-FILE ".
55 64
DISPLAY "FILE STATUS VALUE IS ", INPUT-FILE-STATUS.
56 65
DISPLAY "PROCESSING TERMINATED ".
57 66
STOP RUN.
67 PRINT-FILE-ERROR SECTION.
68
USE AFTER STANDARD ERROR PROCEDURE ON PRINT-FILE.
69 PRINT-ERROR-MSG.
58 7
DISPLAY OP-NAME, " ERROR ON PRINT-FILE ".
59 71
DISPLAY "FILE STATUS VALUE IS ", PRINT-FILE-STATUS.
6 72
DISPLAY "PROCESSING TERMINATED ".
61 73
STOP RUN.
74 END DECLARATIVES.
NOMCOPIA
FECH/CAM
5/24/94
5/24/94
387
5763CB1 V3RM5
Fuente COBOL AS/4
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
75 MAIN-PROCEDURE SECTION.
76 MAIN-PROCESSING.
62 77
MOVE "OPEN" TO OP-NAME.
63 78
OPEN INPUT INPUT-FILE RELATIVE-FILE
79
OUTPUT PRINT-FILE.
64 8
MOVE SPACES TO PRINT-RECORD.
65 81
PERFORM READ-INPUT-FILE.
66 82
PERFORM CONTROL-PROCESS THRU READ-INPUT-FILE
83
UNTIL THE-END-OF-INPUT.
67 84
MOVE "CLOSE" TO OP-NAME.
68 85
CLOSE RELATIVE-FILE
86
INPUT-FILE
87
PRINT-FILE.
69 88
STOP RUN.
89 CONTROL-PROCESS.
7 9
IF (END-WEEK = SPACES OR END-WEEK = )
71 91
PERFORM RANDOM-PROCESS
92
ELSE
72 93
PERFORM SEQUENTIAL-PROCESS.
94 READ-INPUT-FILE.
73 95
MOVE "READ" TO OP-NAME.
74 96
READ INPUT-FILE
75 97
AT END SET THE-END-OF-INPUT TO TRUE.
98 RANDOM-PROCESS.
76 99
MOVE "READ" TO OP-NAME.
77 1
READ RELATIVE-FILE
78 11
INVALID KEY MOVE HIGH-WEEK TO RELATIVE-WEEK(1).
79 12
IF RELATIVE-WEEK(1) NOT EQUAL HIGH-WEEK
8 13
PERFORM PRINT-SUMMARY VARYING REL-INDEX FROM 1 BY 1
14
UNTIL REL-INDEX > 5.
15 SEQUENTIAL-PROCESS.
81 16
MOVE "READ" TO OP-NAME.
82 17
READ RELATIVE-FILE
83 18
INVALID KEY MOVE HIGH-WEEK TO RELATIVE-WEEK(1).
84 19
PERFORM READ-REL-SEQ
11
UNTIL RELATIVE-WEEK(1) GREATER THAN END-WEEK.
111
112 READ-REL-SEQ.
85 113
PERFORM PRINT-SUMMARY VARYING REL-INDEX FROM 1 BY 1
114
UNTIL REL-INDEX > 5.
86 115
MOVE "READ NEXT" TO OP-NAME.
87 116
READ RELATIVE-FILE NEXT RECORD
88 117
AT END MOVE HIGH-WEEK TO RELATIVE-WEEK(1).
118 PRINT-SUMMARY.
89 119
MOVE RELATIVE-YEAR (REL-INDEX) TO PRINT-YEAR.
9 12
MOVE RELATIVE-WEEK (REL-INDEX) TO PRINT-WEEK.
91 121
MOVE RELATIVE-UNIT-SALES (REL-INDEX) TO PRINT-UNIT-SALES.
92 122
MOVE RELATIVE-DOLLAR-SALES(REL-INDEX) TO PRINT-DOLLAR-SALES.
93 123
MOVE "WRITE" TO OP-NAME.
94 124
WRITE PRINT-RECORD AFTER ADVANCING 2 LINES.
\ \ \ \ \
F I N
D E
F U E N T E
\ \ \ \ \
5763CB1 V3RM5
Mensajes COBOL AS/4
INST
\
28 IDMEN: LBL65 GRAVEDAD: NUMSEC: 3
Mensaje . . . . :
Bloqueo/Desbloqueo para archivo 'INPUT-FILE'
se realizar por medio del cdigo generado por compilador.
\ \ \ \ \
NOMCOPIA
F I N
Total
Info(-4)
Aviso(5-19)
1
1
D E
M E N S A J E S
\ \ \ \ \
Resumen de mensajes
Error(2-29)
Grave(3-39)
Terminal(4-99)
:
124
:
en biblioteca XMPLIB.
F I N
D E
C O M P I L A C I N
\ \ \ \
388
FECH/CAM
NOMCOPIA
FECH/CAM
389
390
NOMCOPIA
FECH/CAM
NOMCOPIA
FECH/CAM
391
392
|
|
|
|
.B/
.C/
.D/
.E/
Significado
1
2
3
4
5
6
7
8
.F/
.G/
.H/
.I/
.J/
.K/
.L/
.M/
.N/
.O/
La Tabla Global de Mdulos (MGT) define un rea comn para el mdulo. La tabla se utiliza para pasar informacin a las
subrutinas en tiempo de ejecucin.
La Tabla Global del Programa (PGT) es un rea de comunicaciones para la unidad de ejecucin COBOL entera. Slo hay una
PGT para la unidad de ejecucin.
393
5763CB1 V3RM5
Fuente COBOL AS/4
INST NUMSEC -A 1 B..+....2....+....3....+....4....+....5....+....6....+....7..IDENTFCN
1 1 IDENTIFICATION DIVISION.
2 2 PROGRAM-ID.
XMPLDUMP.
3 3
AUTHOR.
PROGRAMMER NAME.
4 4
INSTALLATION. COBOL DEVELOPMENT CENTRE.
5 5
DATE-WRITTEN. 11/27/88.
6 6
DATE-COMPILED. 5/24/94 12:21:54.
7 7 ENVIRONMENT DIVISION.
8 8 CONFIGURATION SECTION.
9 9 SOURCE-COMPUTER. IBM-AS4.
1 1 OBJECT-COMPUTER. IBM-AS4.
11 11 INPUT-OUTPUT SECTION.
12 12 FILE-CONTROL.
13 13
SELECT FILE-1 ASSIGN TO DISK-SALES.
14 14 DATA DIVISION.
15 15 FILE SECTION.
16 16 FD FILE-1
17 17
LABEL RECORDS ARE STANDARD.
18 18 1 RECORD-1.
19 19
5 R-TYPE
PIC X(1).
2 2
5 R-AREA-CODE
PIC 9(2).
21 21
88 R-NORTH-EAST VALUES 15 THROUGH 3.
22 22
5 R-SALES-CAT-1
PIC S9(5)V9(2) COMP-3.
23 23
5 R-SALES-CAT-2
PIC S9(5)V9(2) COMP-3.
24 24
5 FILLER
PIC X(1).
25
25 26 WORKING-STORAGE SECTION.
26 27 1 W-SALES-VALUES.
27 28
5 W-CAT-1
PIC S9(8)V9(2).
28 29
5 W-CAT-2
PIC S9(8)V9(2).
29 3
5 W-TOTAL
PIC S9(8)V9(2).
31
3 32 1 W-EDIT-VALUES.
31 33
5 FILLER
PIC X(8) VALUE "TOTALS: ".
32 34
5 W-EDIT-1
PIC Z(7)9.9(2)-.
33 35
5 FILLER
PIC X(3) VALUE SPACES.
34 36
5 W-EDIT-2
PIC Z(7)9.9(2)-.
35 37
5 FILLER
PIC X(3) VALUE SPACES.
36 38
5 W-EDIT-TOTAL
PIC Z(7)9.9(2)-.
39
37 4 1 END-FLAG
PIC X(1) VALUE SPACE.
38 41
88 END-OF-INPUT VALUE "Y".
42
39 43 PROCEDURE DIVISION.
44\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
45\ ABRE LA ENTRADA, BORRA LOS TOTALES, LLAMA AL PROCESO
\
46\ PRINCIPAL, VISUALIZA LOS RESULTADOS Y TERMINA LA EJECUCIN
\
47\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
48 P-START.
4 49
OPEN INPUT FILE-1.
41 5
MOVE ZEROS TO W-SALES-VALUES.
42 51
PERFORM P-MAIN UNTIL END-OF-INPUT.
52
43 53
MOVE W-CAT-1 TO W-EDIT-1.
44 54
MOVE W-CAT-2 TO W-EDIT-2.
45 55
MOVE W-TOTAL TO W-EDIT-TOTAL.
46 56
DISPLAY W-EDIT-VALUES.
47 57
STOP RUN.
58
59\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
6\ LEE ARCH. ENTRADA Y SLO PROCESA LOS REG. CORRESPONDIENTES
\
61\ AL REA NOROESTE. AL LLEGAR FINAL DE ENTRADA, PONGA EL DIST. \
62\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
63 P-MAIN.
48 64
READ FILE-1 AT END SET END-OF-INPUT TO TRUE.
5 65
IF R-NORTH-EAST AND NOT END-OF-INPUT
51 66
ADD R-SALES-CAT-1 TO W-CAT-1, W-TOTAL
52 67
ADD R-SALES-CAT-2 TO W-CAT-2, W-TOTAL.
\ \ \ \ \
F I N
D E
F U E N T E
\ \ \ \ \
Excepcin MCH122 en programa XMPLDUMP en QTEMP en nmero de instruccin
MI 5C sentencia COBOL nmero 51.
La ltima operacin de E/S ha ocurrido en la instruccin 48..B/
LBE793-Informacin perteneciente al archivo FILE-1..C/
LBE795-El archivo est abierto.
LBE796-ltima operacin de E/S completada para el archivo era READ.
LBE797-ltimo estado de archivo era 4.
LBE791-ltimo estado de archivo ampliado era.
394
NOMCOPIA
FECH/CAM
3/7/94
3/22/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/7/94
3/22/94
3/7/94
3/7/94
3/7/94
2/17/94
3/7/94
2/17/94
2/17/94
2/17/94
2/17/94
2/17/94
2/17/94
2/17/94
3/7/94
2/17/94
2/17/94
2/17/94
2/17/94
2/17/94
2/17/94
2/17/94
2/17/94
2/17/94
2/17/94
2/17/94
2/17/94
2/17/94
2/17/94
2/17/94
2/17/94
2/17/94
2/17/94
2/17/94
2/17/94
2/17/94
2/17/94
2/17/94
2/17/94
2/17/94
2/17/94
2/17/94
2/17/94
2/17/94
.ADMID
496 BINARY(2)
.ADPGM
49B CHAR(1)
'XMPLDUMP '
.ADRLN
498 BINARY(2)
.ADRTN
47 POINTER(IP)
NULL
.ADRTYP
49A CHAR(1)
' '
''X
.ADTOD
4A5 CHAR(15)
'
'
''X
.ADTYP
491 BINARY(2)
.BINSUB
558 BINARY(4)
.BIN2
55C BINARY(2)
.BPCA
4B CHAR(32767)
'
A
T
D1
<HHH
D12
<HHH
D15
<H'
5A
+91
'HH
D15
<HHH
D22
<HHH
D99
<HHH
'
564
+181
' D1
<HHH
D23
<HHH
D25
<HHH
'
4B VALUE IN HEX '83DC19EB7A41A319E44444444C4FF14444444C88'X
4D8
+41
'88888C444114C4F1F24444444C8888888C44412'X
5
+81
'4C4F1F54444444C8888888C444134C4F1F54444444C8888888C44'X
528
+121
'4144C4F2F24444444C8888888C444154C4F9F9'X
55
+161
'4444444C8888888C444164C4FF14444444C8888888C4441'X
578
+21
'74C4F2F34444444C8888888C444184C4F2F54444444C88'X
5A
+241
'88888C44419'X
.BPCACTR
4C BINARY(2)
1
.BPCAFB
4C6 BINARY(2)
14
.BPCAMXR
4C2 BINARY(2)
163
.BPCARCD
4B POINTER(SPP) SPACE OFFSET
1632
'66'X
OBJECT
SALES
COBOLEX
SALESFILE
.BPCARIO
4C4 BINARY(2)
25
.BP1CA
4B CHAR(32767)
'
A
T
D1
<HHH
D12
<HHH
D15
<H'
5A
+91
'HH
D15
<HHH
D22
<HHH
D99
<HHH
'
564
+181
' D1
<HHH
D23
<HHH
D25
<HHH
'
4B VALUE IN HEX '83DC19EB7A41A319E44444444C4FF14444444C88'X
4D8
+41
'88888C444114C4F1F24444444C8888888C44412'X
5
+81
'4C4F1F54444444C8888888C444134C4F1F54444444C8888888C44'X
528
+121
'4144C4F2F24444444C8888888C444154C4F9F9'X
55
+161
'4444444C8888888C444164C4FF14444444C8888888C4441'X
578
+21
'74C4F2F34444444C8888888C444184C4F2F54444444C88'X
5A
+241
'88888C44419'X
.BP1CTR
4C BINARY(2)
1
.BP1FB
4C6 BINARY(2)
14
.BP1MXR
4C2 BINARY(2)
163
.BP1RCD
4B POINTER(SPP) SPACE OFFSET
1632
'66'X
OBJECT
SALES
COBOLEX
SALESFILE
.BP1RIO
4C4 BINARY(2)
25
.BSTRING
NOT ADDRESSABLE
.BUFFER
NOT ADDRESSABLE
.BUFPTR
77 POINTER(SPP) NULL
.CALERP
58 POINTER(SPP) SPACE OFFSET
1376
'56'X
OBJECT
PSSA
.CALLOWR
C7 CHAR(27)
' ETAOINSHRDLUCMFWYPVBGKQJXZ'
'485A381968995A288998493A4839486A6A897A58287929891A7A9'X
.CALPHAB
C2 CHAR(53)
' ETAOINSHRDLUCMFWYPVBGKQJXZETAOINSHRDLUCMFWYPVBGKQJXZ'
C2 VALUE IN HEX '4C5E3C1D6C9D5E2C8D9C4D3E4C3D4C6E6E8D7E5C2C7D2D8D1E7E985A381968995A288998493A483'X
C48
+41
'9486A6A897A58287929891A7A9'X
.CALUPPR
C55 CHAR(27)
' ETAOINSHRDLUCMFWYPVBGKQJXZ'
.CIMBSGN
BDA CHAR(6)
'123456789 JKLMNOPQR STUVWXYZ
ABCDEFGHI STUVWXYZ'
BDA VALUE IN HEX 'FF1F2F3F4F5F6F7F8F9DD1D2D3D4D5D6D7D8D9AA1A2A3A4A5A6A7A8A9BB1B2B3B4B5B6B7B8B9'X
C2
+41
'CC1C2C3C4C5C6C7C8C9EE1E2E3E4E5E6E7E8E9'X
.CNUMERC
C16 CHAR(1)
'123456789'
.CPADCHR
C8B CHAR(1)
' '
.CRCLEAR
D POINTER(SYP) OBJECT
QLRCLEAR
CONTEXT
QSYS
.CSEPSGN
BD8 CHAR(2)
'+-'
.DBUGRTN
45 POINTER(IP)
NULL
.DEVPTR
73 POINTER(SPP) SPACE OFFSET
324
'144'X
OBJECT
SALES
COBOLEX
SALESFILE
.DISPPOS
CB BINARY(2)
.DISPPTR
CA POINTER(SPP) NULL
.DLINENO
552 CHAR(6)
'
'
''X
.DMCACIN
87 BINARY(2)
121
.DMCACQR
872 BINARY(2)
66
395
.DMCBLKR
.DMCCPCL
.DMCCPOP
.DMCDBOF
.DMCDDS
.DMCDELT
.DMCDROP
.DMCFDEL
.DMCFEOD
.DMCFRCE
.DMCGET
.DMCGETD
.DMCGETK
.DMCLINK
.DMCODP
.DMCOFFS
.DMCPTGT
.DMCPUT
.DMCPUTD
.DMCRLSE
.DMCRSTD
.DMCSPDD
.DMCSPTB
.DMCTBLE
.DMCUPD
.DMPBDMJ
.DMPBDSE
.DMPCDFO
.DMPCDFP
.DMPDBFB
.DMPDBFL
.DMPDENT
3BD
178
17A
2
2C
31A
374
2C
2E8
31
338
36
388
3B
166
874
3E9
168
16A
158
15A
15C
7A5
5A
B4
28
5
78
A
C8
F
1
162
16
15E
17
16E
16C
17C
17E
164
1C6
79
19
144
144
19E
144
16C
194
1C6
22
1C6
1EE
216
23E
248
2A2
248
27
298
2C
2CA
324
2CA
2F2
31A
342
34C
3A6
34C
374
39C
CHAR(1)
'\'
BINARY(2)
13
BINARY(2)
17
BINARY(4)
74
CHAR(298)
'
R
A
+91
' TY
+181
'
3
CPF
\ '
VALUE IN HEX '88'X
+41
'199F4B83DC19EB76F83DC19EB76F'X
+81
'48A3E81119'X
+121
'E'X
+161
''X
+21
'F31'X
+241
'FFC3D7C65CE'X
BINARY(2)
69
BINARY(2)
71
CHAR(1)
' '
''X
BINARY(2)
111
BINARY(2)
69
BINARY(2)
77
BINARY(2)
14
BINARY(2)
69
BINARY(2)
CHAR(32767)
'E
M
M
F
A
+91
'
A
+181
'LES
COBOLEX
SALESFILE
A'
VALUE IN HEX '85214D414D4B141C6282C'X
+41
'143DC19EB7DFF'X
+81
'83DC36AE8'X
+121
'3DC19EB7189B19C'X
+161
'C4BC4C2E2C1D3C5E244444C3D6C2F3F8C5E7444'X
+21
'EE2C1D3C5E2C6C9D3C5414'X
+241
'11C1'X
BINARY(4)
32
BINARY(2)
69
BINARY(2)
69
BINARY(2)
69
BINARY(2)
69
BINARY(2)
69
BINARY(2)
69
BINARY(2)
BINARY(2)
1
BINARY(2)
69
NOT ADDRESSABLE
NOT ADDRESSABLE
BINARY(2)
144
POINTER(SPP) NULL
NOT ADDRESSABLE
CHAR(1)
' '
''X
CHAR(13)
DIMENSION(25)
(1)
'DATABASE
?
+91
'
'
VALUE IN HEX 'C4C1E3C1C2C1E2C54432E4545454545456F45'X
+41
'454545BFD4545D111'X
+81
2 LINES OF ZEROES SUPPRESSED
(2)
'
SALESFILE
+91
'
'
VALUE IN HEX '911E2C1D3C5E2C6C9D3C54'X
+41
'E'X
+81
''X
+121
'11'X
(3)
'
R
+91
'
R
AA
'
VALUE IN HEX '221484'X
+41
'111233'X
+81
'199EDFF18199BB18181'X
+121
''X
(4)
'
R
A
TY
+91
'
'
VALUE IN HEX '88199F4B8'X
+41
'3DC19EB76F83DC19EB76F48'X
+81
'A3E81119E'X
+121
''X
(5)
'
+91
'
CPF
\
T
'
VALUE IN HEX ''X
+41
''X
+81
'F31FFC3D7C65CE3C'X
396
'
'
'
DBSA'
'
'
'
'
3 '
3C4
3CE
428
3CE
3F6
41E
446
45
4AA
45
478
4A
4C8
4D2
52C
4D2
4FA
522
54A
554
5AE
554
57C
5A4
5CC
5D6
63
5D6
5FE
626
64E
658
658
68
6A8
6D
14E
149
14EA
149
14B8
14E
.DMPDEVN
.DMPDIOF
.DMPDRN
.DMPDSEK
.DMPDVNM
.DMPENT
.DMPFBAC
.DMPFBAT
.DMPFBCL
.DMPFBCT
.DMPFBDC
.DMPFBDE
.DMPFBDU
.DMPFBFN
.DMPFBH1
.DMPFBH2
.DMPFBIB
.DMPFBLN
.DMPFBLO
.DMPFBLP
.DMPFBLS
1E6
144
144
19E
144
16C
194
B
1A
164
B
D8
1
128
15
178
1A
FF
F9
838
F2
83C
11
B2
EA
BC
117
74
+121
(6)
+91
VALUE IN HEX
+41
+81
+121
(7)
+91
VALUE IN HEX
+41
+81
+121
(8)
+91
VALUE IN HEX
+41
+81
+121
(9)
+91
VALUE IN HEX
+41
+81
+121
(1)
+91
VALUE IN HEX
+41
+81
+121
(11)
VALUE IN HEX
+41
+81
+121
(12-38)
(39)
+91
VALUE IN HEX
+41
+81
'A3'X
'
'
SALESFILE 2A248'
'1'X
''X
'11E1E2C1D3C5E2C6'X
'C9D3C54F2C1F2F4F8'X
'33FF3CF
U
&
'
A
T
D'
'F3F3C6C6FF3C3C6E11'X
'A45'X
'83DC19EB7A41A319E'X
'44444444C4F'X
'1
<HHH
D12
<HHH
D15
<HHH
D15
<HHH
'
D22
<HHH
D99
<'
'F14444444C8888888C444114C4F1F24444444C8888888C4441'X
'24C4F1F54444444C8888888C444134C4F1F54444444C'X
'8888888C444144C4F2F24444444C8888888C44415'X
'4C4F9F94444444C'X
'HHH
D1
<HHH
D23
<HHH
D25
<HHH
'
D88
<HHH
D99
<HHH '
'8888888C444164C4FF14444444C8888888C44417'X
'4C4F2F34444444C8888888C444184C4F2F54444444C8888888C4'X
'44194C4F8F84444444C8888888C4441A4C4F9'X
'F94444444C8888888C4'X
'
D22
<HHH
D1
<HHH
D66
<HHH
'2
<HHH
D77
<HHH
'
'441B4C4F2F24444444C8888888C4441C4C4F'X
'F14444444C8888888C4441D4C4F6F64444444C8888888C4441'X
'E4C4F2F24444444C8888888C4441F4C4F7F74444444C'X
'8888888C4441'X
'
H25 <
'
'14C8F2F5FFFFFFFF444C11144444444'X
'4444444444444444444444444444444444444444'X
'4444444444444444444444444444444444444444'X
'4444444444'X
' '
'
'
'
'4444444444444444444444444444444444444444'X
'4444444444444444444444444444'X
2 LINES OF ZEROES SUPPRESSED
CANNOT DUMP - SPACE ADDRESSING OR BOUNDARY ALIGNMENT EXCEPTION
CHAR(1)
'
'
''X
NOT ADDRESSABLE
NOT ADDRESSABLE
NOT ADDRESSABLE
CHAR(1)
'DATABASE '
CHAR(13)
'DATABASE
?
+91
'
'
VALUE IN HEX 'C4C1E3C1C2C1E2C54432E4545454545456F45'X
+41
'454545BFD4545D111'X
+81
2 LINES OF ZEROES SUPPRESSED
CHAR(32767)
'DBSALES
COBOLEX
SALESFILE
AR NU
+91
'&
T
DATABASE
+181
'
?
'
VALUE IN HEX 'C4C2E2C1D3C5E244444C3D6C2F3F8C5E7444'X
+41
'EE2C1D3C5E2C6C9D3C541411C1'X
+81
'D9D5A45A3193E'X
+121
'11211C4C1E3C1C2C1E2C544'X
+161
'32E4545454545456F45454545BFD4545'X
+21
'D111'X
+241
''X
CHAR(2)
'AR'
BINARY(2)
BINARY(2)
CANNOT DUMP - SPACE ADDRESSING OR BOUNDARY ALIGNMENT EXCEPTION
BINARY(2)
CHAR(5)
DIMENSION(32)
CANNOT DUMP - SPACE ADDRESSING OR BOUNDARY ALIGNMENT EXCEPTION
CHAR(1)
' '
''X
CHAR(1)
'SALES
'
NOT ADDRESSABLE
NOT ADDRESSABLE
BINARY(4)
41
CHAR(1)
'COBOLEX
'
BINARY(2)
POINTER(SPP) NULL
NOT ADDRESSABLE
'
'
'
'
D2'
'
'
'
'
397
.DMPFBL1
.DMPFBL2
.DMPFBMF
.DMPFBMN
.DMPFBND
.DMPFBOB
.DMPFBOF
.DMPFBOL
.DMPFBPO
.DMPFBQN
.DMPFBRC
.DMPFBRW
.DMPFBSC
.DMPFBSF
.DMPFBSL
.DMPFBSN
.DMPFBTY
.DMPFBUF
.DMPFBVL
.DMPIOFB
.DMPIOFS
.DMPKYLN
.DMPNDEV
.DMPOFBS
.DMPRCD
.DMPRCDN
.DMPRDUP
.DMPRFMT
.DMPRRN
.DMPSRC
.EXCODE
.EXMSGID
.EXPARMS
.EXPTR
DC
DE
123
E
83A
EE
1D
F4
11F
124
FB
F7
12
C6
D
DA
B
13
1C6
22
27A
1C6
1EE
216
23E
266
28E
2B6
1C6
22
1C6
1EE
216
23E
142
B
1DA
D3
D35
D3
D4
.FCLPP
.FCLSTC
.FCLSTC#
.FCLSTP
.FCLSTP#
.FCPARM
.FCPARMP
6DF
6DC
6D
6FF
6EA
5B
5D
.FCPTR
5A
.FIB
8A
8FA
954
8A
8C8
8F
918
94
968
62C
.FIB#OPT
.FIB#OP1
.FIBACC
.FIBACQ
.FIBACTL
.FIBALT
.FIBCA
.FIBCFMT
.FIBCFS
8E9
6E8
6C
8BE
955
961
8C4
BINARY(2)
14
BINARY(2)
CHAR(1)
' '
''X
CHAR(1)
'SALESFILE '
BINARY(2)
CANNOT DUMP - SPACE ADDRESSING OR BOUNDARY ALIGNMENT EXCEPTION
BINARY(4)
CHAR(1)
'
'
''X
CHAR(3)
'
'
''X
BINARY(4)
992
CHAR(1)
'
'
''X
BINARY(4)
17
BINARY(2)
CHAR(1)
'N'
CHAR(1)
'
'
''X
CHAR(1)
'
'
''X
BINARY(2)
CHAR(2)
'DB'
CHAR(1)
'U
& '
'A45'X
NOT ADDRESSABLE
CHAR(32767)
'
SALESFILE
+91
'
+181
'
R
R
AA
'
VALUE IN HEX '911E2C1D3C5E2C6C9D3C54'X
+41
'E'X
+81
''X
+121
'11221'X
+161
'48411123'X
+21
'3199EDFF18199BB18181'X
+241
''X
CHAR(144)
'
SALESFILE
+91
'
'
VALUE IN HEX '911E2C1D3C5E2C6C9D3C54'X
+41
'E'X
+81
''X
+121
'11'X
NOT ADDRESSABLE
BINARY(2)
1
CHAR(17126)
DIMENSION(2)
CANNOT DUMP - SPACE ADDRESSING OR BOUNDARY ALIGNMENT EXCEPTION
NOT ADDRESSABLE
NOT ADDRESSABLE
NOT ADDRESSABLE
CHAR(1)
'SALESFILE '
NOT ADDRESSABLE
NOT ADDRESSABLE
CHAR(1)
' '
''X
CHAR(4)
'
'
''X
CHAR(12)
'
'
''X
POINTER(SPP) SPACE OFFSET
3376
'D3'X
OBJECT
PSSA
CHAR(3)
'
'
''X
CHAR(12)
'
'
''X
CHAR(12)
'
PU
'
'D3D7E44621FF'X
CHAR(21)
'
'
''X
CHAR(21)
'
'
'92A2B2C2FF'X
CHAR(22)
'
'
POINTER(SPP) SPACE OFFSET
1456
'5B'X
OBJECT
PSSA
POINTER(SYP) OBJECT
QLREXHAN
CONTEXT
QSYS
CHAR(32767)
'FILE-1
4
+91
'
A
+181
'
'
VALUE IN HEX 'C6C9D3C56F1444444444444444444444444831FF4FF'X
+41
'44444444444111C'X
+81
'83DC36AE'X
+121
'83DC19EB789'X
+161
'44444444441'X
+21
2 LINES OF ZEROES SUPPRESSED
CHAR(8)
'
'
''X
NOT ADDRESSABLE
BINARY(2)
1
BINARY(2)
CHAR(8)
'
'
'164FF'X
CHAR(1)
' '
''X
CHAR(22)
'
'
''X
CHAR(1)
'
'
''X
CHAR(2)
'4'
398
'
'
'
'
'
.FIBCFS1
.FIBCFS2
.FIBCHAN
.FIBCKID
.FIBCOP
.FIBCRP
.FIBCTID
.FIBCTL
.FIBCUR
.FIBCURK
.FIBOP
.FIBOP1
.FIBOP2
.FIBOP3
.FIBOP4
.FIBORG
.FIBORRN
.FIBOTP
.FIBPTR
8C4
94C
92
955
8C
8E4
957
75
8C
634
68E
634
65C
8E5
94A
94
8BF
8DA
8A
62D
62F
631
62C
6
68
61
618
628
62A
627
8CA
61B
61D
61A
636
69
636
65E
634
633
8CE
62C
631
62D
62F
8D
8CC
8CA
8D2
8CE
9D6
9CC
8C6
8C6
953
9AD
953
97B
951
951
9AB
951
979
7A1
7A1
7A2
7A3
7A4
8E7
951
8EB
3B
.FIBP1
93
.FIBRECS
.FIBREL
.FIBRLPT
8ED
.FIBDEVC
.FIBDEVI
.FIBDEVN
.FIBFLGS
.FIBFMT
.FIBFN
.FIBK#LN
.FIBK#R#
.FIBK#RK
.FIBK#TP
.FIBKCGK
.FIBKCGR
.FIBKCPD
.FIBKCTL
.FIBKDLN
.FIBKDM#
.FIBKDTP
.FIBKEY
.FIBKFLN
.FIBKFMT
.FIBKFTP
.FIBKKEY
.FIBKKLN
.FIBKKTP
.FIBKLEN
.FIBKSTC
.FIBKSTE
.FIBKSTL
.FIBKSTT
.FIBLBO
.FIBLFT
.FIBLIN
.FIBLINE
.FIBLTO
.FIBMBRN
.FIBOFMT
.FIBOFS
.FIBOFS1
.FIBOKEY
.FIBOKLN
.FIBOLDK
6B
CHAR(1)
CHAR(4)
POINTER(SPP)
ZONED(2,)
CHAR(4)
CHAR(1)
CHAR(1)
POINTER(SPP)
CHAR(6)
CHAR(123)
+91
VALUE IN HEX
+41
BINARY(2)
BINARY(2)
CHAR(1)
CHAR(1)
CHAR(1)
CHAR(3)
BINARY(2)
BINARY(4)
BINARY(2)
CHAR(1)
CHAR(8)
CHAR(8)
CHAR(8)
BINARY(2)
BINARY(2)
BINARY(2)
CHAR(1)
BINARY(4)
BINARY(2)
CHAR(1)
CHAR(1)
CHAR(121)
+91
VALUE IN HEX
+41
BINARY(2)
CHAR(1)
BINARY(2)
CHAR(1)
CHAR(1)
BINARY(2)
BINARY(2)
BINARY(2)
BINARY(2)
BINARY(2)
BINARY(2)
BINARY(2)
CHAR(1)
CHAR(1)
CHAR(2)
CHAR(1)
CHAR(121)
+91
VALUE IN HEX
+41
BINARY(2)
CHAR(123)
+91
VALUE IN HEX
+41
CHAR(4)
CHAR(1)
CHAR(1)
CHAR(1)
CHAR(1)
BINARY(2)
BINARY(4)
BINARY(2)
POINTER(SPP)
''
'
'
''X
NULL
\\
''X
'
'
'31'X
' '
''X
'
'
''X
NULL
'
4'
'31FF4'X
'
'
'
''X
3 LINES OF ZEROES SUPPRESSED
1
'
'
' '
'8'X .E/
'
'
'FILE-1
'
' '
''X
'
'
'849'X
'
'
'24FF'X
'
'
'44FF'X
' '
'F'X
1
'
'
' '
'1'X
'
'
'
''X
3 LINES OF ZEROES SUPPRESSED
' '
''X
' '
''X
' '
''X
'SALESFILE '
'
'
''X
'' .F/
''
'
'
'
''X
3 LINES OF ZEROES SUPPRESSED
'
'
'
''X
3 LINES OF ZEROES SUPPRESSED
'
'
'31'X
' '
'3'X
' '
''X
' '
''X
' '
'1'X
1
1
SPACE OFFSET
228
'8A'X
OBJECT
PSSA
POINTER(SPP) SPACE OFFSET
12
'4B'X
OBJECT
SALES
COBOLEX
SALESFILE
BINARY(2)
12
NOT ADDRESSABLE
POINTER(SPP) NULL
'
'
'
'
399
.FIBROLC
.FIBROLE
.FIBROLL
.FIBRSL
.FIBRVAL
.FIBSPC
.FIBTAPE
.FIBTLEN
.FIBUBTO
.FIBUFCB
.FIBURTN
.FIBUSAV
.FIBUSE#
.FIBVERB
.FSKA
.FSKB
.FSPA
.FSPB
.FSTKS
.FWTRCD
.F1ACC
.F1ALTS
.F1CFS2
.F1CHAN
.F1COP
.F1CRP
.F1CUR
.F1DEVC
.F1DEVI
.F1DEVN
.F1FLGS
.F1FMT
.F1FN
.F1MBRN
.F1OFMT
.F1OFS
.F1OKLN
.F1OLDK
8CA
6C8
6CB
9
8F
.F1ORG
.F1OTP
.F1P1
91
5F
8D8
8C8
7C
72
711
77
6E5
6C3
8E9
8BE
94C
92
8C
8E4
8C
8E5
94A
94
8BF
8DA
8A
9D6
9CC
8C6
951
953
9AD
953
97B
8E7
8EB
93
.F1RECS
.F1SPC
.F1UBTO
.F1UFCB
8ED
8CA
9
8F
.F1URTN
.F1USE#
.F1VERB
.IOCPTR
91
8D8
8C8
86
.IOEPTR
84
.IOFDBEX
.IOOPTR
78
85
.IORTN
3A
.IP1
C9
.MAINRTN
44
.MGT
.MGTBIN8
.MGTB81
.MGTCNTR
23
347
347
2C
3C
39
328
31C
25
.MGTCPGM
.MGTDBUG
.MGTEXCP
.MGTFIB
NOT ADDRESSABLE
NOT ADDRESSABLE
NOT ADDRESSABLE
NOT ADDRESSABLE
NOT ADDRESSABLE
CHAR(14)
'
'
''X
CHAR(8)
'
'
'114FF'X
BINARY(4)
POINTER(IP)
NULL
POINTER(SPP) SPACE OFFSET
2528
'9E'X
OBJECT
PSSA
POINTER(SPP) NULL
POINTER(IP)
NULL
BINARY(2)
BINARY(2)
4
BINARY(2)
BINARY(2)
BINARY(2)
BINARY(2)
BINARY(2)
BINARY(4)
BINARY(2)
1
CHAR(1)
' '
''X
CHAR(4)
'
'
''X
POINTER(SPP) NULL
CHAR(4)
'
'
'31'X
CHAR(1)
' '
''X
CHAR(6)
'
4'
'31FF4'X
BINARY(2)
BINARY(2)
1
CHAR(1)
'
'
CHAR(1)
' '
'8'X
CHAR(1)
'
'
CHAR(3)
'FILE-1
'
CHAR(1)
'SALESFILE '
CHAR(1)
'
'
''X
CHAR(2)
''
BINARY(2)
CHAR(121)
'
+91
'
'
VALUE IN HEX ''X
+41
3 LINES OF ZEROES SUPPRESSED
BINARY(2)
1
BINARY(2)
1
POINTER(SPP) SPACE OFFSET
12
'4B'X
OBJECT
SALES
COBOLEX
SALESFILE
BINARY(2)
12
CHAR(14)
'
'
''X
POINTER(IP)
NULL
POINTER(SPP) SPACE OFFSET
2528
'9E'X
OBJECT
PSSA
POINTER(SPP) NULL
BINARY(2)
CHAR(2)
' '
'4'X
POINTER(SPP) SPACE OFFSET
1952
'7A'X
OBJECT
PSSA
POINTER(SYP) OBJECT
QDBGETM
CONTEXT
QSYS
POINTER(SPP) NULL
POINTER(SPP) SPACE OFFSET
224
'8C'X
OBJECT
PSSA
POINTER(IP)
STMT 48
INSTR # 4F
OBJECT
XMPLDUMP
CONTEXT
QTEMP
POINTER(IP)
STMT 52
INSTR # 65
OBJECT
XMPLDUMP
CONTEXT
QTEMP
POINTER(SYP) OBJECT
QLRMAIN
CONTEXT
QSYS
CHAR(16)
'COBOL MGT .LR' .G/
CHAR(8)
'
'
''X
BINARY(4)
BINARY(4)
DIMENSION(2)
(4-2)
POINTER(SYP) NULL
CHAR(1)
''
CHAR(7)
'
' .H/
POINTER(SPP) SPACE OFFSET
228
'8A'X
400
'
.MGTFUNC
.MGTIND
.MGTINVC
.MGTLIB
.MGTMSGI
.MGTMSGN
.MGTMSGR
.MGTMSGS
.MGTMSGT
.MGTNAME
.MGTNEXT
.MGTOSZ
.MGTOVFL
.MGTPACK
.MGTPARM
.MGTPASA
345
323
329
32A
342
31A
41A
3F2
3F
3E
3C
3D
31
24
323
325
34F
4
27
BINARY(2)
CHAR(1)
(1-7)
(8)
(9-32)
BINARY(2)
CHAR(1)
CHAR(7)
BINARY(2)
POINTER(SPP)
POINTER(IP)
POINTER(SPP)
CHAR(1)
POINTER(SPP)
CHAR(1)
CHAR(1)
PACKED(31,)
POINTER(SPP)
POINTER(SPP)
.MGTPASC
.MGTPCS
.MGTPFM
.MGTPGM
27
37
327
2A
CHAR(16)
POINTER(SPP)
CHAR(1)
POINTER(SYP)
.MGTPGT
26
POINTER(SPP)
.MGTPLVL
.MGTPROG
.MGTPTP
361
41
38
BINARY(2)
CHAR(1)
POINTER(SPP)
.MGTPTR
46
POINTER(SPP)
.MGTRST
.MGTSEG
.MGTSEPT
2B
35F
28
POINTER(IP)
BINARY(2)
POINTER(SPP)
.MGTSOSZ
.MGTSPCD
.MGTSW
.MGTTYPE
.MGTUPTR
324
329
343
344
29
CHAR(1)
CHAR(1)
CHAR(1)
CHAR(1)
POINTER(SPP)
.MGT91
.NULLCL
.ODPBPTR
32A
7A
76
CHAR(1)
CHAR(1)
POINTER(SPP)
.ODPDBAS
89
POINTER(SPP)
.ONSAVE
.PBPDUM
.PBP3
4D
4D
8A
B4
CHAR(32)
VALUE IN HEX
POINTER(IP)
POINTER(IP)
.PERFCTR
55
BINARY(2)
.PGT
174
179A
17F4
174
1768
179
17B8
17E
188
183
177
177
1771
178F
179
174
176
175
CHAR(32767)
+91
+181
VALUE IN HEX
+41
+81
+121
+161
+21
+241
CHAR(1)
(1)
(2)
(3-32)
BINARY(2)
CHAR(16)
POINTER(SPP)
POINTER(SPP)
.PGTIND
.PGTINVC
.PGTLVL
.PGTMGTL
.PGTMGT1
OBJECT
PSSA
2
DIMENSION(32)
''
'1'
''
3 .I/
'QTEMP
'
'
'
''X
NULL
NULL
NULL
'XMPLDUMP '
NULL
''
''
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ''X
NULL
SPACE OFFSET
576
'168'X
OBJECT
PASA
'
'
'83DC37178'X
NULL
''
OBJECT
XMPLDUMP .J/
CONTEXT
QTEMP
SPACE OFFSET
5952
'174'X
OBJECT
PSSA
'XMPLDUMP '
SPACE OFFSET
2864
'B3'X
OBJECT
PSSA
SPACE OFFSET
56
'23'X
OBJECT
PSSA
NULL
SPACE OFFSET
''X
OBJECT
QINSEPT
CONTEXT
QSYS
''
''
' '
'8'X
'I'
SPACE OFFSET
1984
'7C'X
OBJECT
E34
PGMRS
11111
'1'
' '
'FF'X
SPACE OFFSET
''X
OBJECT
SALES
COBOLEX
SALESFILE
SPACE OFFSET
74
'2C'X
OBJECT
SALES
COBOLEX
SALESFILE
'
'
''X
NULL
STMT 42
INSTR # 3
OBJECT
XMPLDUMP
CONTEXT
QTEMP
1
.K/
'PGT .
1
'
QTEMP
XMPLDUMP
.
'
'
'D7C7E34FF4BF4444444483DC3633'X
'FF1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'X
'34D4B141D8E3C5D4D74444444444444444444444'X
'44421E2C1D4D7C4E4D4D7444444444444444444444438'X
'4B1'X
'29'X
'1'X
DIMENSION(32)
''
'1'
''
3 .L/
'PGT .
'
NULL
SPACE OFFSET
56
'23'X
OBJECT
PSSA
.'
'
401
.PNP3
.PTABLE
.PTHSIZE
.PTNUM
.PTSEG
.P21
.QLRDISP
B4
B4
B68
B3
B37
B39
B3B
CD
CC
.QLRXHAN
D5
.RCDFDBK
.RETURNP
.RTNPTR
88
82
56
.RUNRTN
.SAVKKEY
.SEPTP
.SIZERP
83
7A7
81
7A7
7CF
43
59
.SUBLEN
.SUBNAME
.SUBTXT
.SUBTXTA
D1
D12
D1
D2
.SUB2FST
.SUB2LEN
.SUB2SCD
.SUB2TP
D62
D6
D6C
D8
.SUB2TXT
.TC1
.TC2
.TMPN1
D6
BD4
BD6
CD
CD
.T1
.T2
.T3
.T1
.UCBCLMG
.UCBEDOP
.UCBFILE
.UCBFLGS
.UCBFLG1
.UCBFLG2
.UCBIBR@
B7
B7
4F
4F
51
51
53
53
9E
A3A
A94
9E
A8
A3
A58
A8
AA8
AD
A98
A99
A6
A8E
A8E
A8F
9F
.UCBINDX
.UCBIOF@
A8C
A2
.UCBLAST
.UCBLBID
.UCBLIB
.UCBLIBS
.UCBMBID
.UCBMBRS
.UCBMLIB
.UCBNXT@
.UCBOBR@
A82
A6A
A6C
A6A
A76
A76
A78
A3
A
.T2
.T3
.UCB
CHAR(48)
VALUE IN HEX
+41
CHAR(16)
BINARY(2)
BINARY(2)
CHAR(1)
PACKED(2,)
POINTER(SYP)
'
T
T
'
'43D3E33C61A43D3E33C8563'X
''X
'PT 1.
'
'D7E34FF14BF11F'X
16
1
''
25
OBJECT
QLRADRTN
CONTEXT
QSYS
POINTER(SYP) OBJECT
QLREXHAN
CONTEXT
QSYS
POINTER(SPP) NULL
POINTER(IP)
NULL
POINTER(SPP) SPACE OFFSET
576
'168'X
OBJECT
PASA
POINTER(IP)
NULL
CHAR(121)
'
+91
'
'
VALUE IN HEX ''X
+41
3 LINES OF ZEROES SUPPRESSED
POINTER(SPP) NULL
POINTER(SPP) SPACE OFFSET
1376
'56'X
OBJECT
PSSA
BINARY(2)
CHAR(1)
'
'
''X
CHAR(12)
'
'
''X
POINTER(SPP) SPACE OFFSET
3344
'D1'X
OBJECT
PSSA
CHAR(1)
'
'
''X
BINARY(2)
CHAR(1)
'
'
''X
POINTER(SPP) SPACE OFFSET
3424
'D6'X
OBJECT
PSSA
CHAR(22)
'
'
''X
CHAR(2)
' '
''X
CHAR(2)
' '
''X
CHAR(32)
'
'
VALUE IN HEX '25F'X
NOT ADDRESSABLE
PACKED(7,2)
88888.88
PACKED(7,2)
88888.88
CHAR(32)
'
'
VALUE IN HEX ''X
CHAR(32)
'
'
VALUE IN HEX ''X
CHAR(32)
'
'
VALUE IN HEX ''X
CHAR(32767)
'
A
A
A
A
A
W
+91
'
SALES
\LIBL
+181
'
"
31111186222'
VALUE IN HEX '83DC19EB73E83DC19EB7898'X
+41
'3DC19EB78983DC19EB74983DC19EB75A6'X
+81
''X
+121
'E2C1D3C5E244444FFB55CD3C9C2D344444FFB944444444'X
+161
'444444444444112FF1FF1654A22'X
+21
'1C148383C83A867FFF15F3F'X
+241
'FFF3F1F1F1F1F1FF8FFF6F2F2F2'X
CHAR(1)
' '
'2'X
CHAR(1)
' '
''X
CHAR(1)
'SALES
'
CHAR(2)
' '
'12'X
CHAR(1)
' '
'1'X
CHAR(1)
' '
'2'X
POINTER(SPP) SPACE OFFSET
12
'4B'X
OBJECT
SALES
COBOLEX
SALESFILE
BINARY(2)
1
POINTER(SPP) SPACE OFFSET
454
'1C6'X
OBJECT
SALES
COBOLEX
SALESFILE
CHAR(1)
'
'
BINARY(2)
-75
CHAR(1)
'\LIBL
'
CHAR(12)
' \LIBL
'
'FFB55CD3C9C2D344444'X
BINARY(2)
-71
CHAR(12)
'
'
'FFB94444444444'X
CHAR(1)
'
'
POINTER(SPP) NULL
POINTER(SPP) SPACE OFFSET
12
'4B'X
402
'
'
1'
.UCBODP@
9E
POINTER(SPP)
.UCBOPF@
A1
POINTER(SPP)
.UCBPARM
.UCBRLEN
.UCBRLVR
.UCBSEP@
.UFCBPTR
AB
AB2
A9
A4
72
BINARY(2)
BINARY(2)
CHAR(4)
POINTER(SPP)
POINTER(SPP)
.UFLGSAV
.USERTN
.USEWRK@
.U1CLMG
.U1FLGS
.U1IBF@
CF
5E
D9
A98
A8E
9F
CHAR(2)
POINTER(IP)
POINTER(SPP)
CHAR(1)
CHAR(2)
POINTER(SPP)
.U1OBF@
POINTER(SPP)
.U1SEQO
.U1UFCB
ABF
9E
CHAR(1)
POINTER(SPP)
.VALT1
B7
B7
662
7D
7D1
7C
7C2
7D8
7C
81A
7C
7E8
7CE
7D8
7D9
7DA
7DB
7DC
7DD
7DE
7DF
B28
B29
66
66B
B13
B4
AF
661
AC9
AC7
663
OBJECT
SALES
COBOLEX
SALESFILE
SPACE OFFSET
''X
OBJECT
SALES
COBOLEX
SALESFILE
SPACE OFFSET
176
'B'X
OBJECT
SALES
COBOLEX
SALESFILE
1
12
'1'
NULL
SPACE OFFSET
2528
'9E'X
OBJECT
PSSA
' '
''X
NULL
NULL
' '
'2'X
' '
'12'X
SPACE OFFSET
12
'4B'X
OBJECT
SALES
COBOLEX
SALESFILE
SPACE OFFSET
12
'4B'X
OBJECT
SALES
COBOLEX
SALESFILE
' '
'8'X
SPACE OFFSET
''X
OBJECT
SALES
COBOLEX
SALESFILE
'HHH
'
'8888888F'X
'5'
''
'89623' .M/
2
''
'
89623
2 LINES OF BLANKS SUPPRESSED
'2FFF8F9FF6F2F3FFFFFFFF'X
6 LINES OF ZEROES SUPPRESSED
' '
''X
''
''
''
''
''
''
''
''
' ' .N/
'Y'
'H25 '
' '
'
'
'
'
'TOTALS: '
25
3
15
CHAR(32)
VALUE IN HEX
.V5622
CHAR(1)
.WCBCNLS
CHAR(1)
.WCBJDAT
CHAR(7)
.WCBLURC
BINARY(2)
.WCBPINF
BINARY(2)
.WCBSWTC
CHAR(8)
.WCBUDTA
CHAR(32767)
+91
VALUE IN HEX
+41
.WCBURC
CHAR(2)
.WCBU
CHAR(1)
.WCBU1
CHAR(1)
.WCBU2
CHAR(1)
.WCBU3
CHAR(1)
.WCBU4
CHAR(1)
.WCBU5
CHAR(1)
.WCBU6
CHAR(1)
.WCBU7
CHAR(1)
END-FLAG
CHAR(1)
END-OF-INPUT
CHAR(1)
FILE-1
CHAR(12)
FILLER
CHAR(1)
FILLER
CHAR(3)
FILLER
CHAR(3)
FILLER
CHAR(8)
R-AREA-CODE
ZONED(2,)
R-NORTH-EAST
PACKED(2,)
R-NORTH-EAST
PACKED(2,)
R-SALES-CAT-1
PACKED(7,2)
\\INVALID DATA 'FFFF'X .O/
R-SALES-CAT-2 667 PACKED(7,2)
\\INVALID DATA 'FFFF'X
R-TYPE
66 CHAR(1)
'H'
RECORD-1
66 CHAR(12)
'H25 '
W-CAT-1
AD ZONED(1,2)
311111.8
W-CAT-2
ADA ZONED(1,2)
622222.16
W-EDIT-TOTAL
B16 CHAR(12)
'
'
W-EDIT-VALUES AF CHAR(5)
'TOTALS:
'
W-EDIT-1
AF8 CHAR(12)
'
'
W-EDIT-2
B7 CHAR(12)
'
'
W-SALES-VALUES AD CHAR(3)
'31111186222221693333324'
W-TOTAL
AE4 ZONED(1,2)
933333.24
STATIC STORAGE FOR PROGRAM XMPLDUMP.QTEMP
BEGINS AT OFFSET 23 IN THE PROGRAM STATIC STORAGE AREA (PSSA)
AUTOMATIC STORAGE FOR PROGRAM XMPLDUMP.QTEMP
BEGINS AT OFFSET 16C IN THE PROGRAM AUTOMATIC STORAGE AREA (PASA)
'
403
404
Bibliografa
Para obtener informacin acerca de los temas relacionados con la programacin COBOL/400 en el sistema
AS/400, consulte las siguientes publicaciones AS/400
IBM:
Comunicaciones: Gua para la Gestin, SC10-8974
(SC41-0024)
Ttulo abreviado: Gua para la Gestin de
Comunicaciones
Device Configuration Guide, SC41-8106
Ttulo abreviado: Device Configuration Guide
Instalacin de Software, SC10-9279 (SC41-3120)
Ttulo abreviado: Instalacin de Software
System Programmers Interface Reference,
SC41-8223
Ttulo abreviado: System Programmers Interface
Reference
405
406
Glosario de Abreviaturas
Abreviatura
Significado
Explicacin
Abreviatura
Significado
Explicacin
Appl Dev
Tools
Consta de
programas
para el
sistema
AS/400,
como la
Ayuda para
el Diseo
de Pantallas (SDA)
y el Programa de
Utilidad
para la
Entrada del
Fuente
(SEU).
ASCII
American National
Standard Code for
Information Interchange
(Cdigo estndar americano para el intercambio
de informacin).
ANSI
American National
Standards Institute
Organizacin
formada
por fabricantes,
consumidores y
grupos de
intereses
generales,
que establece los
procedimientos
por los que
las organizaciones
acreditadas
crean y
mantienen
unos
estndares
industriales
voluntarios
en los
Estados
Unidos.
Cdigo
desarrollado por el
American
National
Standards
Institute
para el
intercambio
de informacin
entre sistemas de
proceso de
datos, sistemas de
comunicaciones
de datos y
equipos
asociados.
El juego de
caracteres
ASCII
consta de
caracteres
de 8 bits,
que a su
vez
constan de
caracteres
de control
de 7 bits y
de caracteres simblicos,
adems de
un bit de
comprobacin de
paridad.
407
Abreviatura
Significado
Explicacin
Abreviatura
Significado
Explicacin
CICS
Customer Information
Control Service (Servicio
de control de informacin al cliente).
Programa
bajo
licencia
IBM que
habilita las
transacciones
entradas en
las
estaciones
de trabajo
remotas
para que
los programas de
aplicacin
escritos por
el usuario
las
procesen
simultneamente.
Este programa con
licencia
incluye funciones para
la creacin,
utilizacin y
mantenimiento de
bases de
datos, as
como para
la comunicacin con
CICS o
cualquier
otro
sistema
operativo.
DBCS
Juego de Caracteres de
Doble Byte (Double-Byte
Character Set)
CL
Lenguaje de control
(Control Language)
Conjunto
de todos
los mandatos con
los que un
usuario
solicita funciones del
sistema.
Juego de
caracteres
en el que
cada
carcter
est representado por
2 bytes.
Los
idiomas
como el
japons,
chino y
coreano,
que contienen ms
smbolos
de los que
pueden
representarse
mediante
256 puntos
de cdigo,
necesitan
juegos de
caracteres
de doble
byte. Dado
que cada
carcter
necesita 2
bytes, el
teclado, la
visualizacin
en pantalla
y la impresin de
caracteres
DBCS precisan un
hardware y
unos programas que
den soporte
a DBCS. El
sistema da
soporte a
cuatro
juegos de
caracteres
de doble
byte:
japons,
coreano,
chino simplificado y
chino tradicional.
Comprese
con Juego
de Caracteres de un
Solo Byte.
408
Abreviatura
Significado
Explicacin
Abreviatura
Significado
Explicacin
DDM
Distributed Data
Management (Gestin
de Datos Distribuidos)
Funcin del
sistema
operativo
que permite
que un programa de
aplicacin o
un usuario
de un
sistema utilicen
archivos de
datos almacenados en
sistemas
remotos.
Los sistemas
deben estar
conectados
por una red
de comunicaciones;
asimismo,
los sistemas
remotos
deben utilizar DDM.
FIPS
Federal Information
Processing Standard
Estndar
oficial que
sirve para
mejorar la
utilizacin y
gestin de
los ordenadores y
del proceso
de datos en
las
empresas.
ICF
Intersystem
Communications
Function
Funcin del
sistema
operativo
que permite
que un programa se
comunique
de modo
interactivo
con otro
programa o
sistema.
I/O
Entrada/Salida
(Input/Output)
Datos proporcionados
al ordenador o
datos resultantes del
proceso
informtico.
LVLCHK
Comprobacin de Nivel
Funcin
que
compara
los identificadores de
registro de
nivel de
formato de
un archivo
que se va a
abrir con la
descripcin
de archivo
que forma
parte de un
programa
compilado,
con el fin
de determinar si el
formato de
registro
para el
archivo
cambiado
desde el
programa
se ha compilado.
DDS
EBCDIC
Extended Binary-Coded
Decimal Interchange
Code.
Descripcin
de la base
de datos
del usuario
o de
archivos de
dispositivo
que se
entra en el
sistema en
un formato
fijo. La
descripcin
se utiliza
para crear
archivos.
Juego de
caracteres
codificados
que consta
de 256
caracteres
de ocho
bits.
Glosario de Abreviaturas
409
Abreviatura
Significado
Explicacin
Abreviatura
Significado
Explicacin
ODT
Tabla de definicin de
objetos (Object
Definition Table)
Tabla
creada por
el sistema
en el
tiempo de
compilacin
para seguir
la pista de
los objetos
declarados
en el programa. Los
objetos de
programa
que estn
en la tabla
incluyen
variables,
constantes,
etiquetas,
listas de
operandos
y descripciones de
excepciones. La
tabla reside
en el objeto
programa
compilado.
SEU
Programa de Utilidad
para la Entrada del
Fuente (Source Entry
Utility)
Funcin del
programa
bajo
licencia
IBM
Herramientas
de Desarrollo de
Aplicaciones
AS/400 que
se utiliza
para crear
y cambiar
miembros
fuente.
SQL/400
Lenguaje de Consulta
Estructurado/400
(Structured Query
Language/400)
Programa
bajo
licencia
IBM que da
soporte a la
base de
datos
relacional
que se
utiliza para
insertar
informacin
en una
base de
datos y
para
obtener y
organizar
informacin
seleccionada desde
una base
de datos.
UPSI
Conmutador
externo de
programa
que efecta
las funciones de
un conmutador de
hardware.
Se proporcionan
ocho conmutadores:
UPSI 0 - 7.
OS/400
Operating System/400
Sistema
operativo
del AS/400.
SDA
Funcin del
programa
bajo
licencia
Herramientas
de Desarrollo de
Aplicaciones
AS/400
(AS/400
Application
Development
Tools) que
proporciona
ayuda al
usuario
para
disear,
crear y
mantener
pantallas y
mens.
410
ndice
Caracteres Especiales
/ (barra vertical) 12, 39
nmero mximo en un programa
* (asterisco) 12
93
A
abrir va de acceso de datos (ODP) 99
acerca de este manual xi
actualizacin
archivos indexados 371, 378
archivos relativos 371, 384
archivos secuenciales 373
y ampliacin de archivos secuenciales 371,
373
ADM/400
frase ADVANCING 243
para FORMATFILE 245
ajuste a los estndar ANSI 348
alfabtico, definicin del carcter 352
alfabeto-nombre, descripcin de 351
alias de definicin 117
almacenamiento, inicializacin de 291
almacenamiento, utilizacin de menos 22
alteracin temporal de archivos especificados por
el programa 97
alteracin temporal de mensajes 347
American National Standards Institute (ANSI) xiii,
1, 339, 348, 407
ajuste a estndares
con archivos indexados 251
con archivos relativos 260
con archivos secuenciales 261
COBOL ANSI 74 frente a COBOL ANSI
85 351
estndar xiii, 1, 348
ampliaciones de lenguaje no estndar
Vase ampliaciones IBM
ampliaciones IBM
archivos transaction 145241
formato, indicacin en sintaxis de 5
GOBACK
lectura 5
sealizacin 25, 347
soporte del juego de caracteres de doble byte
(DBCS) 355369
visin general 1
ampliaciones, listado de 1
anomala del compilador 16
anterior, compilacin del release 32
API (Interfaces del Programa de Aplicacin)
manejo de errores 55, 72
utilizacin con punteros 305
API QLRCHGCM 72
API QLRRTVCE 72
API QLRSETCE 55, 72
Aplicaciones, mensajes de Herramientas para el
Desarrollo de 343
archivo de comunicaciones de datos 145, 181
archivo de dispositivo de pantalla 146
archivo de funcin de comunicaciones
intersistemas (ICF)
archivos de dispositivo mltiples y
simples 170
clusula ACCESS MODE 182
clusula ASSIGN 181
clusula CONTROL-AREA 183
clusula FILE STATUS 182
clusula ORGANIZATION 181
clusula RELATIVE KEY 182
comunicaciones 164
utilizacin para especificar subarchivos 164
archivo de impresora por omisin 25
archivo de mensajes en tiempo de compilacin
QLBLMSG 347
archivo de mensajes en tiempo de ejecucin
QLBLMSGE 347
archivo fuente por omisin (QLBLSRC) 10, 18
archivos
Vase tambin archivos de disco, archivos descritos externamente,archivos descritos por el
programa, archivos fuente
atributos de 46
cierre 352
claves 135
creacin de
indexado 371, 376
relativo 371, 382
secuencial 371
DATABASE 251
DATABASE frente a DISK 251
descripcin 371
descripcin externa 110
DISK 251
411
archivos (continuacin)
ejemplos
archivos indexados 376, 378
archivos relativos 382, 384
archivos secuenciales 371, 373
en sistemas AS/400 93, 371
especfica 243
FORMATFILE 244
lgicas 257
mtodos de 262
mtodos de proceso 251
organizacin indexada 251
organizacin secuencial 261
organizaciones relativas 260
PRINTER 243
programas de ejemplo 371388
recuperacin relativa de 371, 386
redireccionamiento de acceso a 94
relativa 260
salvaguarda de secuencia de registros 261
secuencial 261
tcnicas para procesar 371388
TRANSACTION 145
vas de acceso 262
archivos compartidos 97
archivos de bases de datos
Vase tambin archivos de disco
consideraciones del archivo DATABASE 251
consideraciones del archivo DISK 251
DATABASE frente a DISK 251
mtodos de proceso 251
archivos de disco 251
mtodos de proceso 264
archivos de dispositivo
consideraciones sobre el archivo
DATABASE 251
consideraciones sobre el archivo DISK 251
mltiple 170
nico 170
y E/S 93
archivos de dispositivo simple 170
archivos de inicializacin con registros
eliminados 263
archivos de mensaje 347
archivos descritos externamente 119, 246
alterar temporalmente funciones 136
aadir funciones 136
comprobacin del nivel 136
consideraciones sobre el uso 110
DDS para 114
412
386
B
barra vertical (/) 12, 39
bibliotecas, prueba de 57
binarios, rendimiento de tems 281
BLANK WHEN ZERO
definicin con clusula LIKE 270
bloque de informacin de archivo (FIB) 73
bloque, descripcin de 107
bloqueo de archivos 97
bloqueo de control del archivo de usuario
(UFCB) 73
bloqueo de registros de salida 107
bloqueo de registros y de archivos 97, 100
bloqueo de registros y de E/S no
satisfactorios 99
bloqueo, archivo y registro de 97
booleano, descripcin del literal 20
bucles de un programa 283, 284
bucles en un programa 283
bsqueda de caracteres DBCS en una tabla
BY CONTENT, definicin de 291
BY REFERENCE, definicin de 291
367
C
cambio del valor de las variables 65
cambios con el COBOL ANSI 74 351353
campo ATTRIBUTES 46
campo cambiar/fecha (CHGDATE) 44
campo COPYNAME 44
campo de datos 10
campo de entrada 147, 199
campo de longitud (LENGTH) 46
campo de nombre interno (I-NAME) 46
campo de nmero de instruccin (STMT) 45, 50
campo de salida 147
campo de tipo de clase de datos (TYPE) 46
campo DEFINED 49
campo FIPS-ID 48
campo fuente
campos 10
lgica, especificacin de la estructura 181
ndice
413
414
clusulas (continuacin)
JUSTIFIED 360
LIKE 152
LINAGE 243
OCCURS 152, 360
ORGANIZATION 181
ORGANIZATION IS INDEXED 252
PICTURE 152, 279, 361
RECORD KEY 135
REDEFINES 352, 360
RELATIVE KEY 182
RENAMES 361
SAME AREA 351
SAME RECORD AREA 351
SEGMENT-LIMIT 325
sintaxis, notacin para la 3
SORT-MERGE AREA 351
USAGE 152
VALUE 152, 361
WITH DEBUGGING MODE 329
clusulas de uso numrico 122
clusulas opcionales 3
EXTERNALLY-DESCRIBED-KEY 252
clave parcial, referencia a 253
clave relativa, definicin de 166
claves
coma flotante 133
comn 135
generacin de 127
registro 135
validez 252
claves comunes 135
claves de funcin
especificacin con DDS
Vase archivos de transaccin
y clusula CONTROL-AREA 184
claves de registro 135
CODE/400
cdigo de optimizacin 22
cdigos de retorno 79
cdigos de retorno principal/secundario 79
comentarios con caracteres DBCS 359
COMP-3, rendimiento e tems 280
compartido-para-actualizacin 97
compartido-para-lectura 97
compartido-sin-actualizacin 97
compilacin de programas COBOL
errores detectados por el compilador 58
intentos no satisfactorios 16
invocar al compilador 15
ndice
415
D
datos no referenciados, tems de 22
datos, deshacer edicin con manejo de errores
de 279
416
datos, traspaso de
BY CONTENT y BY REFERENCE 292
en grupos 293
DDS
Vase especificaciones de descripcin de datos
declarativa USE FOR DEBUGGING 332, 333
en la Divisin de Procedimientos 332
utilizacin de procedimientos 333
definiciones PICTURE 122
delimitacin de instrucciones SQL 13
dependencia de dispositivo 93
ejemplo 94
depuracin de lenguaje fuente 329
desatendida, ejecutar el programa en
modalidad 347
desbloquear registros de entrada 107
descendente, definicin de la secuencia de
clave 265
descripcin-texto 19
descripcin externa
alteracin temporal a 136
aadir funciones a 136
descripcin y campos sealizados de nmeros de
referencia 48
descripciones de archivo 114, 184
deshacer edicin 277
definicin 277
ejemplos 278
desplazamiento a teclado estndar, definicin de
carcter de 356
desplazamiento a teclado ideogrfico, definicin
de carcter de 356
desplazamiento relativo al lmite de 16 bytes 303
destino de la salida del compilador 37
devolver control desde un programa llamado 286
diagramas, sintaxis de 30
dinmico, definicin del proceso 182
direccionar archivos
Vase archivos relativos
direcciones
incremento mediante punteros 319
paso entre programas 317
diseo del programa 9
dispositivo de pantalla
DDS para 146
formato de registro 146, 148
distintivos de E-S 393
Divisin de Datos
archivos transaction 182, 184
argumentos para programa llamados 293
E
EBCDIC, definicin de caracteres 409
eficacia aumentada 22
ejecucin de programas COBOL/400
descripcin 53
lista de respuestas del sistema y modalidades
de respuesta 54
ejemplos
archivo FORMATFILE 244
archivos de impresora descritos
externamente 247
COBOL y archivos 111
ejemplos (continuacin)
condicin END-OF-PAGE 245
controles de compromiso 99, 103
correlacin de Divisin de Datos 45
datos grficos de longitud variable 141
DDS
generacin de clave 127
palabra clave CONCAT 128
palabra clave RENAME 130
palabra clave SST 132
para subarchivos 167, 169
para un archivo de dispositivo de
pantalla 146, 148
para un archivo de referencia de
campo 113
para un formato de registro 115
para un formato de registro con la palabra
clave ALIAS 117
para varios archivos de dispositivo 170
entrar CRTCBLPGM desde la lnea de mandatos 29
especificaciones de formato de registro 113,
116
estructura de programa 9
frase ROLLING 205
indicadores 154
instruccin COPY en instruccin
PROCESS 38
listado de mensajes de diagnstico 49
listado de mensajes FIPS 47
listado de opciones del compilador 20, 38
listado de referencias cruzadas 49
listado fuente 42
longitud de un campo de longitud variable 138
mensajes de visualizacin SEU 343
MOVE con punteros 301
proceso de archivos
archivos de secuencia 371, 373
archivos indexados 376, 378
archivos relativos 382, 384
programas de aplicacin de estaciones de
trabajo
actualizacin de pago 227
consulta de transacciones 210
consulta pedidos 216
punteros
alineacin 297
inicializacin con NULL 299
lista en cadena de procesos 316
traspaso de tems que contienen 303
y clusula REDEFINES 298
ndice
417
ejemplos (continuacin)
punteros (continuacin)
y registro especial LENGTH OF 299
y resultados de MOVE 301
punto de interrupcin 60
rastreo 66
recuperacin de errores 86
registro especial LENGTH con punteros 299
resultados COPY DDS 116, 125
START genrico 253, 254
unidades de ejecucin
con programa compartido 289
unidad nica 287
varias de ejecucin consecutiva 287
varias, de ejecucin simultnea 290
uso de verbos mediante listado de la
cuenta 45
utilizacin de punteros en una lista en
cadena 316
varios archivos de dispositivo 174
va de acceso de un archivo indexado 258
vuelco con formato 393
elecciones mostradas en la sintaxis 3
elementos de datos del puntero
definicin 295
elementos fundamentales 301
elementos de lenguaje
Vase estructura de programas
eliminados, inicializacin de archivos con
registros 23, 263
enlace, configuracin de la direccin de tems
de 300
Entorno de Desarrollo Cooperativo/400
entrada de control de archivo 93
de la Divisin de Entorno 180
entrada de proceso de archivo
TRANSACTION 180
entrada de descripcin de datos para datos
booleanos 151
entrada-salida, proceso de verbos de
desde la Versin 1, Release 3 84
entrada, proceso de verbos de entrada
desde la Versin 1, Release 3 84
entrar CRTCBLPGM desde la lnea de
mandatos 29
entrar CRTCBLPGM desde un programa CL 29
entrar programas fuente 9, 11
error, ejemplo de recuperacin de 86
errores
duplicacin 270
418
errores (continuacin)
frase ADVANCING con archivos
FORMATFILE 245
errores de codificacin 58
errores de duplicacin 270
errores de sintaxis
Vase errores de sintaxis
errores en tiempo de compilacin 58
errores en tiempo de ejecucin, comprobacin
para deshacer edicin 279
errores que conviene evitar 58
espaciado cudruple 39
espacio, definicin de punteros de 295
espacios del usuario
acceso mediante API 305
especificaciones de descripcin de datos (DDS)
archivos descritos externamente 252
archivos descritos por programa 110
archivos FORMATFILE 244
archivos mltiples de dispositivo 170
archivos TRANSACTION 145
campos clave 252
campos de datos 138
campos de datos grficos 139
campos de hora 138
campos de indicacin de la hora 138
campos de longitud variable 137
campos SAA 138
campos SST 132
claves de atencin de mandatos (CA) 146
claves de funcin 146
comprobacin de validez de la estacin de
trabajo 146
DD, descripcin de la opcin 119
DDR, descripcin de la opcin 119
DDS, descripcin de la opcin 119
DDSR, descripcin de la opcin 119
definicin 146
descripcin 112
ejemplos
especificacin de un formato de
registro 115
especificaciones para un archivo de bases
de datos 116
formatos, estructuras de datos generadas
por 214
generacin de claves 127
palabra clave CONCAT 128
palabra clave RENAME 130
palabra clave SST 132
para un archivo de dispositivo de
pantalla 148
F
Federal Information Processing Standard (FIPS)
COBOL estndar 1986 348
con caracteres DBCS 369
descripcin 347
desviaciones de sealizacin desde 25, 347,
369
estndares a los que el compilador se
adjunta xiii
mensajes 47, 345, 347
mdulos estndar 348
opciones 25
parmetro FLAGSTD 25, 47
FIB (bloque de informacin de archivo) 73
figurativa, constante NULL 299
FILLER
campos de coma flotante 133
fin de la lista en cadena, prueba para el 318
finalizacin de un programa llamado 286
FIPS, total de violaciones sealizadas 48
flechas que aparecen en la sintaxis 3
flotante, prueba de deshacer edicin 279
formato de archivo fuente
descripcin 10
longitud de registro 10
segmentos de programa 323, 324
ndice
419
formato de codificacin 6, 11
formato de registro
campos 146
composicin para el dispositivo de
pantalla 146
DDS para subarchivos 167, 169
ejemplo de especificacin de formato de
registro 110, 113, 116
especificacin, utilizacin de palabras clave
DDS en 112
indicadores 149
subarchivos 165
formato, notas adicionales sobre el nombre
de 133
formatos de codificacin proporcionados por
SEU 11
formatos de E/S 125
formatos de entrada/salida 125
formatos que utilizan el SEU
Vase programa de utilidad para la entrada del
fuente
frase ADVANCING PAGE 352
frase CORRESPONDING 268
frase END-OF-PAGE 352
frase END-READ 198, 201
frase END-REWRITE 202
frase END-WRITE 209
frase FOOTING 352
frase FORMAT 190, 197, 199, 201
frase GIVING 351, 352
frase INTO 196, 351
frase INVALID KEY 200, 202, 209
funcin desde la Versin 1, Release 3 84
frase NEXT MODIFIED 199
frase NO DATA 197
funcin desde la Versin 1, Release 3 84
frase NO REWIND 352
frase NOT AT END 197, 200
funcin desde Versin 1, Release 3 84
frase NOT INVALID KEY 200, 202, 209
funcin desde Versin 1, Release 3 84
frase REEL/UNIT 352
frase RELATIVE KEY 351
frase REMAINDER 352
frase ROLLING 205
frase STARTING 204
frase TERMINAL 191, 197, 200, 202, 203, 208
frase USING 352
frases
ADVANCING 243
420
frases (continuacin)
ADVANCING PAGE 352
AT END 197, 200
CORRESPONDING 20
END-OF-PAGE 352
END-REWRITE 202
END-WRITE 209
FOOTING 352
FORMAT 190, 197, 199, 201
GIVING 351, 352
INDICATORS 152, 191
INTO 196, 351
INVALID KEY 200, 202, 209
NEXT MODIFIED 199
NO DATA 197
NO REWIND 352
NOT AT END 197, 200
NOT INVALID KEY 200, 202, 209
REEL/UNIT 352
RELATIVE KEY 351
REMAINDER 352
ROLLING 205
STARTING 204
SUBFILE 191
TERMINAL 191, 197, 200, 202, 203, 208
USING 352
fuente, ejemplo de listado fuente 42
G
generacin de claves 127
generacin de formatos de E/S 125
generacin de la supervisin de mensajes 76
gestin de datos distribuido (DDM) 409
gestin de memoria
Vase segmentacin
Gestor para el Desarrollo de Aplicaciones/400
grupo, alineacin de punteros dentro de estructuras de 297
guin generado al copiar nombres ALIAS 119
H
herramientas para instalar programas fuente
hora, caracteres de separacin de la 39
hora, recuperacin de valores de 274
I
ICF
Vase archivo de funcin de comunicaciones
intersistemas
identificador
definicin en seccin de Almacenamiento de
Trabajo 270
llamo por 294
no referenciado 22
Identificadores de Juego Caracteres
(CCSID) 143
identificadores no referenciados 16
imprimir
edicin de valores de campo 244
en el rea de desbordamiento 244
espaciado 244
lneas mltiples 244
mantenimiento de formatos de impresin 244
paginacin 244
posicin del papel 243
salida desde el trabajo con la instruccin
WRITE 243
segn indicadores 244
independencia de dispositivo 93
independencia, dispositivo de 93
indexados, definicin de archivos 376
indicadores
asociada con claves de mandatos 146
clusula INDICATOR 152
consideraciones especiales para 152
consideraciones sobre el rendimiento 282
descripcin 121, 149
e tems de datos booleanos 151
ejemplo, utilizacin en programas de 154
en el rea de registro 150, 153
en un rea de indicador separada 150, 153,
282
entradas de descripcin de datos 151
estructuras 122
frase INDICATORS 152
palabra clave INDARA DDS 150
proceso del archivo TRANSACTION 149
programas de ejemplo 154
utilizacin 151
y la clusula ASSIGN 150
y la instruccin COPY 120, 124
informacin relacionada impresa
informacin sobre el control de dispositivo 149
inicializacin de almacenamiento 291
iniciar el compilador 15
inicio de sesin, deseditar prueba de 279
inicio de sesin, rendimiento y clusula PICTURE
de 280
ndice
421
422
instruccin GO TO 326
instruccin GOBACK 321
instruccin INSPECT 364
instruccin MERGE 327, 351, 367, 389
instruccin MOVE 335, 365
frase CORRESPONDING 268
utilizacin de punteros 301
instruccin OPEN 189
instruccin PERFORM 326, 352
instruccin PROCESS 356
mbito de las opciones con el mandato
CRTCBLPGM 38
consideraciones
alteracin temporal de archivos especificados por el programa 97
archivos DATABASE 251
archivos descritos por el programa y externamente 109
archivos DISK 251
bloqueo de archivos y registros 97
bloqueo de registros de salida 107
consideraciones sobre el control de compromiso 99
dependencia de dispositivo 93
desbloqueo de registros de entrada 107
mtodos de proceso para los tipos DISK y
DATABASE 251
spooling 95
visin general 267
COPY, utilizacin con la instruccin 37, 38
descripcin 33
especificacin de las opciones del
compilador 41
formato de 33
normas para 33
opciones 37
opciones del compilador especificadas en 33
opciones disponibles para 33
posicin de la instruccin 33
salida del compilador 38
tcnicas
actualizacin de archivos indexados 378
actualizacin de archivos relativos 384
Actualizacin y ampliacin de archivos
secuenciales 373
creacin de archivos indexados 376
creacin de archivos relativos 382
creacin de archivos secuenciales 371
proceso de archivos 371
recuperacin de archivos relativos 386
ndice
423
L
LDA (rea de datos local) 319
lectura en clave
liberacin de un registro ledo para la actualizacin 98
limitaciones
parmetro TGTRLS 32
limitations 93
lmite
definicin 100
registro 23
violacin 77, 263
lmite de registro 23
lmites de archivo 263
lmites de tamao interno 15
lmites, interno, tamao 15
lista de palabras reservadas y ACCEPT/DISPLAY
ampliada 23
lista de respuestas al sistema 54
listado de resumen de mandatos 40
listado OPTIONS 41
listados
archivo de salida por omisin 25
bsqueda de errores de sintaxis 40
caracteres DBCS en 369
correlacin de la Divisin de Datos 45, 63
ejemplo, listado fuente de 19, 42, 44
ejemplos de 41
especificacin del archivo de salida para 25
examinar
Vase programa de utilidad de entrada
fuente
longitud mnima de registro 25
mensajes
descripcin 50
desde el compilador COBOL/400 345
ejemplo 49
mensajes FIPS 47
opciones 41
opciones del compilador activas 20
referencias cruzadas 49
resumen de mandatos 40
utilizacin de verbos por medio de la
cuenta 20, 45
listados de referencias cruzadas
descripcin del listado 49
ejemplo 49
opciones CRTCBLPGM 19, 21
prueba, utilizacin en 63
y puntos de interrupcin 59
424
LL
llamada al compilador COBOL 15
llamadas entre programas que utilizan
punteros 303
llamar por identificador 294
M
mandato ADDMSGD (Aadir Descripcin de
Mensaje) 347
mandato ALCOBJ (Asignar Objeto) 97
mandato ALterar Temporalmente a Archivo de
Disquete (OVRDKTF) 94
mandato Alterar Temporalmente Archivo de Mensajes (OVRMSGF) 347
mandato Asignar Objeto (ALCOBJ) 97
mandato Cambiar Depuracin (CHGDBG) 57
mandato Cambiar Variable de Programa
(CHGPGMVAR) 65
mandato Crear Lista de Autorizaciones
(CRTAUTL) 28
mandato Crear Programa COBOL (CRTCBLPGM)
descripcin de 6
entrar desde la lnea de mandatos 29
entrar desde un programa CL 29
parmetro AUT 28
parmetro CVTOPT 24, 35
parmetro DUMP 28
parmetro EXTDSPOPT 36
parmetro FLAG 27, 36
parmetro FLAGSTD 25, 36, 38
parmetro GENLVL 19, 33
parmetro GENOPT 21, 35
parmetro ITDUMP (n) 28
parmetro MSGLMT 24
parmetro OPTION 19, 34, 38
parmetro PGM 18
parmetro PRTFILE 25
parmetro REPLACE 27
parmetro SAAFLAG 26, 36, 38
mandatos (continuacin)
Aadir Descripcin de Mensaje
(ADDMSGD) 347
Asignar Objeto (ALCOBJ) 97
Cambiar Depuracin (CHGDBG) 57
Cambiar Puntero (CHGPTR) 65
Cambiar Puntero de Nivel Superior
(CHGHLLPTR) 65
Cambiar Variable de Programa
(CHGPGMVAR) 65
Crear Lista de Autorizaciones (CRTAUTL) 28
Crear Programa COBOL (CRTCBLPGM)
Vase mandato Crear Programa COBOL
Finalizar Depuracin COBOL
(ENDCBLDBG) 331, 332
Iniciar Depuracin (STRDBG) 57
Iniciar Depuracin COBOL
(STRCBLDBG) 330, 332
Iniciar Programa de Utilidad para la Entrada del
Fuente (STRSEU)
Vase programa de utilidad para la entrada
del fuente
Otorgar Autorizacin de Objeto
(GRTOBJAUT) 28
Supervisar Mensaje (MONMSG) 16
Visualizar Datos de Rastreo
(DSPTRCDTA) 67
Visualizar Variable de Programa
(DSPPGMVAR) 65
Mandatos CL (lenguaje de control)
emisin mediante QCMDEXC en un
programa 267
para comprobar programas 57
para ejecutar programas 7
mandatos del lenguaje de control
Vase mandatos CL
mandatos, utilizacin de la sintaxis de 3
manejo de errores 71
API 55, 72
estndar 79
no estndar 81
visin general 71
manejo de errores de datos con deshacer
edicin 279
manejo de errores estndar 71, 79
manejo de errores no estndar 81
marcas de servicio x
marcas registradas x
mxima longitud de registro de los archivos
creados dinmicamente 23
ndice
425
mensajes
campo en el listado de mensajes de diagnstico 50
compilacin 345
diagnstico 49
estadsticas 50
FIPS 345
Herramientas para el Desarrollo de Aplicaciones 343
interactivo 343
niveles de gravedad 19, 25, 346
respuesta en un entorno interactivo 345
SAA, sealizacin 48
tiempo de compilacin 343
tiempo de ejecucin 344
y manejo de errores estndar 71
tipos 343
mensajes de diagnstico 49
metodologa para la instalacin de programas 9
mtodos de proceso para archivos
DATABASE 251
mtodos de proceso para archivos DISK 251
miembros 97
migracin
a COBOL ANSI 85 351
a lenguaje COBOL/400 351
programas COBOL ANSI 74 351
modalidad de acceso 182, 251, 260
DYNAMIC 257
RANDOM 257
modalidad de acceso dinmica 166, 182, 260,
264
modalidad de acceso secuencial 23, 182, 197,
199, 261, 262
modalidades de respuesta 54
modificacin de referencia
calcular desplazamiento 303
descripcin 274
e instruccin INSPECT 276
justificacin a la izquierda 276
recuperar valor de hora 274
y opcin *RANGE 22
mdulo clasificar-fusionar 341
mdulo de comunicaciones 341
mdulo de E-S relativo 340
mdulo de manipulacin del texto fuente 341
mdulo de ncleo 340
mdulo del transcriptor de informes 341
mdulo entre programas 341
426
N
name, assignment 93, 150, 181, 359
necesario
clusulas 3
divisiones 10
elementos en la sintaxis 3
nivel de bloqueo
(*CS), bajo control de compromiso 100
mximo, bajo control de compromiso 100
mnimo, bajo control de compromiso 100
nivel de campo de tems de datos (LVL) 46
nivel-gravedad 19, 27
nivel de gravedad de los mensajes 19, 25, 346
opcin nivel-gravedad-mxima 25
nivel de soporte de lenguaje 339, 340, 341, 348
niveles de diagnstico 346
no coincidentes, reducir aparicin de
registros 293
NO LOCK, rendimiento de frase 98, 283
nombre DD 119
nombre DDR 119
nombre DDS 119
nombre DDSR 119
nombre de alias 119
nombre de asignacin 93, 150, 181, 359
opcin-nombre-lista-autorizacin 28
nombre-programa 18
nombre-archivo-fuente 18
nombre-miembro-archivo-fuente 19
nombres de campo
-DDS aadidas a 129, 131
construccin de 122
notas adicionales 133
nombres de nivel de grupo 122
nombres de objeto OS/400 16
nombres definidos al especificar
GENOPT(*NOUNREF) 16
notacin, sintaxis de 2
notas acerca de la programacin
nmero de entradas en la tabla de definicin de
objetos (ODT) 15, 22
O
objetivo de este manual xi
objeto de programa
compilador, especificacin de opciones del 21
comprobacin de rango subindexado 22
especificacin de autorizacin a 28
optimizacin, especificacin en tiempo de compilacin de 22
salida desde el compilador 15
objeto, definicin del programa 6
observar un listado del compilador
Vase programa de utilidad para entrada del
fuente (SEU)
ODP (abrir va de acceso de datos) 99
ODP (va de acceso de datos abierta)
compartida 99
ODT (Tablas de Definicin de Objetos) 22
opcin *ACCUPDALL 26
opcin *ACCUPDNE 26
opcin *ALL 28
opcin *APOST 20
opcin *ATR 22
opcin *BLANK 19
opcin *BLK 23
opcin *CRTF 23
opcin *CURLIB 18, 25
opcin *CURRENT 27, 32
opcin *CHANGE 28
opcin *DATETIME 24
opcin *DDSFILLER 22
opcin *DEB1 26
opcin *DEB2 26
opcin *DFRWRT 26
opcin *DUMP 22
opcin *DUPKEYCHK 23, 282
opcin *EXCLUDE 28
opcin *EXTACCDSP 23
opcin *FLAG 26, 38
opcin *FS21DUPKY 24
opcin *GEN 19
opcin *GRAPHIC 24
opcin *HIGH 25
opcin *INTERMEDIATE 25
opcin *INZDLT 23, 263
opcin *LIBCRTAUT 28
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
opcin
*LIBL 18, 25
lmite de mensaje 25
*LINENUMBER 20
*LIST 21
*LSTDBG 21
*MAP 20, 38
*MINIMUM 25
nivel-release 27, 32
*NOATR 22
*NOBLK 23
*NOCRTF 23
*NODATETIME 24
*NODDSFILLER 22
*NODEB 26
*NODFRWRT 26
*NODUMP 22
*NODUPKEYCHK 23
*NOEXTACCDSP 23
*NOFIPS 25
*NOFLAG 26
*NOFS21DUPKY 24
*NOGEN 19
*NOGRAPHIC 24
*NOINZDLT 23
*NOLIST 21
*NOLSTDBG 21
*NOMAP 20
*NOMAX 25
nombre-archivo 25
nombre-biblioteca 18, 25
*NONUMBER 20
*NOOBSOLTE 26
*NOOPTIMIZE 22
*NOOPTIONS 20
*NOPATCH 22
*NOPRINT 21
*NOPRTCORR 20
*NORANGE 22, 282
*NOSECLVL 20
*NOSEG 25
*NOSEQUENCE 19
*NOSOURCE 19
*NOSRCDBG 20
*NOSTDERR 23
*NOSTDINZ 24
*NOSYNC 22
*NOUNDSPCHR 26
*NOUNREF 22
*NOVARCHAR 24
ndice
427
opcin *NOVBSUM 20
opcin *NOXREF 19, 21
opcin *NUMBER 20
opcin *OBSOLETE 26
opcin *OPTIMIZE 22
opcin *OPTIONS 20, 34, 38
opcin *OWNER 27
opcin *PGM 18
opcin *PGMID 18
opcin *PRINT 21
opcin *PRTCORR 20
listado de ejemplo 268
opcin *PRV 27, 32
opcin QSYSPRT (archivo de impresora por
omisin) 25
opcin *QUOTE 20
opcin *RANGE 22
modificacin de referencia 274
opcin REUSEDLT
Vase volver a utilizar registros eliminados
opcin *SECLVL 20
opcin *SEG1 26
opcin *SEG2 26
opcin *SEQUENCE 19
opcin *SOURCE 19, 38
opcin *SRCDBG 21
opcin *SRCMBRTXT 19
opcin *STDERR 23
opcin *STDINZ 24
opcin *SYNC 23
opcin *UNDSPCHR 26
opcin *UNREF 22
opcin *USE 28
opcin *USER 27
opcin V2R1M0 32
opcin V2R1M1 32
opcin V2R2M0 32
opcin *VARCHAR 24
opcin *VBSUM 20, 38
opcin *XREF 19, 21, 38
opcionales, tems de sintaxis 3
opciones
datos, opciones *NORANGE de formato
de 282
de parmetros del mandato
CRTCBLPGM 1832
listado 41
para la instruccin PROCESS 37
segmentacin 325
428
ndice
429
P
palabra clave ALIAS 117
palabra clave CONCAT 128
palabra clave INDARA 124
palabra clave RENAME 130
palabra clave SST 132
palabra reservada -DDS se aade a 129, 133
palabras clave
DDS 117, 128, 130, 132
en diagramas de sintaxis 2
INDARA 124
pantalla, definicin de los datos de formato
de 146
pantallas
Vase tambin pantallas
especificaciones de descripcin de datos (DDS)
para 146
Mensajes de visualizacin SEU 343
Pantalla de solicitud CRTCBLPGM 17
pantalla de solicitud STRCBLDBG 330
pantalla de visualizacin ENDCBLDBG 331
para programas de ejemplo
actualizacin de pagos 238, 239, 240
consulta de pedidos 226, 227
430
pantallas (continuacin)
para programas de ejemplo (continuacin)
consulta de transacciones 215
subarchivos 165
visualizar mensajes de programa 344
parmetro AUT para el mandato
CRTCBLPGM 28
parmetro CVTOPT 24, 35
parmetro DUMP para el mandato
CRTCBLPGM 28
parmetro EXTDSPOPT del mandato
CRTCBLPGM 36
parmetro FLAG para el mandato
CRTCBLPGM 27, 36
parmetro FLAGSTD para el mandato
CRTCBLPGM 25, 36, 47
parmetro GENLVL para el mandato
CRTCBLPGM 19, 33
parmetro GENOPT para el mandato
CRTCBLPGM 21, 35
parmetro ITDUMP para el mandato
CRTCBLPGM 28
parmetro MSGLMT 24
parmetro OPTION para el mandato
CRTCBLPGM 19, 38
parmetro PGM para el mandato
CRTCBLPGM 18
parmetro PRTFILE para el mandato
CRTCBLPGM 25
parmetro REPLACE para el mandato
CRTCBLPGM 27
parmetro SAAFLAG para el mandato
CRTCBLPGM 26, 36
parmetro SRCFILE para el mandato
CRTCBLPGM 18
parmetro SRCMBR para el mandato
CRTCBLPGM 18
parmetro TEXT para el mandato
CRTCBLPGM 19
parmetro TGTRLS para el mandato
CRTCBLPGM 27, 32
parmetro USRPRF para el mandato
CRTCBLPGM 27
parmetros del mandato CRTCBLPGM 18
Vase tambin mandato Crear Programa
COBOL (CRTCBLPGM)
parmetros, descripcin en el programa
llamado 293
prrafo SPECIAL-NAMES 12, 243, 351
partes de un programa 9
partes de un programa COBOL
Vase estructura de programa
paso de direcciones entre programas 317
opcin *PATCH 22
perfil de usuario 27
pilas mostradas en la sintaxis 3
plantilla del programa 22
posicin de la instruccin PROCESS 33
posicin del papel 243
preface xi
principal, descripcin del programa 286
procedimiento USE
funcin desde Versin 1, Release 3 84
proceso de archivo
Vase archivos
proceso de archivo especfico 243
proceso de verbos de E/S
desde Versin 1, Release 3 84
programa (PGT), definicin de tabla global
de 393
Programa de Utilidad para la Entrada del Fuente
Vase SEU
programa fuente
compilacin 15, 329
conmutador y compilacin WITH DEBUGGING
MODE 329
cuenta de verbos utilizados 20
definicin 2
entrar programas fuente
Vase SEU (programa de utilidad para la
entrada del fuente)
lneas de depuracin 337
listado 19, 42
programas fuente de edicin
Vase SEU (programa de utilidad para la
entrada del fuente)
registro especial DEBUG-ITEM 335
programa llamado
definicin 285
programa objeto
compilador, especificacin de opciones del 21
comprobacin de rango subindexado 22
especificacin de autorizacin a 28
optimizacin, especificacin en tiempo de compilacin de 22
salida desde el compilador 15
programa segmentado 323
programa, caracteres DBCS en listados de 369
ndice
431
punteros (continuacin)
alineacin en los lmites (continuacin)
tems de nivel 01 297
tems de nivel 77 297
asignacin de valor nulo 318
definicin 295, 296
definicin de alineacin 296
descripcin 295
desplazamiento entre tems de grupo 303
ejemplos
acceso al espacio de usuario 305
proceso de lista en cadena 316
en el almacenamiento de trabajo 297
en la instruccin CALL 303
en la instruccin MOVE 301
restricciones 301
en la seccin de archivos 297
en la seccin de Enlace 293
en los registros 299
en tablas 297
escritura 298
inicializacin 299
lectura 298
longitud de 295
manipulacin de tems de datos 296
proceso de una lista en cadena 316
valor nulo 318
y clusula REDEFINES 297
punteros de inicializacin 299
con constante figurativa NULL 299
puntos de interrupcin
como en la funcin OS/400 57
consideraciones para el uso 65
descripcin 59
ejemplo 60
rastreo, diferencias entren 66
utilizacin de 59, 64
visualizacin de elementos de tabla 62
visualizacin de variables 62
puntuacin 3
Q
QCMDEXC, utilizacin en un programa 29, 267
QLBLSRC (archivo fuente por omisin) 10, 18
QRLMAIN
MGTFUNC 281
QUOTE, valor de la constante figurativa 20
432
R
rango de subndices 22
rastreo de un bucle 284
rastreos
como una funcin OS/400 57
consideraciones 68
descripcin 66
ejemplo 66
utilizacin 66
READ WITH NO LOCK 97, 100
realimentacin de E-S 57, 108, 109
realimentacin de E-S 362
RECORD KEYS vlida 252
recuperacin 86
archivos transaction 87
con control de compromiso 86
ejemplo 88
procedimiento en el programa 87
con un dispositivo adquirido 87
con varios dispositivos adquiridos 88
recursiva, definicin de llamada 285
redefinicin de formatos 125
redefinicin, nombre de nivel de grupo 122
redireccin de archivos 94, 97
referencia a otros manuales xi
referencia a una clave parcial 253
registro 335
registro especial ADDRESS OF 292, 300
descripcin 300
diferencia con ADDRESS OF calculado 300
registro especial LENGTH OF 292, 299
registros
bloqueo
actualizar registros de bases de datos 97
por COBOL 97
y E/S anmala 99
y rendimiento 283
bloqueo de la salida 107
desbloquear entrada 107
que contienen punteros 299
reduccin de no coincidencias 293
salvaguarda de secuencia de 261
registros compartidos 97
registros de entrada 107
registros especiales
ADDRESS OF 292
LENGTH OF 292
definicin implcita 299
en Divisin de Procedimientos 299
S
S en clusula PICTURE 280
salida
compilador 38
compilador, visualizacin de 40
salida del compilador
Vase tambin mensajes
correlacin de Divisin de Datos 45
descripcin 38
ejemplos 38
examinar 40
Vase tambin programa de utilidad de programa fuente
listado de descripciones 38
listado de mensajes FIPS 47
listado de opciones 40, 41
listado de referencias cruzadas 49
listado de resumen de mandatos 40
mensajes 345
opciones CRTCBLPGM 38
opciones de listado 41
programa, caracteres DBCS en listados
de 369
salida del compilador 37, 38
supresin del listado fuente 42
ndice
433
sintaxis (continuacin)
comprobacin, unidad de 12
del mandato CRTCBLPGM 30
diagramas, uso de 3
elementos necesarios 3
elementos opcionales 3
flechas 3
lneas de depuracin 337
notacin 2
palabras clave en 2
pilas 3
puntuacin 3
smbolos 3
sintaxis del programa, lnea de depuracin 337
sistema operativo OS/400
entrada/salida 149
funciones para la depuracin 57
independencia y dependencia de
dispositivos 93
informacin de control de dispositivos 149
lmites de tamao interno 15
mandatos de punto de interrupcin 60
nombres de objeto 16
prueba, funciones para 57
seguridad, mantenimiento durante la
prueba 57
y mensajes 347
solicitudes mediante SEU
Vase programa de utilidad para la entrada del
fuente
soporte DBCS
Vase soporte del conjunto de caracteres de
doble byte
soporte de la Interfaz Comn de Programacin
(CPI) 341
soporte del juego de caracteres de doble byte
(DBCS) 355369
abrir 368
bsqueda en una tabla 367
clasificacin 367
comentarios con caracteres DBCS 359
comprobacin 357
comunicaciones entre programas 368
definicin 408
en la Divisin de Datos 360
en la Divisin de Entorno 359
en la Divisin de Identificacin 359
en la Divisin de Procedimientos 361367
especificacin de literales DBCS 356
grfico 368
434
T
Tabla de Definicin de Objetos (ODT) 22
tabla, atributos de los tems de 47
tabla, modificacin de referencia 275
tablas de codificacin 275
tamao del programa 22
tamao interno, lmite de 15
terminacin anmala del programa 54
trabajo de prearranque
trabajo prearranque 320
trabajo, recuperacin de una anomala de 86
trabajos por lotes, representacin de datos DBCS
en 367
transferencia de control a otro programa 285
transferencia del control de programa 285
traspaso de datos 291
en grupos 293
traspaso de tems de datos y sus longitudes 292
triple espacio 39
U
UFCB (bloqueo de control de archivo de
usuario) 73
ltimo lugar, descripcin del estado utilizado
en 286
unidad de comprobacin de sintaxis 11
unidad de ejecucin
definicin 37, 285
ejemplos
con programa compartido 289, 290
unidad de ejecucin simple 287
varias, de ejecucin consecutiva 287
utilizacin de caracteres de doble byte 355
utilizacin de menos almacenamiento 22
utilizacin de REPLACING en la instruccin COPY
de formato 2 133
utilizacin de un subarchivo para
visualizar 164166
utilizacin de verbos mediante el listado de la
cuenta 45
utilizacin del lenguaje COBOL/400
Vase lenguaje COBOL/400
V
valor de la constante figurativa QUOTE 20
valores nulos 139, 318
valores por omisin, indicacin de 16
VALUE IS NULL 318
variables de programa
cambio 65
punteros 65
variables, cambio de valores durante la
prueba 65
varios archivos de dispositivo 170179, 187,
194, 200
ndice
435
40
X
X3F (carcter de sustitucin) en los datos
436
143
Hoja de Comentarios
AS/400
COBOL/400 Gua del usuario
Versin 3 Release 1.0
Nmero de Publicacin SC10-9424-00
En general, est Ud. satisfecho con la informacin de este libro?
Muy
satisfecho
Satisfaccin general
Muy
insatisfecho
Muy
bien
Bien
Aceptable
Insatisfecho
Muy
insatisfecho
Organizacin
Informacin completa y precisa
Informacin fcil de encontrar
Utilidad de las ilustraciones
Claridad de la redaccin
Calidad de la edicin
Adaptacin a los formatos, unidades, etc. del pas
Comentarios y sugerencias:
Nombre
Compaa u Organizacin
Telfono
Direccin
IBM
Hoja de Comentarios
SC10-9424-00
Corte o Doble
Por la Lnea
PONER
EL
SELLO
AQUI
SC10-9424-00
Corte o Doble
Por la Lnea
IBM
Nmero de Programa:
5763-CB1
SC1-9424-