Вы находитесь на странице: 1из 18

Documento: Tema-1 Cobol II Batch Convenio Institucin: Universidad Mayor de San Marcos

Emitido el Elaborado por: 26-Abril-2011 Javier Vargas Flores Proyecto Programa de Formacin de Talentos Promocin I - 2011

Centro de Capacitacin: Stefanini IT Solutions


COBOL II Batch Bsico

Introduccin:
Al pensar en Cobol como lenguaje de programacin, debemos tener presente que nos referimos a un lenguaje dedicado a la gestin de datos, con una magnfica transportabilidad entre los distintos sistemas. Si se le llama lenguaje de programacin es porque realmente se considera como cualquier idioma, es decir tiene su gramtica, verbos, frases, prrafos y adems el Cobol tiene gran similitud al idioma ingls, ya que todo su entorno esta sacado de este idioma. Cobol adems es un lenguaje estructurado y sus partes se diferencian claramente en Divisiones. Estas Divisiones son 4, son obligatorias y cada una de ellas tiene una misin diferente dentro de cada programa como veremos posteriormente.

Grupo de Estudio Intikana

Pgina 1 de 18

Documento: Tema-1 Cobol II Batch Convenio Institucin: Universidad Mayor de San Marcos

Emitido el Elaborado por: 26-Abril-2011 Javier Vargas Flores Proyecto Programa de Formacin de Talentos Promocin I - 2011

Consideraciones:
A.- El programa Cobol se escribe o codifica secuencialmente en lneas de 80 columnas o caracteres o menos y consiste en la siguiente particin.

La Zona 1 .- Comprende las columnas 1,2,3,4,5 y 6 esta zona es muy usada para colocar las iniciales y fecha de modificacin, lo cual realizan algunos programadores y dejan un rastro, el cual servir posteriormente a otros para realizar un correcto seguimiento a los cambios efectuados con anterioridad. En la columna 6, a veces podemos encontrar un - este nos indica que es continuacin de la fila anterior (Este -, se usa ms en definiciones de reportes). La Zona 2 .- Comprende la columna 7, en ella podemos encontrar a veces un *, el cual deshabilita la lnea para no ser reconocida por el compilador y dejarla solo como un comentario. La Zona 3 .- Tambin se le llama rea A Comprende las columnas 8,9,10 y 11, es aqu donde se escriben los nombres de las divisiones, secciones, prrafos indicadores de FD y los niveles de variables 01 o 77. La Zona 4 .- Tambin se le llama rea B Comprende las columnas 12,13 al 72, en ella se incluirn todas las instrucciones del programa, las lneas de las secciones y los niveles de variables mayores a 01. La Zona 5 .- Las columnas 73, 74... al 80 no se utiliza y por lo tanto es ignorado por el compilador. B.- El punto (.), es un signo de vital importancia en Cobol, su uso indebido le podr traer problemas de compilacin o de lgica siendo esto ltimo, crtico para cualquier programa Cobol. Tener en cuenta que si al final de una lnea de instruccin el compilador no encuentra un punto, interpretar que la instruccin contina hasta encontrar el punto de fin de lnea. C.- Al igual que en otros lenguajes el Cobol dispone de palabras reservadas que por ningn motivo deben ser usadas en un programa Cobol como variables de trabajo o nombres de prrafo, adems la longitud mxima que debe tener una palabra es de 30 caracteres (Esto ltimo depende del compilador que est usando).

Grupo de Estudio Intikana

Pgina 2 de 18

Documento: Tema-1 Cobol II Batch Convenio Institucin: Universidad Mayor de San Marcos

Emitido el Elaborado por: 26-Abril-2011 Javier Vargas Flores Proyecto Programa de Formacin de Talentos Promocin I - 2011

D.- Uno de los motivos que tuve para escribir este curso es el poder transmitir mis conocimientos y experiencias al trabajar con este lenguaje, es por eso que les dir algo que considero muy importante para llevarse bien con l, !! TENGAN ORDEN !!, aunque no lo tengas en tu vida, pero aqu s debes tener, a continuacin les dir algunos puntos para tener en cuenta. 1.- Agrupen en un solo nivel jerrquico las variables que cambian constantemente su valor. 2.- Agrupen en un solo nivel jerrquico las variables que por ningn motivo cambian su valor. 3.- Codifiquen los prrafos siguiendo estndares establecidos tanto por su grupo de trabajo o el propio y mantngalo siempre en todo el desarrollo que hagan. 4.- Las instrucciones que conforman un prrafo no deben ser mayor a una pgina, esto con el fin de ayudar a la visualizacin de la misma. 5.- Las instrucciones deben estar siempre indentadas esto debe ser una costumbre, el resultado al final ser que tendrs programas ordenados y legibles.

E.- Aqu viene lo bueno Cmo llegar al alumno para que este curso no sea como otros? Aburrido! Escuch por all, es por eso que me tomar la libertad de innovar, empezando por mostrar un programa terminado el cual es de mi autora, se recomienda imprimirlo y usarlo para guiarse y ver donde est la instruccin que se explica en el curso. F.- Es obvio que cada manual estar orientado a la manera de trabajar de quien lo escribe, con ello quiero decir que habr cosas que no explicar mucho o incluso otras que omitir porque no las haya usado nunca o porque su uso est desactualizado, una explicacin perfectamente detallada deber venir en los manuales de cada uno de los compiladores que existen en el mercado informtico para Mainframe. Espero que comprendan esto, pero si les puedo asegurar que todos mis programas ms de 500 que tengo desarrollados utilizan lo que escribo aqu y ninguno me ha dado problemas.

Grupo de Estudio Intikana

Pgina 3 de 18

Documento: Tema-1 Cobol II Batch Convenio Institucin: Universidad Mayor de San Marcos

Emitido el Elaborado por: 26-Abril-2011 Javier Vargas Flores Proyecto Programa de Formacin de Talentos Promocin I - 2011

*================================================================ * * * PROYECTO : FACTURACIN 1.0 ( DAFA V10 ) * * * * OBJETIVO : OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO * * : OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO * * : OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO. * * : * * * * PROGRAMA : EJEMPLO1 * * * * TYPE : BATCH. * * * * PROGRAMADOR : STEFANINI IT SOLUTIONS * * * * DESCRIPCION FICHEROS: * * * * AAAAAAAA : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX * * BBBBBBBB : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX * * CCCCCCCC : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX * * DAFLGERO : SECUENCIAL ERRORES DE ARCHIVOS * * * * DESCRIPCION TABLAS DB2: * * * * : NINGUNO * * * * DESCRIPCION COPYS: * * * * AAAAAAAA : SECUENCIAL INPUT PRIMARIO: * * * * BBBBBBBB : SECUENCIAL INPUT SECUNDARIO: * * * * DAFCLGER : CONTIENE LOG DE ERRORES EN ARCHIVOS,* * : OCURRIDOS EN TIEMPO DE EJECUCION DEL* * : PROGRAMA. * ***************************************************************** * FECHA AUTOR DESCRIPCION * ***************************************************************** * DDMMAAAA XXXXXXX CREACION * ***************************************************************** *===============================================================* *= =* *= I D E N T I F I C A T I O N D I V I S I O N =* *= =* *===============================================================* IDENTIFICATION DIVISION. *======================== PROGRAM-ID. EJEMPLO1. AUTHOR. STEFANINI IT SOLUTIONS. INSTALLATION. TELEFONICA. DATE-WRITTEN. DD/MM/AAAA. DATE-COMPILED. *===============================================================* *= =* *= E N V I R O N M E N T D I V I S I O N =* *= =*

Grupo de Estudio Intikana

Pgina 4 de 18

Documento: Tema-1 Cobol II Batch Convenio Institucin: Universidad Mayor de San Marcos

Emitido el Elaborado por: 26-Abril-2011 Javier Vargas Flores Proyecto Programa de Formacin de Talentos Promocin I - 2011

*===============================================================* ENVIRONMENT DIVISION. *===================== CONFIGURATION SECTION. SOURCE-COMPUTER. IBM-370. OBJECT-COMPUTER. IBM-370. *SPECIAL-NAMES. * DECIMAL-POINT IS COMMA. INPUT-OUTPUT SECTION. *===================== FILE-CONTROL. *INPUT SELECT AAAAAAAA ASSIGN TO AAAAAAAI ORGANIZATION IS SEQUENTIAL FILE STATUS IS WS-FS-AAAAAAAA. ASSIGN TO BBBBBBBI ORGANIZATION IS SEQUENTIAL FILE STATUS IS WS-FS-BBBBBBBB. ASSIGN FILE STATUS ASSIGN FILE STATUS TO CCCCCCCO IS WS-FS-CCCCCCCC. TO DAFLGERO IS WS-FS-DAFCLGER.

SELECT BBBBBBBB *OUTPUT SELECT CCCCCCCC SELECT DAFCLGER

*==============================================================* *= =* *= D A T A D I V I S I O N =* *= =* *==============================================================* DATA DIVISION. *============== FILE SECTION. FD AAAAAAAA BLOCK CONTAINS LABEL RECORD RECORDING MODE DATA RECORD COPY AAAAAAAA. FD BBBBBBBB BLOCK CONTAINS LABEL RECORD RECORDING MODE DATA RECORD COPY BBBBBBBB. FD 0 IS IS IS RECORDS STANDARD F AAAAAAAA-REG.

0 IS IS IS

RECORDS STANDARD F BBBBBBBB-REG.

CCCCCCCC BLOCK CONTAINS 0

RECORDS

Grupo de Estudio Intikana

Pgina 5 de 18

Documento: Tema-1 Cobol II Batch Convenio Institucin: Universidad Mayor de San Marcos

Emitido el Elaborado por: 26-Abril-2011 Javier Vargas Flores Proyecto Programa de Formacin de Talentos Promocin I - 2011

LABEL RECORD IS STANDARD RECORDING MODE IS F DATA RECORD IS CCCCCCCC-REG. COPY CCCCCCCC. FD DAFCLGER BLOCK CONTAINS LABEL RECORD RECORDING MODE DATA RECORD REG-DAFLGER 0 RECORDS IS STANDARD IS F IS REG-DAFLGER. PIC X(200).

01

*===============================================================* *= =* *= WORKING STORAGE SECTION =* *= =* *===============================================================* WORKING-STORAGE SECTION. *-----------------------* *----------------------------------------------------------------* * VARIABLES * *----------------------------------------------------------------* 01 WS-EJEMPLO1. 03 WS-FS-AAAAAAAA PIC X(002). 03 WS-FS-BBBBBBBB PIC X(002). 03 WS-FS-CCCCCCCC PIC X(002). 03 WS-FS-DAFCLGER PIC X(002). 03 WS-FEC-SIST-TOTAL. 05 WS-TS-ANO PIC X(004). 05 WS-TS-MES PIC X(002). 05 WS-TS-DIA PIC X(002). 05 WS-TS-HOR PIC X(002). 05 WS-TS-MIN PIC X(002). 05 WS-TS-SEG PIC X(002). 05 WS-TS-RES PIC X(007). 03 WS-FEC-SIST. 05 WS-TS-ANO PIC X(004). 05 WS-TS-SL1 PIC X(001). 05 WS-TS-MES PIC X(002). 05 WS-TS-SL2 PIC X(001). 05 WS-TS-DIA PIC X(002). 03 WS-CTD-LEIDOS-AAAAAAAA PIC 9(010). 03 WS-CTD-LEIDOS-BBBBBBBB PIC 9(010). 03 WS-CTD-LEIDOS-IGUAL PIC 9(010). 03 WS-CTD-LEIDOS-MAYOR PIC 9(010). 03 WS-CTD-LEIDOS-MENOR PIC 9(010). 03 WS-AUX-REG-NO-MAESTRO PIC 9(010). 03 WS-CTD-GRABADOS-CCCCCCCC PIC 9(010). 03 WS-CTD-GRABADOS-DAFCLGER PIC 9(010). 03 WS-MR PIC 9(001). *----------------------------------------------------------------* * CONSTANTES * *----------------------------------------------------------------* 01 LT-EJEMPLO1. 03 LT-OPEN PIC X(08) VALUE 'OPEN'. 03 LT-READ PIC X(08) VALUE 'READ'. 03 LT-SELECT PIC X(08) VALUE 'SELECT'.

Grupo de Estudio Intikana

Pgina 6 de 18

Documento: Tema-1 Cobol II Batch Convenio Institucin: Universidad Mayor de San Marcos
03 03 03 03 03 03 03 03 LT-FETCH LT-CLOSE LT-SPACES LT-MENSAJE LT-UNO LT-S LT-N LT-MAX

Emitido el Elaborado por: 26-Abril-2011 Javier Vargas Flores Proyecto Programa de Formacin de Talentos Promocin I - 2011
PIC PIC PIC PIC PIC PIC PIC PIC X(08) X(08) X(01) X(30) S9(9) X(01) X(01) 9(04) VALUE VALUE VALUE VALUE COMP VALUE VALUE VALUE 'FETCH'. 'CLOSE'. SPACE. SPACES. VALUE +1. 'S'. 'N'. 1000.

*----------------------------------------------------------------* * SWITCHES * *----------------------------------------------------------------* 01 SWITCHES. 05 SW-FIN-AAAAAAAA PIC X(1) VALUE 'N'. 88 FIN-AAAAAAAA VALUE 'S'. 05 SW-FIN-BBBBBBBB PIC X(1) VALUE 'N'. 88 FIN-BBBBBBBB VALUE 'S'. *--------------------------------------------------------------* * CAMPOS DE TRABAJO. * *--------------------------------------------------------------* 01 WORK-AAAAAAAA. 03 WPRIM-LLAVE-AAAAAAAA PIC X(01). 01 WORK-BBBBBBBB. 03 WSECU-LLAVE-BBBBBBBB 01 WORK-BBBBBBBB-DUP. 03 WSECU-LLAVE-BBBBBBBB-DUP PIC PIC X(01). X(01).

*----------------------------------------------------------------* * COPYS PARA CONTROL DE ERRORES DE FICHEROS Y DB2 * *----------------------------------------------------------------* COPY DAFCLGER. PROCEDURE DIVISION. *----------------------------------------------------------------* * PROCESOS DEL PROGRAMA. * *----------------------------------------------------------------* A000-MAIN. PERFORM PERFORM UNTIL PERFORM B010-INICIO THRU EX-B010-INICIO. B020-PROCESO THRU EX-B020-PROCESO (FIN-AAAAAAAA OR WS-FS-AAAAAAAA = '10'). B030-FIN THRU EX-B030-FIN.

EX-A000-MAIN. EXIT. *----------------------------------------------------------------* * INICIO DEL PROGRAMA. * *----------------------------------------------------------------* B010-INICIO. INITIALIZE WS-EJEMPLO1, WORK-AAAAAAAA, WORK-BBBBBBBB. MOVE '-'

TO WS-TS-SL1.

Grupo de Estudio Intikana

Pgina 7 de 18

Documento: Tema-1 Cobol II Batch Convenio Institucin: Universidad Mayor de San Marcos

Emitido el Elaborado por: 26-Abril-2011 Javier Vargas Flores Proyecto Programa de Formacin de Talentos Promocin I - 2011

MOVE '-' TO WS-TS-SL2. MOVE FUNCTION CURRENT-DATE TO WS-FEC-SIST-TOTAL. MOVE WS-TS-ANO OF WS-FEC-SIST-TOTAL TO WS-TS-ANO OF WS-FEC-SIST. MOVE WS-TS-MES OF WS-FEC-SIST-TOTAL TO WS-TS-MES OF WS-FEC-SIST. MOVE WS-TS-DIA OF WS-FEC-SIST-TOTAL TO WS-TS-DIA OF WS-FEC-SIST. PERFORM C010-OPEN-FILE THRU EX-C010-OPEN-FILE. PERFORM X010-LEER-AAAAAAAA THRU EX-X010-LEER-AAAAAAAA. PERFORM X020-LEER-BBBBBBBB THRU EX-X020-LEER-BBBBBBBB. EX-B010-INICIO. EXIT. *----------------------------------------------------------------* * PROCESO PRINCIPAL * *----------------------------------------------------------------* B020-PROCESO. IF WORK-AAAAAAAA = WORK-BBBBBBBB ADD 1 TO WS-CTD-LEIDOS-IGUAL MOVE 1 TO WS-MR PERFORM UNTIL WORK-AAAAAAAA NOT = WORK-BBBBBBBB OR WS-FS-AAAAAAAA NOT = '00' PERFORM C020-GRABAR-CCCCCCCC THRU EX-C020-GRABAR-CCCCCCCC PERFORM X010-LEER-AAAAAAAA THRU EX-X010-LEER-AAAAAAAA END-PERFORM PERFORM X020-LEER-BBBBBBBB THRU EX-X020-LEER-BBBBBBBB ELSE IF WORK-AAAAAAAA > WORK-BBBBBBBB ADD 1 TO WS-CTD-LEIDOS-MAYOR PERFORM X020-LEER-BBBBBBBB THRU EX-X020-LEER-BBBBBBBB ELSE IF WORK-AAAAAAAA < WORK-BBBBBBBB MOVE 0 TO WS-MR PERFORM C020-GRABAR-CCCCCCCC THRU EX-C020-GRABAR-CCCCCCCC ADD 1 TO WS-CTD-LEIDOS-MENOR ADD 1 TO WS-AUX-REG-NO-MAESTRO PERFORM X010-LEER-AAAAAAAA THRU EX-X010-LEER-AAAAAAAA END-IF END-IF END-IF. EX-B020-PROCESO. EXIT. *----------------------------------------------------------------* * FIN DEL PROGRAMA. * *----------------------------------------------------------------* B030-FIN. PERFORM C030-ESTADISTICAS-PGM THRU EX-C030-ESTADISTICAS-PGM.

Grupo de Estudio Intikana

Pgina 8 de 18

Documento: Tema-1 Cobol II Batch Convenio Institucin: Universidad Mayor de San Marcos
PERFORM X980-STOP-RUN EX-B030-FIN. EXIT.

Emitido el Elaborado por: 26-Abril-2011 Javier Vargas Flores Proyecto Programa de Formacin de Talentos Promocin I - 2011
THRU EX-X980-STOP-RUN.

*----------------------------------------------------------------* * AQUI SE ABREN LOS ARCHIVOS Y VERIFICA STATUS DE APERTURA. * *----------------------------------------------------------------* C010-OPEN-FILE. OPEN INPUT AAAAAAAA, BBBBBBBB OUTPUT CCCCCCCC, DAFCLGER. MOVE SPACE TO REG-DAFCLGER. MOVE WS-FS-AAAAAAAA TO LGE-COD-STATUS. MOVE 'OPEN' TO LGE-TIP-OPERACION. MOVE 'AAAAAAAA' TO LGE-NOM-FILE. MOVE 'C010-OPEN-FILE' TO LGE-NOM-PARRAFO. MOVE 'ERROR AL OPEN' TO LGE-DES-MENSAJE. PERFORM X900-VALIDA-FILE-STATUS THRU EX-X900-VALIDA-FILE-STATUS. MOVE WS-FS-BBBBBBBB TO LGE-COD-STATUS. MOVE 'BBBBBBBB' TO LGE-NOM-FILE. PERFORM X900-VALIDA-FILE-STATUS THRU EX-X900-VALIDA-FILE-STATUS. MOVE WS-FS-CCCCCCCC TO LGE-COD-STATUS. MOVE 'CCCCCCCC' TO LGE-NOM-FILE. PERFORM X900-VALIDA-FILE-STATUS THRU EX-X900-VALIDA-FILE-STATUS. MOVE WS-FS-DAFCLGER TO LGE-COD-STATUS. MOVE 'DAFCLGER' TO LGE-NOM-FILE. PERFORM X900-VALIDA-FILE-STATUS THRU EX-X900-VALIDA-FILE-STATUS. EX-C010-OPEN-FILE. EXIT. *---------------------------------------------------------------* * GRABAR ARCHIVO CCCCCCCC. * *---------------------------------------------------------------* C020-GRABAR-CCCCCCCC. INITIALIZE CCCCCCCC-REG. PERFORM D010-ASIGNA-CCCCCCCC THRU EX-D010-ASIGNA-CCCCCCCC. WRITE CCCCCCCC-REG END-WRITE. MOVE SPACE TO MOVE WS-FS-CCCCCCCC TO MOVE 'CCCCCCCC' TO MOVE 'WRITE' TO MOVE 'C020-GRABAR-CCCCCCCC' TO MOVE 'ERROR AL WRITE CCCCCCCC' TO PERFORM X900-VALIDA-FILE-STATUS THRU EX-X900-VALIDA-FILE-STATUS. EX-C020-GRABAR-CCCCCCCC. EXIT. *----------------------------------------------------------------*

REG-DAFCLGER. LGE-COD-STATUS. LGE-NOM-FILE. LGE-TIP-OPERACION. LGE-NOM-PARRAFO. LGE-DES-MENSAJE.

Grupo de Estudio Intikana

Pgina 9 de 18

Documento: Tema-1 Cobol II Batch Convenio Institucin: Universidad Mayor de San Marcos

Emitido el Elaborado por: 26-Abril-2011 Javier Vargas Flores Proyecto Programa de Formacin de Talentos Promocin I - 2011

* GENERA INFORMACION ESTADISTICA DEL PROGRAMA EJEMPLO1. * *----------------------------------------------------------------* C030-ESTADISTICAS-PGM. DISPLAY '===============================================' DISPLAY '= ESTADISTICAS PROGRAMA : EJEMPLO1 =' DISPLAY '===============================================' DISPLAY '= REG. LEIDOS XXXXXXXXXXXXX...(AAAAAAAA)......:' WS-CTD-LEIDOS-AAAAAAAA DISPLAY '= REG. LEIDOS PROCESADOS......(BBBBBBBB)......:' WS-CTD-LEIDOS-BBBBBBBB DISPLAY '= REG. LEIDOS X IGUAL(MR).....................:' WS-CTD-LEIDOS-IGUAL DISPLAY '= REG. LEIDOS X MAYOR.........................:' WS-CTD-LEIDOS-MAYOR DISPLAY '= REG. LEIDOS X MENOR(NMR)....................:' WS-CTD-LEIDOS-MENOR DISPLAY '= REG. AUX-REG-NO-MAESTRO.....................:' WS-AUX-REG-NO-MAESTRO DISPLAY '= REG. GRABADOS EN SALIDA.....(CCCCCCCC)......:' WS-CTD-GRABADOS-CCCCCCCC DISPLAY '= REG. ESCRITOS ERRONEOS......(DAFCLGER)......:' WS-CTD-GRABADOS-DAFCLGER DISPLAY '===============================================' DISPLAY '==============================================='. EX-C030-ESTADISTICAS-PGM. EXIT. *----------------------------------------------------------------* * AQUI SE ASIGNA INFORMACION. * *----------------------------------------------------------------* D010-ASIGNA-CCCCCCCC. PERFORM E010-AAAAAAAA-CCCCCCCC THRU EX-E010-AAAAAAAA-CCCCCCCC. IF WS-MR = 1 PERFORM E020-BBBBBBBB-CCCCCCCC THRU EX-E020-BBBBBBBB-CCCCCCCC END-IF. EX-D010-ASIGNA-CCCCCCCC. EXIT.

*----------------------------------------------------------------* * AQUI SOLO SE ASIGNA INFORMACION DESDE EL ARCHIVO AAAAAAAA * * HACIA EL ARCHIVO CCCCCCCC. * *----------------------------------------------------------------* E010-AAAAAAAA-CCCCCCCC. MOVE AAAAAAAA-REG EX-E010-AAAAAAAA-CCCCCCCC. EXIT. *----------------------------------------------------------------* * AQUI SOLO SE ASIGNA INFORMACION DESDE EL ARCHIVO BBBBBBBB * TO CCCCCCCC-REG.

Grupo de Estudio Intikana

Pgina 10 de 18

Documento: Tema-1 Cobol II Batch Convenio Institucin: Universidad Mayor de San Marcos

Emitido el Elaborado por: 26-Abril-2011 Javier Vargas Flores Proyecto Programa de Formacin de Talentos Promocin I - 2011

* HACIA EL ARCHIVO CCCCCCCC. * *----------------------------------------------------------------* E020-BBBBBBBB-CCCCCCCC. CONTINUE. EX-E020-BBBBBBBB-CCCCCCCC. EXIT. *----------------------------------------------------------------* * LECTURA ARCHIVO AAAAAAAA * *----------------------------------------------------------------* X010-LEER-AAAAAAAA. READ AAAAAAAA. MOVE SPACE TO REG-DAFCLGER MOVE WS-FS-AAAAAAAA TO LGE-COD-STATUS MOVE 'AAAAAAAA' TO LGE-NOM-FILE MOVE 'READ' TO LGE-TIP-OPERACION MOVE 'X010-LEER-AAAAAAAA' TO LGE-NOM-PARRAFO MOVE 'ERROR AL READ AAAAAAAA' TO LGE-DES-MENSAJE PERFORM X900-VALIDA-FILE-STATUS THRU EX-X900-VALIDA-FILE-STATUS. WORK-AAAAAAAA IF WS-FS-AAAAAAAA = '00' MOVE 'ASIGNAR VALORES A LLAVE PRIMARIA' TO WPRIM-LLAVE-AAAAAAAA ELSE MOVE HIGH-VALUE TO WORK-AAAAAAAA END-IF. EX-X010-LEER-AAAAAAAA. EXIT. *----------------------------------------------------------------* * LECTURA ARCHIVO BBBBBBBB * *----------------------------------------------------------------* X020-LEER-BBBBBBBB. READ BBBBBBBB. MOVE SPACE TO REG-DAFCLGER. MOVE WS-FS-BBBBBBBB TO LGE-COD-STATUS. MOVE 'BBBBBBBB' TO LGE-NOM-FILE. MOVE 'READ' TO LGE-TIP-OPERACION. MOVE 'X020-LEER-BBBBBBBB' TO LGE-NOM-PARRAFO. MOVE 'ERROR AL READ BBBBBBBB' TO LGE-DES-MENSAJE. PERFORM X900-VALIDA-FILE-STATUS THRU EX-X900-VALIDA-FILE-STATUS. WORK-BBBBBBBB IF WS-FS-BBBBBBBB = '00' MOVE 'ASIGNAR VALORES A LLAVE SECUNDARIA' TO WSECU-LLAVE-BBBBBBBB IF WORK-BBBBBBBB = WORK-BBBBBBBB-DUP GO TO X020-LEER-BBBBBBBB ELSE MOVE WORK-BBBBBBBB TO WORK-BBBBBBBB-DUP END-IF ELSE MOVE HIGH-VALUE TO WORK-BBBBBBBB

=====>*

=====>*

Grupo de Estudio Intikana

Pgina 11 de 18

Documento: Tema-1 Cobol II Batch Convenio Institucin: Universidad Mayor de San Marcos
END-IF. EX-X020-LEER-BBBBBBBB. EXIT.

Emitido el Elaborado por: 26-Abril-2011 Javier Vargas Flores Proyecto Programa de Formacin de Talentos Promocin I - 2011

*-----------------------------------------------------------------* * VALIDA COD. DE ESTADO DE LAS DIFERENTES ACCIONES SOBRE ARCHIVOS * *-----------------------------------------------------------------* X900-VALIDA-FILE-STATUS. IF LGE-COD-STATUS = '00' IF LGE-TIP-OPERACION = 'READ' IF LGE-NOM-FILE = 'AAAAAAAA' ADD 1 TO WS-CTD-LEIDOS-AAAAAAAA ELSE IF LGE-NOM-FILE = 'BBBBBBBB' ADD 1 TO WS-CTD-LEIDOS-BBBBBBBB END-IF END-IF ELSE IF LGE-TIP-OPERACION = 'WRITE' IF LGE-NOM-FILE = 'CCCCCCCC' ADD 1 TO WS-CTD-GRABADOS-CCCCCCCC ELSE IF LGE-NOM-FILE = 'DAFCLGER' ADD 1 TO WS-CTD-GRABADOS-DAFCLGER END-IF END-IF END-IF END-IF ELSE IF LGE-COD-STATUS = '10' IF LGE-TIP-OPERACION = 'READ' IF LGE-NOM-FILE = 'AAAAAAAA' SET FIN-AAAAAAAA TO TRUE ELSE IF LGE-NOM-FILE = 'BBBBBBBB' SET FIN-BBBBBBBB TO TRUE END-IF END-IF END-IF ELSE MOVE 08 TO RETURN-CODE MOVE 'FICHERO' TO LGE-TIP-FILE MOVE 'EJEMPLO1' TO LGE-COD-PROGRAMA MOVE WS-FEC-SIST TO LGE-FEC-PROCESO MOVE ZERO TO LGE-COD-SQLCODE PERFORM X970-GRABAR-ERRORES THRU EX-X970-GRABAR-ERRORES IF LGE-TIP-OPERACION IS NOT = 'CLOSE' PERFORM X990-CLOSE-FILE THRU EX-X990-CLOSE-FILE END-IF PERFORM X981-STOP-RUN THRU EX-X981-STOP-RUN END-IF END-IF. EX-X900-VALIDA-FILE-STATUS.

Grupo de Estudio Intikana

Pgina 12 de 18

Documento: Tema-1 Cobol II Batch Convenio Institucin: Universidad Mayor de San Marcos
EXIT.

Emitido el Elaborado por: 26-Abril-2011 Javier Vargas Flores Proyecto Programa de Formacin de Talentos Promocin I - 2011

*----------------------------------------------------------------* * GRABAMOS EN EL FICHERO DE SALIDA LAS POSIBLES INCIDENCIAS. * *----------------------------------------------------------------* X970-GRABAR-ERRORES. DISPLAY '************************************'. DISPLAY '*--------MENSAJE DE ERROR----------*'. DISPLAY '************************************'. DISPLAY '* PROGRAMA : ' LGE-COD-PROGRAMA. DISPLAY '* FECHA PROCESO : ' LGE-FEC-PROCESO. DISPLAY '* TIPO ARCHIVO : ' LGE-TIP-FILE. DISPLAY '* NOMBRE ARCHIVO: ' LGE-NOM-FILE. DISPLAY '* OPERACION : ' LGE-TIP-OPERACION. DISPLAY '* CODIGO ERROR : ' LGE-COD-STATUS LGE-COD-SQLCODE. DISPLAY '* NOMBRE PARRAFO: ' LGE-NOM-PARRAFO. DISPLAY '* MENSAJE : ' LGE-DES-MENSAJE. DISPLAY '************************************'. WRITE REG-DAFLGER FROM REG-DAFCLGER END-WRITE. IF WS-FS-DAFCLGER NOT = '00' DISPLAY 'ERROR AL ESCRIBIR EN DAFCLGER, STATUS=' WS-FS-DAFCLGER MOVE 08 TO RETURN-CODE PERFORM X980-STOP-RUN THRU EX-X980-STOP-RUN ELSE IF WS-FS-DAFCLGER = '00' ADD 1 TO WS-CTD-GRABADOS-DAFCLGER END-IF END-IF. EX-X970-GRABAR-ERRORES. EXIT. *----------------------------------------------------------------* * TERMINA LA EJECUCION DEL PROGRAMA * *----------------------------------------------------------------* X980-STOP-RUN. PERFORM X990-CLOSE-FILE PERFORM X981-STOP-RUN EX-X980-STOP-RUN. EXIT. *----------------------------------------------------------------* * STOP RUN. * *----------------------------------------------------------------* X981-STOP-RUN. STOP RUN. EX-X981-STOP-RUN. EXIT. *----------------------------------------------------------------* * TERMINA LA EJECUCION DEL PROGRAMA * *----------------------------------------------------------------* X990-CLOSE-FILE. THRU EX-X990-CLOSE-FILE. THRU EX-X981-STOP-RUN.

Grupo de Estudio Intikana

Pgina 13 de 18

Documento: Tema-1 Cobol II Batch Convenio Institucin: Universidad Mayor de San Marcos

Emitido el Elaborado por: 26-Abril-2011 Javier Vargas Flores Proyecto Programa de Formacin de Talentos Promocin I - 2011

CLOSE AAAAAAAA, BBBBBBBB, CCCCCCCC, DAFCLGER. MOVE SPACE TO REG-DAFCLGER. MOVE WS-FS-AAAAAAAA TO LGE-COD-STATUS. MOVE 'AAAAAAAA' TO LGE-NOM-FILE. MOVE 'CLOSE' TO LGE-TIP-OPERACION. MOVE 'X990-CLOSE-FILE' TO LGE-NOM-PARRAFO. MOVE 'ERROR AL CLOSE' TO LGE-DES-MENSAJE. PERFORM X900-VALIDA-FILE-STATUS THRU EX-X900-VALIDA-FILE-STATUS. MOVE WS-FS-BBBBBBBB TO LGE-COD-STATUS. MOVE 'BBBBBBBB' TO LGE-NOM-FILE. PERFORM X900-VALIDA-FILE-STATUS THRU EX-X900-VALIDA-FILE-STATUS. MOVE WS-FS-CCCCCCCC TO LGE-COD-STATUS. MOVE 'CCCCCCCC' TO LGE-NOM-FILE. PERFORM X900-VALIDA-FILE-STATUS THRU EX-X900-VALIDA-FILE-STATUS. MOVE WS-FS-DAFCLGER TO LGE-COD-STATUS. MOVE 'DAFCLGER' TO LGE-NOM-FILE. PERFORM X900-VALIDA-FILE-STATUS THRU EX-X900-VALIDA-FILE-STATUS. EX-X990-CLOSE-FILE. EXIT.

Grupo de Estudio Intikana

Pgina 14 de 18

Documento: Tema-1 Cobol II Batch Convenio Institucin: Universidad Mayor de San Marcos

Emitido el Elaborado por: 26-Abril-2011 Javier Vargas Flores Proyecto Programa de Formacin de Talentos Promocin I - 2011

DIVISIONES DE UN PROGRAMA COBOL (4 Divisiones):


A.B.C.D.IDENTIFICATION DIVISION. ENVIRONMENT DIVISION. DATA DIVISION. PROCEDURE DIVISION.

A.- IDENTIFICATION DIVISION. Identifica a la primera divisin donde se especifica el nombre del programa, autor, lugar donde se instalar el programa, fecha de escritura del programa valga la redundancia, fecha de compilacin (Opcional). Revisar programa modelo o el impreso para ver donde se encuentra la divisin respectiva. B. - ENVIRONMENT DIVISION. Identifica a la segunda divisin en orden de aparicin, esta se divide a su vez en dos secciones CONFIGURATION SECTION y la INPUT-OUTPUT SECTION. B1. CONFIGURATION SECTION.- Aqu se escribe el tipo de ordenador donde se escribi el programa(SOURCE-COMPUTER) y donde se ejecutara(OBJECTCOMPUTER) y para cambiar valores constantes del lenguaje o valor predefinido, esto puede cambiar de acuerdo al compilador(SPECIAL-NAMES). Ejemplo: Revisemos el programa impreso y busquemos las siguientes instrucciones:
*SPECIAL-NAMES. * DECIMAL-POINT IS COMMA

Estas sentencias se encuentran comentadas, por la sencilla razn que en Latinoamrica se usa el punto como separador de decimales y en EUROPA se usa la coma, esto solo es un caso, existen otras constantes que se cambian segn sea conveniente. B2. INPUT-OUTPUT SECTION.- En esta seccin se especifica todos los ficheros que sern usados en el programa, es aqu donde se especifica el modo de acceso, grabacin, el medio donde se encuentra o encontrar el archivo resultante etc. Esta seccin solo estar habilitado para procesos BATCH, para procesos ON-LINE ya no es necesario, esto se explicar en otro curso: COBOL II CICS.

Grupo de Estudio Intikana

Pgina 15 de 18

Documento: Tema-1 Cobol II Batch Convenio Institucin: Universidad Mayor de San Marcos

Emitido el Elaborado por: 26-Abril-2011 Javier Vargas Flores Proyecto Programa de Formacin de Talentos Promocin I - 2011

1.- Uso de Archivos del tipo SECUENCIAL: Como ven en el programa impreso. #1
*INPUT SELECT DAFCALQB ASSIGN TO AFCALQBI ORGANIZATION IS SEQUENTIAL FILE STATUS IS WS-FS-DAFCALQB. TO BBBBBBBI ORGANIZATION IS SEQUENTIAL FILE STATUS IS WS-FS-BBBBBBBB. TO AFCALQ1O FILE STATUS IS WS-FS-DAFCALQ1. TO DAFLGERO FILE STATUS IS WS-FS-DAFCLGER.

SELECT BBBBBBBB *OUTPUT SELECT DAFCALQ1 SELECT DAFCLGER

ASSIGN

ASSIGN ASSIGN

Es aqu donde se definen los accesos a los archivos secuenciales, como se ve en el ejemplo tenemos archivos secuenciales de lectura (INPUT) y archivos secuenciales de escritura (OUTPUT), a continuacin explicar algunas sentencias. SELECT.- Aqu se define el nombre interno el cual har referencia al archivo fsico. ASSIGN.- Aqu se define el nombre externo el cual har referencia al archivo fsico, este nombre se usar en los JOBs de trabajo. Adems de esto, indicar las caractersticas del archivo fsico (Secuencial, Cartucho de Almacenamiento, Cintas, etc.) ORGANIZATION IS SEQUENTIAL.- Indica en forma explcita que es un archivo de organizacin secuencial, esta instruccin puede ser obviada como se ve cuando se define el acceso a los archivos secuenciales de OUTPUT(Ejemplo #1 o programa impreso). FILE STATUS IS variable.- Aqu se define la variable que tendr un valor, el cual se asignar cuando se haga un acceso a un archivo determinado. Los valores posibles que pueden tener son las siguientes, pero solo mostrar unos cuantos los ms importantes. 00 Acceso exitoso al archivo. 10 Se termin de leer archivo secuencial. 34 Archivo secuencial de OUTPUT est lleno, falta ampliar espacio de almacenamiento. Estos slo son algunos cdigos de retorno al acceder archivos secuenciales. Se entregar un archivo anexo con ms cdigos de retorno al trmino del curso.

Grupo de Estudio Intikana

Pgina 16 de 18

Documento: Tema-1 Cobol II Batch Convenio Institucin: Universidad Mayor de San Marcos

Emitido el Elaborado por: 26-Abril-2011 Javier Vargas Flores Proyecto Programa de Formacin de Talentos Promocin I - 2011

2.- Uso de Archivos del Tipo INDEXADO(Vsam, btrieve..etc): #2


*INPUT SELECT DAFCFALE ASSIGN TO AFCFALEI ORGANIZATION IS INDEXED RECORD KEY IS DAFCFALE-KEY OF DAFCFALE-REG ACCESS MODE IS DYNAMIC FILE STATUS IS WS-FS-DAFCFALE. TO AFCALQ1O FILE STATUS IS WS-FS-DAFCALQ1.

*OUTPUT SELECT DAFCALQ1

ASSIGN

ORGANIZATION IS INDEXED.- Indica en forma explcita que es un archivo de organizacin indexada, se preguntarn que es indexada buena pregunta otra Por Favor, mentira es una bromita, bueno esto me indica que la informacin se encuentra ordenada y para acceder a ella necesita llaves. RECORD KEY IS {variable}.- Indica el nombre de la clave con el cual accederemos a los registros, debe ser del tipo alfanumrico, la variable es en realidad la llave del registro. ACCESS MODE IS {SEQUENTIAL / DYNAMIC / RANDOM} .- Indica el modo de acceso al archivo. 1.- Sequential .- Indica que el acceso al archivo se har solo en modo secuencial. 2.- Random.- Indica que el acceso a la informacin se har por medio de llaves. 3.- Dynamic.- Indica que el acceso a la informacin se podr hacer tanto en forma secuencial o randmica (puntos 1 y 2). C. - DATA DIVISION. Identifica a la tercera divisin en orden de aparicin, esta se divide a su vez en tres secciones FILE SECTION, WORKING-STORAGE SECTION, LINKAGE SECTION. C1. FILE SECTION.- Aqu se describe los campos que van a contener el registro de cada archivo que vamos a trabajar, estos previamente han debido ser definidos en la INPUT-OUTPUT SECTION (pagina 14). FD AAAAAAAA BLOCK CONTAINS 0 RECORDS LABEL RECORD IS STANDARD Grupo de Estudio Intikana Pgina 17 de 18

Documento: Tema-1 Cobol II Batch Convenio Institucin: Universidad Mayor de San Marcos

Emitido el Elaborado por: 26-Abril-2011 Javier Vargas Flores Proyecto Programa de Formacin de Talentos Promocin I - 2011

RECORDING MODE IS F DATA RECORD IS AAAAAAAA-REG. COPY AAAAAAAA. C2. WORKING-STORAGE SECTION.- Aqu se definen las variables a usar, para un mejor orden es necesario dividir la memoria en dos secciones: Las variables que cambian de valor durante la ejecucin del programa y las que nunca cambian, siempre por Standard para las variables que cambian de valor pongo la variable del mayor nivel jerrquico codificado de la siguiente manera 01 WS-EJEMPLO1, donde WS es fijo y EJEMPLO1 es el nombre del programa, esto debe ser igual para las variables constantes solo cambiando el WS por la LT. 01 WS-EJEMPLO1. 03 WS-FS-AAAAAAAA 03 WS-FS-BBBBBBBB 03 WS-FS-CCCCCCCC PIC X(002). PIC X(002). PIC X(002).

*----------------------------------------------------------------* * CONSTANTES * *----------------------------------------------------------------*

01 LT-EJEMPLO1. 03 LT-OPEN 03 LT-READ

PIC X(08) VALUE 'OPEN'. PIC X(08) VALUE 'READ'.

1.- Tipo de Datos.- Por la forma que est almacenada la informacin los tipos pueden ser los siguientes. Alfanumricos.carcter. Pueden contener letras, nmero o cualquier

Numricas.- Contiene solo nmeros y pueden tener las siguientes variantes. (DISPLAY, COMP, COMP-3, COMP-2).

C3. LINKAGE SECTION.- Aqu se describe los campos que servirn para ingresar informacin al flujo del programa, estos datos provienen de una fuente externa al programa EJEMPLO1. D. PROCEDURE DIVISION. Esta es la divisin mas importante de un programa Cobol, pero antes de entrar de lleno a la explicacin del programa, har un parntesis para leer el Tema 2 Cobol II (Como codificar un Programa Cobol), donde explicar en forma detallada y explcita como se debe codificar eficientemente un programa Cobol (Uso de comentarios, nombre de prrafos, programacin modular, indentacin, uso eficiente de sentencias etc., etc.)

Grupo de Estudio Intikana

Pgina 18 de 18

Вам также может понравиться