Vous êtes sur la page 1sur 6

*====================================================== 00010000

* PROGRAMA QUE DEMONSTRA O USO DA LOGICA 00020000


* DE ALTERAR UM CADASTRO VSAM ATRAVES DE UM ARQUIVO 00021001
* SEQUENCIAL E GERANDO RELATORIO DA ATUALIZACAO 00022001
*====================================================== 00030000
IDENTIFICATION DIVISION. 00040000
PROGRAM-ID. PRCIXX01. 00050034
*====================================================== 00051000
* 1 - OBJETIVO MENU PRINCIPAL DO CADASTRO DE ALUNOS 00052025
* PARA TRANSFERIR O CONTROLE PARA OUTROS 00053025
* PROGRAMAS CONFORME OPCAO DIGITADA 00054025
*====================================================== 00054125
* 00057025
ENVIRONMENT DIVISION. 00060000
CONFIGURATION SECTION. 00070000
SPECIAL-NAMES. 00080000
DECIMAL-POINT IS COMMA. 00090000
*====================================================== 00092000
DATA DIVISION. 00100000
00100125
*====================================================== 00100225
* NOTE QUE O PROGRAMA CICS N�O TEM 00100325
* FILE SECTION POIS O CONTROLE DE ABERTURAS 00100425
* DOS ARQUIVOS S�O FEITOS AUTOMATICAMENTE 00100525
* PELA FILE CONTROL TABLE (FCT) DO CICS 00100625
*====================================================== 00100725
* 00100825
WORKING-STORAGE SECTION. 00113200
*====================================================== 00113325
* TECLAS FUNCOES 00113425
* ESTE BOOK CONTERA OS NOMES DAS TECLAS DE FUNCOES 00113525
*====================================================== 00113825
* 00113925
COPY DFHAID. 00114025
*====================================================== 00114125
* ATRIBUTOS DE CAMPOS 00114225
* ESTE BOOK CONTERA OS NOMES DOS ATRIBUTOS DOS CAMPOS 00114325
*====================================================== 00114425
* 00114525
COPY DFHBMSCA. 00114625
00114725
*====================================================== 00114825
* MAPA LOGICO DO MENU PRINCIPAL 00114925
* E O BOOK COBOL QUE FOI GERADO AP�S A COMPILACAO 00115025
* DO MAPA EM BMS 00115125
*====================================================== 00115225
* 00115325
COPY MPXX01. 00115434
00116226
*======== CRIANDO VARIAVEIS - GEN�RICA =============== 00116326
01 WK-MENSAGEM PIC X(80) VALUE SPACES. 00116426
01 WK-PROGRAMA PIC X(08) VALUE SPACES. 00116526
01 WK-DATA. 00116626
05 WK-DIA-DATA PIC 9(02) VALUE ZEROS. 00116726
05 FILLER PIC X(01) VALUE '/'. 00116826
05 WK-MES-DATA PIC 9(02) VALUE ZEROS. 00116926
05 FILLER PIC X(01) VALUE '/'. 00117026
05 WK-ANO-DATA PIC 9(04) VALUE ZEROS. 00117149
01 WK-HORA PIC X(05) VALUE SPACES. 00117226
01 WK-TEMPO PIC S9(15) COMP-3 VALUE ZEROS. 00117326
01 WK-ABEND PIC X(04) VALUE SPACES. 00117426
01 CURSOR PIC S9(05) COMP VALUE -1. 00117526
00117636
*=============================================================== 00117736
01 REG-CADALU. 00117836
05 MATRICULA PIC X(06) VALUE SPACES. 00117943
05 NOME PIC X(30) VALUE SPACES. 00118041
05 NASCIMENTO PIC X(08) VALUE SPACES. 00118142
05 FILLER PIC X(36) VALUE SPACES. 00118244
00118344
*====================================================== 00118444
* AREA COMUM AO SISTEMA (COMMAREA) 00118544
* ESTA AREA SAO OS DADOS RECEBIDOS QUANDO O PROGRAMA 00118644
* E CARREGADO PARA A MEMORIA E ARMAZENADO NO CICS 00118744
* QUANDO O PROGRAMA E FINALIZADO COM TRANSID 00118844
*====================================================== 00118944
* 00119044
01 CA-COMMAREA. 00119144
05 CA-FASE PIC X(01) VALUE SPACES. 00119244
05 CA-MATRICULA PIC 9(06) VALUE ZEROS. 00119344
05 CA-NOME PIC X(30) VALUE SPACES. 00119444
05 CA-PAG-INI PIC S9(4) COMP VALUE ZEROS. 00119544
05 CA-PAG-COR PIC S9(4) COMP VALUE ZEROS. 00120026
*====================================================== 00191000
* LINKAGE SECTION = 00192025
*====================================================== 00193025
* 01 DFHCOMMAREA. 00194046
* 05 FILLER PIC X(01) OCCURS 4096 00195031
* DEPENDING ON EIBCALEN. 00196031
*====================================================== 00197026
00198026
PROCEDURE DIVISION. 00200000
000-00-PRINCIPAL. 00210000
PERFORM 000-10-INICIAR-PROGRAMA 00220025
EVALUATE CA-FASE 00230025
WHEN '1' 00231025
PERFORM 100-00-FASE-UM 00231125
WHEN '2' 00231225
PERFORM 200-00-FASE-DOIS 00231325
WHEN '3' 00231434
PERFORM 300-00-FASE-TRES 00231534
END-EVALUATE. 00232025
00233000
000-10-INICIAR-PROGRAMA. 00240025
EXEC CICS HANDLE ABEND LABEL(999-97-TRATAR-ABEND) END-EXEC. 00241025
*====================================================== 00241125
* QUANDO O EIBCALEN FOR = ZEROS SIGNIFICA QUE O SEU = 00241225
* PROGRAMA ESTA SENDO EXECUTADO A PRIMEIRA VEZ OU = 00241325
* FOI CHAMADO POR UM OUTRO PROGRAMA QUE NAO PASSOU = 00241425
* COMMAREA = 00241525
*====================================================== 00241625
IF EIBCALEN EQUAL ZEROS 00241725
PERFORM 210-10-TRANSFERE-CONTROLE 00241934
ELSE 00242225
00242325
*====================================================== 00242425
* QUANDO O EIBTRMID FOR DIFERENTE DA TRANSACAO DO = 00242525
* SEU PROGRAMA, ISTO QUER DIZER QUE SEU PROGRAMA = 00242625
* FOI CHAMADO POR UM OUTRO PROGRAMA = 00242725
* OBS.: NO CICS QUANDO UM PROGRAMA CHAMA OUTRO = 00242825
* PROGRAMA ATE O PROGRAMA CHAMADO EMITIR UM = 00242925
* COMANDO TRANSID, A TRANSA�AO E DO PROGRAMA = 00243025
* CHAMADOR = 00243125
*====================================================== 00243225
MOVE DFHCOMMAREA TO CA-COMMAREA 00243332
IF EIBTRNID NOT EQUAL 'IN01' 00243435
MOVE '1' TO CA-FASE 00243525
END-IF 00243625
END-IF. 00243725
00244025
100-00-FASE-UM. 00244125
MOVE LOW-VALUES TO MPXX01I. 00244234
MOVE CURSOR TO MATR1L 00244334
MOVE DFHBMFSE TO MATR1A 00244434
MOVE DFHBMPRF TO NOME1A NASC1A 00244535
MOVE '2' TO CA-FASE 00244634
MOVE 'INFORMAR A MATRICULA' TO MENSO 00244734
PERFORM 720-00-EXIBE-TELA-COM-ALARME 00244834
PERFORM 999-98-SAIDA-COM-TRANSID. 00244934
00245034
200-00-FASE-DOIS. 00245134
PERFORM 700-00-RECEBE-TELA. 00245234
EVALUATE EIBAID 00245334
WHEN DFHENTER 00245434
PERFORM 210-00-CONSISTE-MATR1 00245534
WHEN DFHPF3 00245647
PERFORM 210-10-TRANSFERE-CONTROLE 00245847
WHEN DFHPF5 00245934
PERFORM 100-00-FASE-UM 00246034
WHEN DFHCLEAR 00246134
PERFORM 220-00-FIM-PROGRAMA 00246234
WHEN OTHER 00246334
PERFORM 230-00-TECLA-INVALIDA 00246434
END-EVALUATE. 00246534
00246634
210-00-CONSISTE-MATR1. 00246734
EXEC CICS BIF DEEDIT FIELD(MATR1I) END-EXEC. 00246834
00246934
IF MATR1I = ZEROS 00247034
MOVE CURSOR TO MATR1L 00247134
MOVE DFHBMFSE TO MATR1A 00247734
MOVE DFHBMPRF TO NOME1A NASC1A 00247834
PERFORM 720-00-EXIBE-TELA-COM-ALARME 00247934
PERFORM 999-98-SAIDA-COM-TRANSID 00248034
END-IF. 00248134
MOVE MATR1I TO MATRICULA 00248240
EXEC CICS READ DATASET ('CADALU') 00248339
INTO (REG-CADALU) 00248435
RIDFLD (MATRICULA) 00248535
KEYLENGTH (06) 00248645
NOHANDLE 00248735
END-EXEC. 00248835
IF EIBRESP = ZEROS 00248935
MOVE CURSOR TO MATR1L 00249035
MOVE NOME TO NOME1O 00249135
MOVE NASCIMENTO TO NASC1O 00249235
MOVE DFHBMFSE TO MATR1A 00249335
MOVE DFHBMPRF TO NOME1A NASC1A 00249435
MOVE 'ALUNO EXISTENTE' TO MENSO 00249535
PERFORM 720-00-EXIBE-TELA-COM-ALARME 00249635
PERFORM 999-98-SAIDA-COM-TRANSID 00249735
ELSE 00249835
INITIALIZE NOME1O NASC1O 00249935
MOVE CURSOR TO NOME1L 00250035
MOVE DFHBMPRF TO MATR1A 00250135
MOVE DFHBMFSE TO NOME1A NASC1A 00250235
MOVE '3' TO CA-FASE 00250335
MOVE 'INFORMAR NOME E NASCIMENTO' TO MENSO 00250435
PERFORM 720-00-EXIBE-TELA-COM-ALARME 00250535
PERFORM 999-98-SAIDA-COM-TRANSID 00250635
END-IF. 00250735
00252434
210-10-TRANSFERE-CONTROLE. 00252534
MOVE 'PRCIXX00' TO WK-PROGRAMA 00252648
EXEC CICS XCTL PROGRAM (WK-PROGRAMA) 00252734
COMMAREA(CA-COMMAREA) 00252834
NOHANDLE 00252934
END-EXEC. 00253034
IF EIBRESP NOT = ZEROS 00253134
MOVE 'PROGRAMA NAO CADASTRADO NO CICS' TO MENSO 00253234
MOVE DFHBMFSE TO MATR1A 00253334
MOVE CURSOR TO MATR1L 00253434
PERFORM 720-00-EXIBE-TELA-COM-ALARME 00253534
PERFORM 999-98-SAIDA-COM-TRANSID 00253634
END-IF. 00253734
210-20-MATR1-INVALIDA. 00253834
MOVE 'MATR1 INVALIDA' TO MENSO 00253934
MOVE DFHBMFSE TO MATR1A 00254034
MOVE CURSOR TO MATR1L 00254134
PERFORM 720-00-EXIBE-TELA-COM-ALARME 00254234
PERFORM 999-98-SAIDA-COM-TRANSID. 00254334
00254434
220-00-FIM-PROGRAMA. 00254534
MOVE 'FIM DE SERVI�O' TO WK-MENSAGEM 00254634
PERFORM 730-00-EXIBE-TEXTO 00254734
PERFORM 999-99-SAIDA-SEM-TRANSID. 00254834
00278534
230-00-TECLA-INVALIDA. 00278634
MOVE 'TECLA INVALIDA' TO MENSO 00278734
MOVE DFHBMFSE TO MATR1A 00278834
MOVE CURSOR TO MATR1L 00278934
PERFORM 720-00-EXIBE-TELA-COM-ALARME 00279034
PERFORM 999-98-SAIDA-COM-TRANSID. 00279134
00279235
300-00-FASE-TRES. 00279335
PERFORM 700-00-RECEBE-TELA. 00279435
EVALUATE EIBAID 00279535
WHEN DFHENTER 00279635
PERFORM 310-00-CONSISTE-INCLUSAO 00279735
WHEN DFHPF3 00279835
PERFORM 210-10-TRANSFERE-CONTROLE 00280047
WHEN DFHPF5 00280235
PERFORM 100-00-FASE-UM 00280335
WHEN DFHCLEAR 00280435
PERFORM 220-00-FIM-PROGRAMA 00280535
WHEN OTHER 00280635
PERFORM 230-00-TECLA-INVALIDA 00280735
END-EVALUATE. 00280835
00280935
310-00-CONSISTE-INCLUSAO. 00281035
IF NOME1I = SPACES 00281135
MOVE CURSOR TO NOME1L 00281235
MOVE DFHBMFSE TO NOME1A 00281335
MOVE DFHBMPRF TO MATR1A NASC1A 00281435
PERFORM 720-00-EXIBE-TELA-COM-ALARME 00281535
PERFORM 999-98-SAIDA-COM-TRANSID 00281635
END-IF. 00281735
IF NASC1I = SPACES 00281835
MOVE CURSOR TO NASC1L 00281935
MOVE DFHBMFSE TO NASC1A 00282035
MOVE DFHBMPRF TO MATR1A NOME1A 00282135
PERFORM 720-00-EXIBE-TELA-COM-ALARME 00282235
PERFORM 999-98-SAIDA-COM-TRANSID 00282335
END-IF. 00282435
MOVE MATR1I TO MATRICULA 00282535
MOVE NOME1I TO NOME 00282635
MOVE NASC1I TO NASCIMENTO 00282750
EXEC CICS WRITE DATASET ('CADALU') 00283149
FROM (REG-CADALU) 00283249
RIDFLD (MATRICULA) 00283349
NOHANDLE 00283449
END-EXEC. 00283549
MOVE '1' TO CA-FASE 00283649
MOVE 'ALUNO INCLUIDO COM SUCESSO' TO MENSO 00283749
PERFORM 720-00-EXIBE-TELA-COM-ALARME 00283849
PERFORM 999-98-SAIDA-COM-TRANSID. 00283949
00284049
700-00-RECEBE-TELA. 00284149
EXEC CICS RECEIVE MAP ('MPXX01') 00284249
MAPSET ('MPXX01') 00284349
INTO (MPXX01I) 00284449
NOHANDLE 00284549
END-EXEC. 00284649
00284749
710-00-EXIBE-TELA-SEM-ALARME. 00284849
PERFORM 740-00-PESQUISA-DATA-HORA 00284949
EXEC CICS SEND MAP ('MPXX01') 00285049
MAPSET ('MPXX01') 00285149
FROM (MPXX01I) 00285249
FREEKB 00285349
FRSET 00285449
ERASE 00285549
CURSOR 00285649
NOHANDLE 00285749
END-EXEC. 00285849
00285949
720-00-EXIBE-TELA-COM-ALARME. 00286049
PERFORM 740-00-PESQUISA-DATA-HORA 00286149
EXEC CICS SEND MAP ('MPXX01') 00286249
MAPSET ('MPXX01') 00286349
FROM (MPXX01I) 00286449
FREEKB 00286549
FRSET 00286649
ERASE 00286749
ALARM 00286849
CURSOR 00286949
NOHANDLE 00287049
END-EXEC. 00287149
00287249
730-00-EXIBE-TEXTO. 00287349
EXEC CICS SEND TEXT FROM (WK-MENSAGEM) 00287449
FREEKB 00287549
ERASE 00287649
ALARM 00287749
NOHANDLE 00287849
END-EXEC. 00287949
00288049
740-00-PESQUISA-DATA-HORA. 00288149
EXEC CICS ASKTIME ABSTIME (WK-TEMPO) END-EXEC. 00288249
EXEC CICS FORMATTIME ABSTIME (WK-TEMPO) 00288349
DDMMYYYY (WK-DATA) 00288449
DATESEP ('/') 00288549
TIME (WK-HORA) 00288649
TIMESEP (':') 00288749
END-EXEC. 00288849
MOVE WK-DATA TO DATASYSO. 00288949
MOVE WK-HORA TO HORASYSO. 00289049
00289149
999-97-TRATAR-ABEND. 00289249
*========================================================= 00289349
* CANCELA O HANDLE ABEND E CAPTURA O CODIGO ABEND = 00289449
* PARA EXIBIR NA TELA = 00289549
*========================================================= 00289649
EXEC CICS HANDLE ABEND CANCEL END-EXEC. 00289749
EXEC CICS ASSIGN ABCODE(WK-ABEND) END-EXEC. 00289849
MOVE 'OCORREU UM ERRO NO APLICATIVO - CODIGO = ' 00289949
TO WK-MENSAGEM 00290049
MOVE WK-ABEND TO WK-MENSAGEM(42:4) 00290149
PERFORM 730-00-EXIBE-TEXTO 00290249
PERFORM 999-99-SAIDA-SEM-TRANSID. 00290349
00290449
999-98-SAIDA-COM-TRANSID. 00290549
EXEC CICS RETURN TRANSID ('IN01') 00290649
COMMAREA (CA-COMMAREA) 00290749
END-EXEC. 00290849
00290949
999-99-SAIDA-SEM-TRANSID. 00291035
EXEC CICS RETURN END-EXEC. 00300035

Vous aimerez peut-être aussi