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. PRCIXX03. 00050054
*====================================================== 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 MPXX03. 00115454
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-DIA-ANO PIC 9(04) VALUE ZEROS. 00117126
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 'IN03' 00243454
MOVE '1' TO CA-FASE 00243525
END-IF 00243625
END-IF. 00243725
00244025
100-00-FASE-UM. 00244125
MOVE LOW-VALUES TO MPXX03I. 00244254
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 00245634
PERFORM 210-10-TRANSFERE-CONTROLE 00245756
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
MOVE 'INFORMAR MATRICULA' TO MENSO 00247948
PERFORM 720-00-EXIBE-TELA-COM-ALARME 00248048
PERFORM 999-98-SAIDA-COM-TRANSID 00248134
END-IF. 00248234
MOVE MATR1I TO MATRICULA 00248340
EXEC CICS READ DATASET ('CADALU') 00248439
INTO (REG-CADALU) 00248535
RIDFLD (MATRICULA) 00248635
KEYLENGTH (06) 00248745
NOHANDLE 00248835
END-EXEC. 00248935
IF EIBRESP NOT = ZEROS 00249048
MOVE CURSOR TO MATR1L 00249135
INITIALIZE NOME1I NASC1I 00249255
MOVE DFHBMFSE TO MATR1A 00249435
MOVE DFHBMPRF TO NOME1A NASC1A 00249535
MOVE 'ALUNO NAO CADASTRADO' TO MENSO 00249654
PERFORM 720-00-EXIBE-TELA-COM-ALARME 00249835
PERFORM 999-98-SAIDA-COM-TRANSID 00249935
ELSE 00250035
MOVE NOME TO NOME1O 00250148
MOVE NASCIMENTO TO NASC1O 00250248
MOVE CURSOR TO MATR1L 00250457
MOVE DFHBMPRF TO MATR1A 00250535
MOVE DFHBMPRF TO NOME1A NASC1A 00250654
MOVE '3' TO CA-FASE 00250735
MOVE 'CONFIRMAR EXCLUSAO COM ENTER' TO MENSO 00250854
PERFORM 720-00-EXIBE-TELA-COM-ALARME 00250935
PERFORM 999-98-SAIDA-COM-TRANSID 00251035
END-IF. 00252035
00252434
210-10-TRANSFERE-CONTROLE. 00252534
MOVE 'PRCIXX00' TO WK-PROGRAMA 00252656
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-CONFIRME-EXCLUSAO 00279754
WHEN DFHPF3 00279835
PERFORM 210-10-TRANSFERE-CONTROLE 00279956
WHEN DFHPF5 00280135
PERFORM 100-00-FASE-UM 00280235
WHEN DFHCLEAR 00280335
PERFORM 220-00-FIM-PROGRAMA 00280435
WHEN OTHER 00280535
PERFORM 230-00-TECLA-INVALIDA 00280635
END-EVALUATE. 00280735
00280835
310-00-CONFIRME-EXCLUSAO. 00280954
MOVE MATR1I TO MATRICULA 00282335
EXEC CICS DELETE DATASET ('CADALU') 00282654
RIDFLD (MATRICULA) 00282848
NOHANDLE 00283048
END-EXEC. 00283148
MOVE '1' TO CA-FASE 00283935
MOVE 'ALUNO EXCLUIDO COM SUCESSO' TO MENSO 00284054
PERFORM 720-00-EXIBE-TELA-COM-ALARME 00284135
PERFORM 999-98-SAIDA-COM-TRANSID. 00284235
00284335
700-00-RECEBE-TELA. 00284435
EXEC CICS RECEIVE MAP ('MPXX03') 00284554
MAPSET ('MPXX03') 00284654
INTO (MPXX03I) 00284754
NOHANDLE 00284835
END-EXEC. 00284935
00285035
710-00-EXIBE-TELA-SEM-ALARME. 00285135
PERFORM 740-00-PESQUISA-DATA-HORA 00285235
EXEC CICS SEND MAP ('MPXX03') 00285354
MAPSET ('MPXX03') 00285454
FROM (MPXX03I) 00285554
FREEKB 00285635
FRSET 00285735
ERASE 00285835
CURSOR 00285935
NOHANDLE 00286035
END-EXEC. 00286135
00286235
720-00-EXIBE-TELA-COM-ALARME. 00286335
PERFORM 740-00-PESQUISA-DATA-HORA 00286435
EXEC CICS SEND MAP ('MPXX03') 00286554
MAPSET ('MPXX03') 00286654
FROM (MPXX03I) 00286754
FREEKB 00286835
FRSET 00286935
ERASE 00287035
ALARM 00287135
CURSOR 00287235
NOHANDLE 00287335
END-EXEC. 00287435
00287535
730-00-EXIBE-TEXTO. 00287635
EXEC CICS SEND TEXT FROM (WK-MENSAGEM) 00287735
FREEKB 00287835
ERASE 00287935
ALARM 00288035
NOHANDLE 00288135
END-EXEC. 00288235
00288335
740-00-PESQUISA-DATA-HORA. 00288435
EXEC CICS ASKTIME ABSTIME (WK-TEMPO) END-EXEC. 00288535
EXEC CICS FORMATTIME ABSTIME (WK-TEMPO) 00288635
DDMMYYYY (WK-DATA) 00288735
DATESEP ('/') 00288835
TIME (WK-HORA) 00288935
TIMESEP (':') 00289035
END-EXEC. 00289135
MOVE WK-DATA TO DATASYSO. 00289235
MOVE WK-HORA TO HORASYSO. 00289335
00289435
999-97-TRATAR-ABEND. 00289535
*========================================================= 00289635
* CANCELA O HANDLE ABEND E CAPTURA O CODIGO ABEND = 00289735
* PARA EXIBIR NA TELA = 00289835
*========================================================= 00289935
EXEC CICS HANDLE ABEND CANCEL END-EXEC. 00290035
EXEC CICS ASSIGN ABCODE(WK-ABEND) END-EXEC. 00290135
MOVE 'OCORREU UM ERRO NO APLICATIVO - CODIGO = ' 00290235
TO WK-MENSAGEM 00290335
MOVE WK-ABEND TO WK-MENSAGEM(42:4) 00290435
PERFORM 730-00-EXIBE-TEXTO 00290535
PERFORM 999-99-SAIDA-SEM-TRANSID. 00290635
00290735
999-98-SAIDA-COM-TRANSID. 00290835
EXEC CICS RETURN TRANSID ('IN03') 00290954
COMMAREA (CA-COMMAREA) 00291035
END-EXEC. 00291135
00291235
999-99-SAIDA-SEM-TRANSID. 00292035
EXEC CICS RETURN END-EXEC. 00300035

Vous aimerez peut-être aussi