Você está na página 1de 206

Curso CICS Nvel Pleno

Nvel Pleno

CICS

108336228.doc

2 de 206

Curso CICS Nvel Pleno

Caro(a) Colaborador(a), Seja bem vindo(a) ao Curso CICS Nvel Pleno Voc est fazendo parte de um seleto grupo de profissionais que tem acesso a uma inovadora metodologia de transmisso de conhecimento. O instrutor Nelson Teruya pertence ao nosso quadro de profissionais, um especialista neste assunto e est habilitado para conduzir este curso. O Gestor deste curso o Oscar Gaspari, da rea de Desenvolvimento de Pessoal ramal 115 e e-mail ogaspari@sao.politec.com.br que far o acompanhamento e est sua disposio para garantir o bom desenvolvimento do treinamento. Desejamos um bom curso e um timo desempenho!

Flvio Marques Diretor Regional SP/RJ

COPYRIGHT Nenhuma parte deste material sem autorizao prvia por escrito da Politec Ltda poder ser reproduzida ou transmitida sejam quais forem os meios empregados: eletrnicos, mecnicos, fotogrficos, gravaes ou quasiquer outros. Todos os direitos esto reservados e protegidos pela Lei 5.988 de 14/12/1973.

108336228.doc

3 de 206

Curso CICS Nvel Pleno

ndice Geral

1. 1.1 1.2 1.3 1.4 1.5 1.6

Introduo........................ O que o CICS?............... Benefcios proc. on-line.... Introduo proc. on-line.... Resumo............................. Glossrio........................... Bibliografia........................

09 10 10 12 13 14 15

2. 2.1 2.2 2.3 2.4 2.5 2.6

Fluxo on-line................... Ex. ambiente on-line........ Ambiente CICS.................. Algumas funes do CICS... Resumo........................... Glossrio........................... Bibliografia........................

16 16 18 18 19 20 21

3 Regras e Funes.............. 3.1 Regras sob o CICS.............. 3.2 Cod. de funo - EIB......... 3.3 Param. do EIB.................. 3.4 Resumo ........................... 3.5 Glossrio........................... 3.6 Bibliografia........................

22 22 24 27 28 29 30

4. 4.1 4.2 4.3 4.4 4.5 4.6

Componentes CICS........... Mdulos de Gerncia......... Tabelas............................. Blocos de Controle............. Resumo........................... Glossrio........................... Bibliografia........................

31 31 35 37 38 39 40

5. 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.5 7. 7.1 7.2 7.3 7.4 7.5 7.6

Fundamentos................ Codificao....................... Formato dos comandos...... Compilao Cobol.............. Passagem de dados........... Resumo ........................... Glossrio........................... Bibliografia........................ Bibliografia........................ Depurao ...................... Push / Pop Handle............. Abend / Dump................... Bif.................................... Resumo ........................... Glossrio........................... Bibliografia........................

41 41 41 43 43 44 45 46 48 55 55 55 57 58 59 60

6 6.1 6.2 6.3 6.4 6.5

Comandos de Exceo........ Handle / Ignore Condition .. Handle Aid / Abend............ Resumo ........................... Glossrio........................... Bibliografia........................

47 47 51 52 53 54

8. 8.1 8.2 8.3 8.4 8.5

Envio de Texto................. Receive............................. Send................................. Resumo ........................... Glossrio........................... Bibliografia........................

61 61 65 68 69 70

9. 9.1 9.2 9.3 9.4 9.5

Usando BMS-1................. Definindo telas............... DFHMSD............. Resumo ........................... Glossrio........................... Bibliografia........................

71 71 73 76 77 78

10 10.1 10.2 10.3 10.4 10.5

Usando BMS-2................ DFHMDI..,..................... DFHMDF,,............. Resumo ......................... Glossrio......................... Bibliografia......................

79 79 81 83 83 84

108336228.doc

4 de 206

Curso CICS Nvel Pleno

11. 11.1 11.2 11.3 11.3 11.4 11.5

Conceitos de VSAM........... Definindo arquivos.......... Operaes permitidas....... Integridade dos dados...... Resumo ......................... Glossrio......................... Bibliografia......................

85 85 85 89 90 91 92

12. VSAM-Acesso direto-1....... 12.1 Read.............................. 12.2 Write.............................. 12.3 Resumo ......................... 12.4 Glossrio......................... 12.5 Bibliografia......................

93 93 95 96 97 98

13. VSAM-Acesso direto-2...... 13.1 Rewrite.......................... 13.2 Delete............................ 13.3 Unlock.. ........................ 13.4 Resumo.................... 13.5 Glossrio........................ 13.6 Bibliografia.....................

99 99 101 101 102 103 104

14. VSAM Browse-1............ 14.1 Startbr........ 14.2 ReadNext ...................... 14.3 EndBr............................. 14.4 Resumo ........................ 14.5 Glossrio........................ 14.6 Bibliografia.....................

105 105 107 107 110 111 112

15. VSAM Browse-2............ 15.1 ReadPrev. .... 15.2 ResetBr. ...................... 15.3 Condies de erro........... 15.4 Resumo ........................ 15.5 Glossrio........................ 15.6 Bibliografia.....................

113 113 115 115 116 117 118

16. Comandos de Navegao. 16.1 Link.............................. 16.2 Return............ 16.3 Xctl............................ 16.4 Nvel Lgico................ 16.5 Resumo ..................... 16.6 Glossrio..................... 16.7 Bibliografia...................

119 119 119 121 123 124 125 126

17. Controle de programa-1... 17.1 Tab. Assembler............... 17.2 Load.............................. 17.3 Release ......................... 17.4 Resumo.................... 17.5 Glossrio........................ 17.6 Bibliografia.....................

127 127 129 129 130 131 132

18. Controle de programa-2... 18.1 Start............................. 18.2 Retrieve......................... 18.3 Resumo ........................ 18.4 Glossrio........................ 18.5 Bibliografia.....................

133 133 135 136 137 138

19. 19.1 19.2 19.3 19.4 19.5 19.6 19.7 19.8 4

Comandos de espera...... Delay............................. Cancel............................ Post............................... Wait............................... Condies de erro........... Resumo ......................... Glossrio........................ Bibliografia.....................

139 139 141 141 143 135 146 147 148

20. 20.1 20.2 20.3 20.4 20.5 20.6 20.7

Endereamento............ Getmain....................... Freemain...................... Assign.......................... Address.......................... Resumo ......................... Glossrio........................ Bibliografia.....................

149 149 149 151 151 152 153 154

108336228.doc

5 de 206

Curso CICS Nvel Pleno

21. Conceito de TS................ 21.1 Armazenam/ Temporrio. 21.2 Pseudoconversao......... 21.3 Resumo ........................ 21.4 Glossrio........................ 21.5 Bibliografia.....................

155 155 157 158 159 160

22. Operaes com TS-1........ 22.1 Gravando TS.................. 22.2 Lendo TS........................ 22.3 Resumo ........................ 22.4 Glossrio........................ 22.5 Bibliografia.....................

161 161 163 164 165 166

23. Operaes com TS-2........ 23.1 Deleo de TS............... 23.2 Regravao de TS......... 23.3 Condies de erro......... 23.4 Resumo.................. 23.5 Glossrio...................... 23.6 Bibliografia...................

167 167 167 169 170 171 172

24. Aplicao de TS.............. 24.1 Modelo de mapa............ 24.2 Paginao de mapas....... 24.3 Resumo ........................ 24.4 Glossrio........................ 24.5 Bibliografia..................... 2. Fluxo on-line...................

173 173 175 176 177 178

25. Conceitos de TD.............. 25.1 Armazenam. Transitrio.. 25.2 Gravao de TD........... 25.3 Resumo ........................ 25.4 Glossrio........................ 25.5 Bibliografia.....................

179 179 181 182 183 184

26. Operaes com TD.......... 26.1 Leitura de TD............... 26.2 deleo de TD......... 26.3 Condies de erro......... 26.4 Resumo.................. 26.5 Glossrio...................... 26.6 Bibliografia...................

185 185 187 187 188 189 190

27. Manuseio de Datas......... 27.1 Asktime..................... 27.2 Formattime............... 27.4 Resumo.................. 27.5 Glossrio...................... 27.6 Bibliografia...................

191 191 191 194 195 196

28. Envio de Mapas............ 28.1 Send Map................. 28.2 Receive Map........... 28.3 Condies de erro......... 28.4 Resumo.................. 28.5 Glossrio...................... 28.6 Bibliografia...................

197 197 201 201 202 203 204

108336228.doc

6 de 206

Curso CICS Nvel Pleno

Lista de Siglas
Sigla ABEND BMS CI CICS CPU CSA CWA DB DCT DSA E/S EIB ESDS FCP FCT FIOA Significado Abnormal End = Fim Anormal Basic Map Support Control Interval Customer Information Control System Central Process Unit Common System Area Common Work Area Data Base Destination Control Table Dynamic Storage Address Entrada/Sada Exec Interface Block Entry Sequenced Data Set File Control Program File Control Table File Input/Output Area

108336228.doc

7 de 206

Curso CICS Nvel Pleno

Sigla IC ICP I/O KCP KSDS LUW MDT PCP PCT PPT RBA RRDS RRN SCP Interval Control Interval Control Program Input/Output Task Control Program Key Sequenced Data Set Logical Unit of Work Modified Data Tag Program Control Program Program Control Table Processing Program Table Relative Byte Address Relative Record Data Set Relative Record Number Storage Control Program

Significado

108336228.doc

8 de 206

Curso CICS Nvel Pleno

Sigla TCA TCP TCT TD TDP TIOA TS TSP VSAM WS Terminal Control Area Terminal Control Program Terminal Control Table Transient Data Transient Data Program Terminal Input Output Area Temporary Storage Terminal Storage Program

Significado

Virtual Storage Access Method Working-Storage Section

108336228.doc

9 de 206

Curso CICS Nvel Pleno

Prefcio
Este curso tem por objetivo capacitar profissionais de informtica da rea de mainframe (programadores, analistas de sistemas), para desenvolverem aplicaes on-line usando a ferramenta CICS. Sero apresentados os conceitos e componentes inerentes ao produto e os comandos que permitiro o uso das suas principais funes, voltadas para a linguagem Cobol. O CICS foi criado em 1968 e transformado em programa-produto IBM em 1969, sua primeira verso. Ele um monitor para gerenciamento de teleprocessamento de estrutura modular.

108336228.doc

10 de 206

Curso CICS Nvel Pleno

Mdulo 01 1. Introduo
1.1 O que CICS?

O CICS (Customer Information Control System) um conjunto de vrios mdulos/programas de gerenciamento, desenvolvido pela IBM, que forma um sistema de comunicao de dados. Ele permite que os dados entrados num terminal sejam processados, bancos de dados sejam acessados e por fim as informaes solicitadas sejam transmitidas ao terminal de origem. necessrio um software de telecomunicaes e um ou mais mtodos de acesso. Linguagens de programao so suportadas (Cobol, Assembler, PL/I). Esse sistema recebe a denominao de processamento on-line.

1.2

Benefcios do processamento on-line

Reduo do tempo de acesso e atualizao das informaes; Agilizao no processo geral da empresa, proporcionando a satisfao do cliente; Facilita a tomada de deciso gerencial. Diminui o uso de relatrios em papel; Maior segurana e seletividade no acesso a informaes confidenciais;

1.3

Introduo ao Processamento On-line

Processamento on-line o recebimento de informaes de um terminal, manipulao das mesmas e envio de uma resposta ao usurio. E tudo isso deve ser feito em questo de segundos! O CICS funciona como um Job sendo executado em uma regio de memria. Podemos ter diversas regies CICS trabalhando e distribuindo a carga de processamento atravs de facilidades de comunicao. Atua como interface entre o Sistema Operacional e os programas de aplicao; efetua as funes de controle; Gerencia as tarefas e a memria.

OBSERVAO: Um CICS pode comunicar-se com


outros CICS residentes na mesma CPU, em CPUs diferentes, e mesmo em localidades diversas do planeta.

108336228.doc

11 de 206

Curso CICS Nvel Pleno

Mdulo 01

Citao

Existem diferenas marcantes entre o processamento batch e o on-line ; Para este ltimo ficam as consultas na tela e atualizaes imediatas; Para aquele cabem as atualizaes em massa e os relatrios extensos.

108336228.doc

12 de 206

Curso CICS Nvel Pleno

Mdulo 01
1.4 - Batch x On-line: Batch Quem abre os arquivos Quem o dono da partio Como o acesso seqencial Como o acesso randmico Como so os relatrios Reg. processados cada rodada Como o programa roda Como so os recursos Ao do usurio Programa de aplicao Programa de aplicao Muito Pouco Extensos Vrios Isolado Todos ficam disposio Solicita o servio e recebe um relato do resultado da execuo, que ocorre normalmente noite On-line CICS CICS Pouco Muito Resumidos Poucos Concorrentemente Compartilhados Aciona e acompanha a execuo ao vivo

108336228.doc

13 de 206

Curso CICS Nvel Pleno

Mdulo 01 Resumo
Foi descrito o que o CICS e os benefcios que ele proporciona; Foi dada uma introduo ao processamento on-line e foram apresentadas as diferenas existentes entre o processamento Batch e o On-line;

108336228.doc

14 de 206

Curso CICS Nvel Pleno

Mdulo 01 Glossrio
Job Batch On-line Conjunto de cartes de controle para execuo de um ou mais programas em processamento batch. Processamento tradicional, off-line, ou seja, sem o acompanhamento direto do usurio. Processamento interativo, a partir de um terminal do usurio.

Sistema Conjunto de programas que permite ao computador executar as Operacional operaes essenciais de I/O, clculos, movimentao, etc.

108336228.doc

15 de 206

Curso CICS Nvel Pleno

Mdulo 01 Bibliografia
CICS: programando usando Cobol / William G. Bruno Ed. Campus. CICS/VS Aplic. Progr. Ref. CICS/VS Aplic. Progr. Ref. (Macro) CICS/VS Operators Guide CICS Introduo Coleoar-GSO-Disop SC33 0077 - IBM SC33 0079 IBM SC33 0080 IBM - colodi@pr.gov.br

108336228.doc

16 de 206

Curso CICS Nvel Pleno

Mdulo 02 2. Fluxo on-line

2.1 EXEMPLO DE AMBIENTE ON-LINE :

xxxxxxxxxxx

TRN1 CONSULTA (Usuario1)

PROGRAMA1

ARQUIVO1

TRN2 INCLUSAO (Usuario2) TRN3 ALTERACAO (Usuario3)

PROGRAMA2 Tela 2 yyyyyyyyyyy Tela 3 yyyyyyyyyyy

ATENO: O CICS cria uma


unidade de servio chamada Tarefa (Task);

108336228.doc

17 de 206

Curso CICS Nvel Pleno

Mdulo 02

Citao

O CICS controla o compartilhamento de recursos dentro da regio onde opera, e vrios programas podem acessar um mesmo arquivo simultaneamente.

108336228.doc

18 de 206

Curso CICS Nvel Pleno

Mdulo 02
2.2 AMBIENTE DO CICS TRANSAO (ENTRADA NUM TERMINAL): DC (VTAM) SISTEMA OPERACIONAL REGIO CICS NCLEO: CSA, CWA, Tabelas (TCP, TCT, PCP, etc.) DSA PGM1 TASK1: WS1 PGM2 TASK2/TASK3: WS2 / WS3

TRN1 17112004

IDENTIFICAO DA TRANSAO

(DADOS)

DB (VSAM, DB2)

ARQUIVOS E BANCO DE DADOS

2.3 - Algumas funes do CICS: Cria uma unidade de servio chamada Tarefa (Task); Aceitar dados logo que estes estejam prontos para transmisso; Registra de qual terminal vieram os dados; Chama o programa correspondente e passa ao mesmo os dados; Controla o compartilhamento de recursos dentro da regio; enquanto uma transao estiver numa condio de espera, por ex. aguardando uma operao de E/S, outra transao pode ser processada. Vrios programas podem acessar um mesmo Arquivo ou Banco de Dados, simultaneamente.

108336228.doc

19 de 206

Curso CICS Nvel Pleno

Mdulo 02 Resumo
Foram exibidos exemplos de ambiente On-line e fluxo das informaes, sob o controle do CICS; Foi descrito o funcionamento do CICS num nvel Macro e suas principais funes;

108336228.doc

20 de 206

Curso CICS Nvel Pleno

Mdulo 02 Glossrio
Task Tarefa sendo executada na memria Transao Cdigo pelo qual uma tarefa solicitada no terminal.

108336228.doc

21 de 206

Curso CICS Nvel Pleno

Mdulo 02 Bibliografia
CICS: programando usando Cobol / William G. Bruno Ed. Campus. CICS/VS Aplic. Progr. Ref. CICS/VS Aplic. Progr. Ref. (Macro) CICS/VS Operators Guide CICS Introduo Coleoar-GSO-Disop SC33 0077 - IBM SC33 0079 IBM SC33 0080 IBM - colodi@pr.gov.br

108336228.doc

22 de 206

Curso CICS Nvel Pleno

Mdulo 03 3 Regras e Funes

3.1 Regras a serem observadas na programao sob o CICS:

Os programas devem ser curtos e relativamente simples. Evitar programas grandes; Restries de tamanho - Programa 512K, Working-Storage 64K, Linkage 32K; Ao encerrar uma aplicao o controle deve retornar para o CICS; No pode haver modificao dinmica das instrues (programa re-entrante). So proibidas instrues de E/S Accept, Display, Open, Close, Read, Write, etc., Ao tratar Tabelas, cuidado para no estourar o nmero de ocorrncias, pois ser invadida uma rea que no lhe pertence com resultados imprevisveis;

ATENO: No Cobol , no so codificadas


as Section: Configuration, Input-Output, File.

108336228.doc

23 de 206

Curso CICS Nvel Pleno

Mdulo 03

Citao

Daremos a lista completa de comandos CICS e seus respectivos cdigos, porm alguns desses comandos no sero vistos neste curso; eles sero vistos apenas no Curso de CICS Nvel Senior.

108336228.doc

24 de 206

Curso CICS Nvel Pleno

Mdulo 03

3.2 Cdigos de funo do EIB: FUNO------------------ADDRESS HANDLE CONDITION HANDLE AID ASSIGN IGNORE CONDITION PUSH RECEIVE SEND CONVERSE ISSUE EODS ISSUE COPY WAIT TERMINAL ISSUE LOAD WAIT SIGNAL ISSUE RESET DISCONNECT 04 14 ENDOUTPUT ERASEAUP ENDFILE PRINT SIGNAL CDIGO 02 02 02 04 02 06 02 08 02 0A 02 0C 02 0E 04 02 04 04 04 06 04 08 04 0A 04 0C 04 0E 04 10 04 12 04 16 04 18 04 1A 04 1C 04 1E 04 20 04 22 FUNO-----------------CDIGO

BUILD ATTACH EXTRACT ATTACH EXTRACT TCT WAIT CONVID EXTRACT PROCESS ISSUE ABEND CONNECT PROCESS CONFIRMATION ERROR PREPARE LOGONSMG 04 3C

04 32 04 34 04 36 04 38 04 3A

READ WRITE REWRITE DELETE UNLOCK STARTBR READNEXT READPREV ENDBR RESETBR WRITEQ TD READQ TD DELETEQ TD WRITEQ TS READQ TS DELETEQ TS GETMAIN FREEMAIN LINK XCTL LOAD RETURN RELEASE ABEND 04 24 HANDLE ABEND 04 26 ASKTIME 04 28 DELAY 04 2A POST 04 2C START 04 2E RETRIEVE 04 30 CANCEL WAIT EVENT END DEQ SUSPEND

06 02 06 04 06 06 06 08 06 0A 06 0C POP 06 0E 06 10 06 12 06 14 08 02 08 04 08 06 0A 02 0A 04 0A 06 ISSUE 0C 02 ISSUE 0C 04 ISSUE 0E 02 ISSUE 0E 04 ISSUE 0E 06 ISSUE 0E 08 ALLOCATE 0E 0A FREE 0E 0C POINT 0E 0E 10 02 10 04 10 06 10 08 10 0A 10 0C 12 02 ISSUE 12 04 ISSUE 12 06 ISSUE 12 08 ISSUE PASS EXTRACT

108336228.doc

25 de 206

Curso CICS Nvel Pleno

Mdulo 03
Cdigos de funo do EIB (continuao): FUNO------------------CDIGO 14 02 14 04 16 02 18 02 18 04 18 06 18 08 18 0A 18 0C 18 0E 18 10 18 12 18 0C 18 0E 18 10 FUNO-----------------READ WRITE REWRITE DELETE UNLOCK STARTBR READNEXT READPREV ENDBR RESETBR WRITEQ TD READQ TD DELETEQ TD WRITEQ TS READQ TS CDIGO

ADDRESS HANDLE CONDITION HANDLE AID ASSIGN IGNORE CONDITION PUSH POP RECEIVE SEND CONVERSE ISSUE EODS ISSUE COPY WAIT TERMINAL ISSUE LOAD WAIT SIGNAL ISSUE RESET 18 12 DISCONNECT 1A 02 ENDOUTPUT 1A 04 ERASEAUP 1C 02 ENDFILE 1E 02 PRINT 1E 04 SIGNAL 1E 06 1E 08 1E 0A 1E 0D ATTACH 1E 0E ATTACH 1E 10 1E 12 1E 14 20 02 4A 02 4A 04 4C 02 4C 04 4E 02 4E 04

50 02 50 04 52 06 52 08 52 0A 54 0C 54 0E 56 10 56 12 56 14 58 02 58 04 5A 06 5A 02 5A 04 ISSUE ISSUE ISSUE ISSUE ISSUE ISSUE ALLOCATE FREE POINT BUILD EXTRACT EXTRACT TCT WAIT CONVID EXTRACT PROCESS ISSUE ABEND CONNECT PROCESS ISSUE CONFIRMATION ISSUE ERROR ISSUE PREPARE ISSUE PASS

108336228.doc

26 de 206

Curso CICS Nvel Pleno

Mdulo 03

Citao

O EIB contm um conjunto de palavras reservadas, cada uma delas contendo uma informao dinmica dos blocos de controle do CICS.

108336228.doc

27 de 206

Curso CICS Nvel Pleno

Mdulo 03

3.3 - Exec Interface Block ( EIB ) : NOME---- HEX OFFSET TAMANHO EIBTIME EIBDATE EIBTRNID 00 04 08 DESCRIO----------------------------------------

4 Hora de incio da task 4 Data de incio da task 4 Identificao da transao EIBTASKN 0C 4 Nmero da task EIBTRMID 10 4 Identificao do terminal associado EIBREIGDI 14 2 EIBCPOSN 16 2 Posio do cursor no ltimo Receive EIBCALEN 18 2 Tamanho da COMMAREA EIBAID 1A 1 Representao hexa da tecla pressionada EIBFN 1B 2 Cdigo da ltima funo executada EIBRCODE 1D 6 Cdigo de Retorno do ltimo comando EIBDS 23 8 Nome do ltimo arquivo referenciado EIBREQID 2B 8 Contm o valor assinalado em um comando de Interval Control EIBRSRCE 33 8 Cdigo do ltimo recurso de I/O usado EIBRSYNC 3B 1 Indica que o programa deve fazer um Syncpoint ou terminar EIBFREE 3C 1 O programa deve liberar a rea ou encerrar EIBRECV 3D 1 Ainda h dados a serem recebidos (RECEIVE) EIBSEND 3E 1 EIBATT EF 1 Indica que a RU contm atach header data EIBEOC 40 1 Indica que um end-of-chain ocorreu na RU EIBFMH 41 1 Indica que os dados recebidos ou acessados contem um FMH EIBCOMPL 42 1 Indica que o comando Receive foi completado EIBSIG 43 1 Indica que o SIGNAL foi recebido EIBCONF 44 1 Foi recebida a confirmao da requisio EIBERR 45 1 Um erro foi recebido numa conversao APPC EIBERRCD 46 4 Contm o cdigo do EIBERR EIBSYNRB 4A 1 Indica que o progr. pode fazer um Rollback EIBNODAT 4B 1 No foram enviados dados no SEND EIBRESP 4D 4 Resposta a um comando do CICS (numrico, decimal, = 3 byte do EIBRCODE) EIBRESP2 51 4 Complemento do EIBRESP EIBRLDBK 55 1 Indica Rollback

108336228.doc

28 de 206

Curso CICS Nvel Pleno

Mdulo 03 Resumo

Foram abordadas as regras que devem ser observadas para que uma boa performance seja alcanada. Por ltimo foi exibido um quadro com todos os comandos do CICS e a descrio do EIB.

108336228.doc

29 de 206

Curso CICS Nvel Pleno

Mdulo 03 Glossrio
Re-entrante Diz-se do programa que no pode ser modificado na memria. Linkage rea externa ao Programa.

108336228.doc

30 de 206

Curso CICS Nvel Pleno

Mdulo 03 Bibliografia
CICS: programando usando Cobol / William G. Bruno Ed. Campus. CICS/VS Aplic. Progr. Ref. CICS/VS Aplic. Progr. Ref. (Macro) CICS/VS Operators Guide CICS Introduo Coleoar-GSO-Disop SC33 0077 - IBM SC33 0079 IBM SC33 0080 IBM - colodi@pr.gov.br

108336228.doc

31 de 206

Curso CICS Nvel Pleno

Mdulo 04 4. Componentes CICS

. MDULOS DE GERNCIA;
. TABELAS; . BLOCOS DE CONTROLE.

4.1 Mdulos de Gerncia: So programas do CICS que fazem interface com os programas de aplicao, executa as operaes de E/S e outras funes especiais. So carregados na CSA (Commom System rea). So as seguintes: TCP Terminal Control Program Define as caractersticas dos terminais; Mtodos de acesso: BTAM, VTAM; Controla as comunicaes com os terminais na rede; Faz o polling dos terminais; Inicia as transaes, verifica na TCT se para aquele terminal j existe uma task atachada; Prov a retirada ou insero dos caracteres de controle de transmisso de uma mensagem; Faz a transferncia de informaes do Program, para o Terminal e vice-versa;

LEMBRETE: Todas as funes executadas


pelo TCP so transparentes ao Programa de aplicao. SCP Storage Control Program KCP Task Control Program Permite o monitoramento do uso de recursos pelas tasks, fazendo com que o Recurso seja usado em srie (no concorrentemente);

108336228.doc

32 de 206

Curso CICS Nvel Pleno

Mdulo 04

Citao

A parte mais difcil das operaes de E/S feita pelo CICS atravs dos mdulos de gerncia; cada um deles realiza uma funo especial.

108336228.doc

33 de 206

Curso CICS Nvel Pleno

Mdulo 04
PCP Program Control Program Localiza programas e carrega-os, se necessrio, passando o controle a eles; Facilita a passagem de dados de um programa a outro; Carga e liberao de uma Tabela; Otimiza a memria, via nica cpia de programa (vrias cpias da WS);

FCP File Control Program Abre e fecha arquivos; Mtodos de acesso: VSAM, DB2; Recupera registros (leitura), deblocando-os; Permite consulta, adio, atualizao e deleo de registros; Trata operao concorrente e evita atualizao simultnea;

ICP Interval Control Program Fornece acesso Hora e Data e permite ao programa de aplicao a capacidade de iniciar uma nova tarefa a um dado intervalo de tempo;

TSP Temporary Storage Program Gerencia a memria temporria, fornecendo recurso para armazenamento Intermedirio; Permite a recuperao dos dados na memria intermediria, por vrios programas de aplicao;

TDP Transient Data Program Fornece um meio de armazenamento intermedirio para que dados criados por uma ou mais tarefas sejam processados por outra; Os dados so gravados em destinos definidos na DCT, e so processados de maneira seqencial;

108336228.doc

34 de 206

Curso CICS Nvel Pleno

Mdulo 04

Citao

As tabelas do CICS esto funcionalmente associadas aos mdulos de gerncia; Por exemplo, ao ser emitido um comando de gravao, O FCP toma o controle e acessa a FCT, para obter as caractersticas do arquivo em questo.

108336228.doc

35 de 206

Curso CICS Nvel Pleno

Mdulo 04
4.2 Tabelas do CICS:

As tabelas do CICS so: FCT File Control Table Os Programas CICS Cobol no usam a FILE SECTION, no especificam FD, e no usam os comandos OPEN e CLOSE; todas as informaes a respeito dos arquivos so informadas na tabela FCT. Normalmente so usados arquivos com mtodo de acesso VSAM KSDS. PCT Program Control Table O CICS trabalha com Transaes; uma vez ativada uma Transao, o CICS precisa saber qual o Programa associado a ela; Esta informao est na PCT. PPT Processing Program Table Cada Programa ou Mapa criado para o CICS, devero ter seus nomes includos na tabela PPT. Contm: Nome do programa, localizao na biblioteca, linguagem, contador de uso; TCT Terminal Control Table Esta tabela relaciona os terminais disponveis para serem utilizados pelo CICS. Cada tabela um conjunto de Macro instrues Assembler, compilada e catalogada; Cada CICS definido (Teste1, Teste2, Homologao, Produo, etc.) deve ter seu conjunto tabelas. DCT Destination Control Table Esta tabela define o uso de dados transitrios.

108336228.doc

36 de 206

Curso CICS Nvel Pleno

Mdulo 04

Citao

As informaes dispostas nos blocos de controle (pointers, etc.) So trazidas para a WS pelo EIP (Exec Interface Program).

108336228.doc

37 de 206

Curso CICS Nvel Pleno

Mdulo 04
4.3 Blocos de Controle:

Contm informaes de sistema. TCA Task Control Area Quando uma transao iniciada um bloco de controle criado (TCA). Contm informaes pertinentes Tarefa, como indicadores (pointers) de localizao para o programa de aplicao e para a entrada do terminal na TCT.

FIOA File I/O rea Informaes de um registro.

TIOA Terminal I/O rea Onde so dispostas as mensagens de Terminal.

108336228.doc

38 de 206

Curso CICS Nvel Pleno

Mdulo 04 Resumo
Cada componente do CICS gerado atravs da codificao de Macros Assembler, as quais so catalogadas. Antes de um programa ser testado todos os componentes devero ter sido criados no ambiente de Desenvolvimento. Por ocasio da implantao da transao em Produo todos os componentes devero ter sido transferidos para o ambiente de Produo.

108336228.doc

39 de 206

Curso CICS Nvel Pleno

Mdulo 04 Glossrio
Mtodo de acesso Conjunto de programas de controle que gerenciam as funes e interpretam os protocolos de um dispositivo de E/S. Polling Atachar Escalonamento. Dedicar.

108336228.doc

40 de 206

Curso CICS Nvel Pleno

Mdulo 04 Bibliografia
CICS: programando usando Cobol / William G. Bruno Ed. Campus. CICS/VS Aplic. Progr. Ref. CICS/VS Aplic. Progr. Ref. (Macro) CICS/VS Operators Guide CICS Introduo Coleoar-GSO-Disop SC33 0077 - IBM SC33 0079 IBM SC33 0080 IBM - colodi@pr.gov.br

108336228.doc

41 de 206

Curso CICS Nvel Pleno

Mdulo 05 5. Fundamentos
5.1 - Codificao: Macro Level: a codificao em nvel de Macro-instrues (assembler) ou Comandos CALL (Cobol); Command Level: a codificao utilizando-se de Keywords iniciando por EXEC CICS, seguido dos parmetros (obrigatrios ou opcionais) e terminando por um delimitador (END-EXEC, no Cobol).

5.2 Formato dos comandos: Parmetros dos comandos, na linguagem Cobol: EXEC CICS RECEIVE INTO (WS-CAMPO) LENGTH (WS-TAM) [RESP (WS-RESP)] ENDEXEC Argumentos: Data-value Data-area Halfword Word Doubleword Pointer Label Date, Time - Valor numrico ou alfanumrico - Campo definido na WS PIC S9(04) COMP (Length) PIC S9(09) COMP PIC S9(18) COMP - Word ou USAGE POINTER (Bll Cell) - Nome de pargrafo Iniciador Funo Opo (Argumento) Opo (Argumento) Opo (Argumento) - opcional Delimitador final

LEMBRETE: Algumas opes de


comandos CICS no possuem argumento.

108336228.doc

42 de 206

Curso CICS Nvel Pleno

Mdulo 05

Citao

O segredo da pseudo-conversao est na COMMAREA. Na primeira execuo EIBCALEN ser igual a zero e utilizaremos a COMMAREA na WS para passagem de dados. Nas demais execues EIBCALEN ser maior que zero e haver dados sendo recebidos no campo DFHCOMMAREA, na Linkage.

108336228.doc

43 de 206

Curso CICS Nvel Pleno

Mdulo 05
5.3 - Compilao de Programas Cobol: Os programas CICS Command Level necessita passar por uma fase preparatria, antes da compilao. Essa fase recebe o nome Translator. O Translator um pr-processador que traduz os comandos EXEC CICS para MOVEs e CALLs. Ele tambm inclui algumas reas de trabalho na WS e na Linkage.

5.4 - Passagem de dados para outra tarefa: Para enviar dados para outra task usamos uma rea de comunicao chamada COMMAREA. No programa que passa os dados essa rea definida na WS, e pode Ter qualquer nome. No programa que recebe, os dados so passados na Linkage, numa rea chamada DFHCOMMAREA. O tamanho da rea recebida deve ser o mesmo da rea envida. Se a COMMAREA no for passada, seu tamanho ser zero, portanto EIBCALEN ser igual a zero. Exemplo:
ID DIVISION. PROGRAM-ID. EXE1PGM.

WORKING-STORAGE SECTION. 01 W-COMMAREA. 05 WS-CAMPO1 05 WS-CAMPO2 LINKAGE SECTION. 01 DFHCOMMAREA. 05 LK-CAMPO1 05 LK-CAMPO2 PROCEDURE DIVISION. IF EIBCALEN MOVE 9999 EXEC CICS

PIC PIC

X(02) VALUE C1. 9(04).

PIC PIC

X(02). 9(04).

Citao
EQUAL ZEROS TO WS-CAMPO2 RETURN TRASID (EXE1) COMMAREA (WS-COMMAREA) LENGTH (06)

END-EXEC END-IF O EIB (Exec Interface Block) a primeira rea da LINKAGE . . . E suprida em tempo de execuo com informaes essenciais Extradas dos blocos de controle do CICS.

108336228.doc

44 de 206

Curso CICS Nvel Pleno

Mdulo 05 Resumo
Foi mostrada a diferena da codificao em macro level e em command level, e tambm foi descrito o formato dos comandos e seus argumentos; Foram mostradas as fases de uma compilao, e como se passa parmetros de uma task para a prxima task; Por fim foi exibido o contedo da EIB (Exec Interface Block).

108336228.doc

45 de 206

Curso CICS Nvel Pleno

Mdulo 05 Glossrio
Codificao Escrita de um programa por meio de palavras-chave.

108336228.doc

46 de 206

Curso CICS Nvel Pleno

Mdulo 05 Bibliografia

CICS: programando usando Cobol / William G. Bruno Ed. Campus. CICS/VS Aplic. Progr. Ref. CICS/VS Aplic. Progr. Ref. (Macro) CICS/VS Operators Guide CICS Introduo Coleoar-GSO-Disop SC33 0077 - IBM SC33 0079 IBM SC33 0080 IBM - colodi@pr.gov.br

108336228.doc

47 de 206

Curso CICS Nvel Pleno

Mdulo 06 6. Comandos de Exceo


HANDLE CONDITION / IGNORE CONDITION HANDLE AID / HANDLE ABEND

6.1 - HANDLE CONDITION / IGNORE CODITION : Handle Condition: EXEC CICS HANDLE CODITION OPCAO01 H01) ..... OPCAO16 END-EXEC Este comando serve para pr-estabelecer o nome de rotinas de manuseio das condies de exceo (at 16). Ocorrendo a condio ser feito um desvio automtico para a rotina especificada. (LABEL-H16) (LABEL................

Exemplo: EXEC CICS HANDLE CODITION INVREQ NOTFND LENGERR PGMIDERR LENGERR ERROR (80-010-TRATA-INV-REQ) (80-020-TRATA-NAO-ACHOU) (80-030-TRATA-ERRO-TAM) (80-040-TRATA-NAO-ACHOU) (80-050-TRATA-ERRO-TAM) (80-090-TRATA-ERRO-OUTROS

END-EXEC

Ignore Condition: EXEC CICS IGNORE CODITION END-EXEC Este comando determina que sejam ignoradas as condies especificadas e deixe o programa continuar. Condies tratadas num HANDLE CONDITION anterior sero resetadas. OPCAO01 . . . . . . . . . . . . . . . . . . . . OPCAO16

108336228.doc

48 de 206

Curso CICS Nvel Pleno

Mdulo 06

Citao

e antes do IGNORE CODITION, se houver erro, uma rotina especfica ser acionada, se informada, seno a rotina correspondente condio de ERROR ser acionada, se informada, programa prosseguir, podendo cancelar.

Citao

Procurar padronizar as PFs relativas a funes padro (sempre a mesma PF para a mesma funo), por exemplo, PF1=Help, PF3=Volta ao pgm.chamador, PF7/PF8=paginao, etc.

108336228.doc

49 de 206

Curso CICS Nvel Pleno

Mdulo 06
Exemplo:

..............
EXEC CICS IGNORE CODITION END-EXEC INVREQ ERROR

Ao executar um Comando o CICS, aps o HANDLE CONDITION e antes do IGNORE CODITION, se houver erro, uma Rotina especfica ser acionada, se especificada, seno 80-090-TRATA-ERRO-OUTROS ser acionada. Se a execuo ocorrer aps o IGNORE CODITION, se houver erro, exceto INVREQ, uma Rotina especfica ser acionada, se especificada, seno o programa prosseguir, podendo ocorrer cancelamento . Se, num determinado Comando quisermos desativar o teste de HANDLE CONDITION, usar a opo NOHANDLE, e testar o EIBRESP. Pode-se tambm usar a opo RESP, e testar o campo da Working-Storage.

DICA : Em alguns casos, quando a informao do


EIBRESP no for suficientemente esclarecedora, na exceo INVREQ, por exemplo, o CICS traz o campo EIBRESP2 para maiores detalhes.

108336228.doc

50 de 206

Curso CICS Nvel Pleno

Mdulo 06

6.2 - HANDLE AID / HANDLE ABEND : EXEC CICS HANDLE AID PF1 (LABEL-F01) ...................... PF12 (LABEL-F12) PA1 (LABEL-A01) ENTER (LABEL-ENT) CLEAR (LABEL-CLR) ANYKEY (LABEL-ANY) END-EXEC Usada para manuseio de teclas. A opo ANYKEY significa qualquer tecla exceto o ENTER. Se o RECEIVE tiver a opo RESP ou NOHANDLE, o HANDLE AID ser ignorado Para apenas se saber qual a Funo foi teclada, execute EXEC CICS RECEIVE END-EXEC tiver e ento teste o campo EIBAID (do book DFHAID). Se ocorrer simultaneamente uma condio prevista, no HANDLE CONDITION e uma outra codificada no HANDLE AID, esta ltima ter a preferncia.

Handle Abend: EXEC CICS HANDLE ABEND [PROGRAM (pgmname) / LABEL (Trata-Abend) / CANCEL / RESET] END-EXEC Para devolver o controle para o programa, quando deveria ocorrer um cancelamento.

108336228.doc

51 de 206

Curso CICS Nvel Pleno

Mdulo 06 Resumo
Foram descritos os comandos de tratamento de teclas com seus parmetros; foram exemplificados os mesmos; Foram tambm descritos os comandos de tratamento de excees com seus parmetros, e foram tambm exemplificados;

108336228.doc

52 de 206

Curso CICS Nvel Pleno

Mdulo 06 Glossrio
Cancelamento Ocorre quando, devido alguma irregularidade, interna ou externa ao programa, este no pode prosseguir at seu fim normal.

108336228.doc

53 de 206

Curso CICS Nvel Pleno

Mdulo 06 Bibliografia
CICS: programando usando Cobol / William G. Bruno Ed. Campus. CICS/VS Aplic. Progr. Ref. CICS/VS Aplic. Progr. Ref. (Macro) CICS/VS Operators Guide CICS Introduo Coleoar-GSO-Disop SC33 0077 - IBM SC33 0079 IBM SC33 0080 IBM - colodi@pr.gov.br

108336228.doc

54 de 206

Curso CICS Nvel Pleno

Mdulo 07 7. Depurao
PUSH HANDLE / POP HANDLE ABEND / DUMP BIF

7.1 - PUSH HANDLE / POP HANDLE: EXEC PUSH HANDLE END-EXEC Suspende todos os HANDLE / IGNORE.

EXEC POP HANDLE END-EXEC Reativa todos os HANDLE / IGNORE que foram suspensos.

7.2 - ABEND / DUMP: Abend: EXEC CICS ABEND ABENDCODED (XXXX) END-EXEC Gera um cancelamento com cdigo XXXX, com Dump.

Dump: EXEC CICS DUMP DUMPCODE (xxxx) [DUMPID(Area)] [FROM (Area) LENGTH (Tamanho da Area)] [COMPLETE] [TASK] [STORAGE] [PROGRAM] [TERMINAL] [TABLES] [SIT/TRT/PCT/PPT/TCT/PCT/DCT] END-EXEC Gera um Dump de memria com cdigo XXXX, da rea especificada. Condio de erro: LENGERR;

108336228.doc

55 de 206

Curso CICS Nvel Pleno

Mdulo 07

Citao

O comando BIF tambm deve ser usado s em teste; com ele ns podemos simular um trace do programa, e acompanhar detalhadamente os pargrafos por onde o fluxo passou, e o contedo dos campos bsicos para soluo do problema.

108336228.doc

56 de 206

Curso CICS Nvel Pleno

Mdulo 07
7.3 BIF: Bif: EXEC CICS BIF DEEDIT FIELD LENGTH (WS-CAMPO) (value) / (LENGTH OF WS-CAMPO)

END-EXEC Condio de erro: LENGERR;

ATENO: Dump, Abend e BIF, so usadas em


ambiente de Teste e, sendo removidas ou inibidas antes da implantao, no ambiente de Produo.

Exemplos: EXEC CICS BIF DEEDIT FIELD (WS-CONTG) LENGTH (9) END-EXEC Antes da execuo 14-6704/B $25.68 7654321Aps a execuo 00146704B 000002568 00765432J

O Bif Deedit faz o seguinte: Os caracteres alfabticos e os especiais so removidos, e os demais so convertidos em zeros; zeros esquerda so adicionados para completar o tamanho do campo; O sinal - acarretar que no ltimo byte seja forado D no meio-byte de zona. (Obs.: 1 XF1; 1- XD1 que a representao EBCDIC do caracter J)

108336228.doc

57 de 206

Curso CICS Nvel Pleno

Mdulo 07 Resumo
Foram abordados comandos de cancelamento e de trace de programa. Foram descritas as ferramentas de depurao de programa, tais como: Dump, Abend e BIF, as quais so usadas em ambiente de teste para ajudar a descobrir problemas que de outra formas seria dificultoso.

108336228.doc

58 de 206

Curso CICS Nvel Pleno

Mdulo 07 Glossrio
Dump Representao hexadecimal de uma rea

108336228.doc

59 de 206

Curso CICS Nvel Pleno

Mdulo 07 Bibliografia
CICS: programando usando Cobol / William G. Bruno Ed. Campus. CICS/VS Aplic. Progr. Ref. CICS/VS Aplic. Progr. Ref. (Macro) CICS/VS Operators Guide CICS Introduo Coleoar-GSO-Disop SC33 0077 - IBM SC33 0079 IBM SC33 0080 IBM - colodi@pr.gov.br

108336228.doc

60 de 206

Curso CICS Nvel Pleno

Mdulo 08 8. Envio de Texto RECEIVE SEND


8.1 - RECEIVE: EXEC CICS RECEIVE {INTO SET LENGTH [RESP (WS-REC-AREA) / (LK-REC-AREA-PTR)} (WS-REC-TAM) (WS-REC-RESP)]

END-EXEC -

INTO SET

- rea da WS para onde sero movidos os dados da TIOA. - Opcionalmente a rea receptora poder estar localizada na Linkage, usar a opo SET que referencia um Pointer (doubleword) onde deve estar o endereo da rea onde os dados sero recebidos.

LENGTH - Referencia um campo (word) da WS onde deve estar o tamanho da rea de dados. RESP - Referencia um campo (doubleword) da WS onde colocado o EIBRESP.

Exemplos: WORKING-STORAGE SECTION. 01 WS-AREAS. 05 WS-REC-TAM 05 WS-REC-RESP 05 WS-REC-MENS 01 WS-REC-AREA. 05 WS-TRAN 05 WS-SEPARATOR 05 WS-DADOS EXEC CICS RECEIVE INTO LENGTH RESP END-EXEC PIC S9(04) COMP VALUE +25. PIC S9(09) COMP. PIC X(50) VALUE SPACES. PIC X(04). PIC X(01). PIC X(20). (WS-REC-AREA) (WS-REC-TAM) (WS-REC-RESP)

108336228.doc

61 de 206

Curso CICS Nvel Pleno

Mdulo 08

Citao

Os dados entrados pelo operador num terminal est na TIOA. Para o programa de aplicao obt-los dever ser codificado um comando RECEIVE..

108336228.doc

62 de 206

Curso CICS Nvel Pleno

Mdulo 08
IF WS-REC-RESP EQUAL TO DFHRESP (LENGERR) MOVE MAIS DE 25 CARACTERES NA AREA DE DADOS TO WS-REC-MENS ... END-IF A forma acima simples e a mais usual. Os dados so manipulados na WS e o tratamento de erros no interfere na lgica estruturada do programa. -------------------------------------------------------------------------------------------------------J na forma abaixo, o campo tamanho no informado, porm aps o RECEIVE colocado nele o tamanho recebido (nunca dar LENGERR). Se ocorrer erro ocorrer um desvio e a prxima instruo no ser executada. WORKING-STORAGE SECTION. 01 WS-AREAS. 05 WS-REC-TAM LINKAGE SECTION. 01 LK-POINTERS. 05 FILLER 05 LK-REC-AREA-PTR 01 LK-REC-AREA. 05 LK-TRAN 05 FILLER 05 LK-DADOS PIC S9(09) COMP. PIC S9(09) COMP. PIC X(04). PIC X(01). PIC X(20). PIC S9(04) COMP.

EXEC CICS HANDLE CONDITION ERROR (80-20-REC-ERRO-FATAL) END-EXEC EXEC CICS SET END-EXEC ... 80-20-REC-ERRO-FATAL. MOVE ERRO IMPREVISTO OCORREU AO RECEBER OS DADOS TO WS-REC-MENS ...
108336228.doc 63 de 206

RECEIVE (LK-REC-AREA-PTR) (WS-REC-TAM) LENGTH

Curso CICS Nvel Pleno

Mdulo 08

Citao

O uso de RECEIVE / RECEIVE dados (texto) tem seu uso restringido, sendo normalmente substitudo pelo pela opo MAP (mapa gerado via BMS, SDF), na forma pseudoconversacional, como descreveremos detalhadamente mais adiante.

108336228.doc

64 de 206

Curso CICS Nvel Pleno

Mdulo 08
8.2 - SEND: EXEC CICS nnnn SEND CONTROL CURSOR (nnnn) END-EXEC

- Valor para, opcionalmente, posicionar o cursor antes de um SEND: 0000 1 coluna da 1 linha; 0080 1 coluna da 2 linha; ... 1840 1 coluna da 24 linha; SEND FROM LENGTH [CTLCHAR (WS-SEND-AREA) (WS-SEND-TAM) (WS-SEND-CTLR)] / [ERASE]

EXEC CICS

END-EXEC

FROM LENGTH CTLCHAR ERASE

- rea da WS de onde sero movidos os dados para a TIOA. - Referencia um campo (word) da WS onde deve estar o tamanho da rea de dados. - rea de 1 byte na WS, contendo o caracter de controle de gravao. - A tela ser limpa e o Cursor posicionado na 1 coluna da 1 linha.

Exemplos: WORKING-STORAGE SECTION. 01 WS-AREAS. 05 WS-SEND-TAM PIC S9(04) COMP VALUE +20. 01 WS-SEND-AREA. 05 WS-DADOS EXEC CICS END-EXEC [EXEC CICS ISSUE PRINT END-EXEC] SEND FROM LENGTH PIC X(20). (WS-SEND-AREA) (WS-SEND-TAM)

Os dados do terminal sero impressos numa printer que responda solicitao.

IMPORTANTE: A printer deve estar in


service, no atachada a outra task e pertencer ao mesmo CICS que a transao.

108336228.doc

65 de 206

Curso CICS Nvel Pleno

Mdulo 08

Citao

Se nenhum comando de controle for especificado, o dado que chega ao terminal ser colocado em qualquer posio, onde o cursor esteja posicionado.

108336228.doc

66 de 206

Curso CICS Nvel Pleno

Mdulo 08
IF WS-REC-RESP EQUAL TO DFHRESP (LENGERR) MOVE MAIS DE 25 CARACTERES NA AREA DE DADOS TO WS-REC-MENS ... IF A forma acima simples e a mais usual. Os dados so manipulados na WS e o tratamento de erros no interfere na lgica estruturada do programa. -------------------------------------------------------------------------------------------------------J na forma abaixo, o campo tamanho no informado, porm aps o RECEIVE colocado nele o tamanho recebido (nunca dar LENGERR). Se ocorrer erro ocorrer um desvio, e a prxima instruo no ser executada. WORKING-STORAGE SECTION. 01 WS-AREAS. 05 WS-REC-TAM LINKAGE SECTION. 01 LK-POINTERS. 05 FILLER 05 LK-REC-AREA-PTR 01 LK-REC-AREA. 05 LK-TRAN 05 FILLER 05 LK-DADOS PIC S9(09) COMP. PIC S9(09) COMP. PIC X(04). PIC X(01). PIC X(20). PIC S9(04) COMP.

END-

EXEC CICS HANDLE CONDITION ERROR (80-20-REC-ERRO-FATAL) END-EXEC EXEC CICS SET END-EXEC ... 80-20-REC-ERRO-FATAL. MOVE ERRO IMPREVISTO OCORREU AO RECEBER OS DADOS TO WS-REC-MENS ... RECEIVE (LK-REC-AREA-PTR) (WS-REC-TAM) LENGTH

108336228.doc

67 de 206

Curso CICS Nvel Pleno

Mdulo 08 Resumo
Foi apresentado como o programa de aplicao que recebe mensagens de texto do terminal do usurio, assim como o programa que, por sua vez, envia uma resposta ao terminal, ao qual est associado; tambm exemplificamos os casos abordados.

108336228.doc

68 de 206

Curso CICS Nvel Pleno

Mdulo 08 Glossrio
Word Halfword Uma palavra, ou 4 bytes, que em valor numrico binrio pode conter 9 dgitos. Meia palavra, ou 2 bytes, que em valor numrico binrio pode conter 4 dgitos.

Doubleword Dupla palavra, ou 8 bytes, que em valor numrico binrio pode conter 18 dgitos.

108336228.doc

69 de 206

Curso CICS Nvel Pleno

Mdulo 08 Bibliografia

CICS: programando usando Cobol / William G. Bruno Ed. Campus. CICS/VS Aplic. Progr. Ref. CICS/VS Aplic. Progr. Ref. (Macro) CICS/VS Operators Guide CICS Introduo Coleoar-GSO-Disop SC33 0077 - IBM SC33 0079 IBM SC33 0080 IBM - colodi@pr.gov.br

108336228.doc

70 de 206

Curso CICS Nvel Pleno

Mdulo 09 9. Usando BMS- 1

9.1 Definindo telas formatadas com o BMS (Basic Map Support) Muito poucas transaes usam telas no formatadas; a maioria usa tela formatada (Mapa), que consta de um conjunto de dados, onde cada dado precedido de um campo de controle de trs bytes. O BMS manipula e interpreta esse conjunto de dados formatados. Ele atua como interface entre o controle de terminais e o programa de aplicao. Ele tambm usado para definir como os dados aparecero na tela, por exemplo, os cabealhos, campos, ttulos dos campos, colunas de informaes, mensagens, etc. Os mapas de um programa devem ser gerados antes de o mesmo ser compilado. Exemplo de mapa:
1...5...10...15...20...25...30...35...40...45...50...55...60...65...70...75...8 0 01 02 #FABRICA DE PARAFUSOS 03 04 05 #CONTROLE DE ESTOQUE 06 07 #CENTRO DE CUSTO:# #NOME DO C/C:# # 08 09 #CODIGO DA PEA:# # 10 11 #QUANTIDADE:# # 12 13 #SOMAR OU SUBTRAIR:# # 14 15 Citao 16 17 18 Trs macros Assembler so usadas para definir os mapas: DFHMSD, DFHMDI e DFHMDF. 19 20 21 DFHMSD Define um MAPSET, ou seja, um conjunto de mapas (um ou mais), e suas caractersticas. 22 23 #CLEAR LIMPA TELA E SAI 24#MENS.:# DFHMDI #Define cada mapa de um MAPSET.

DFHMDF Define cada campo de um mapa.

O caracter # representa o atributo do campo (brilho, negrito, protegido, etc.).

OBSERVAO: Uma tela contm


24 linhas de 80 colunas cada.

108336228.doc

71 de 206

Curso CICS Nvel Pleno

Mdulo 09

Citao

A Macro DFHMSD define um MAPSET, ou seja, um conjunto de mapas (um ou mais), e suas caractersticas.

108336228.doc

72 de 206

Curso CICS Nvel Pleno

Mdulo 09

9.2 Macro DFHMSD DFHMSD Define um MAPSET, ou seja, um conjunto de mapas (um ou mais), e suas caractersticas. Msname DFHMSD TYPE=DSECT/MAP/FINAL ,TERM=3270 ,LANG=ASM/COBOL/PLI ,BASE=bname ,MODE=IN/OUT/INOUT ,CTRL=(PRINT,L40/L64/L80/HONEOM,FREEKB,ALARM,FRSET) ,DATA=FIELD/BLOCK ,TIOAPFX=YES/NO ,STORAGE=AUTO ,COLOR=DEFAULT/BLUE/RED/GREEN/TUQUOISE/YELLOW/ PINK/NEUTRAL ,EXTATT=NO/MAPONLY/YES ,HILIGHT=OFF/BLINK/REVERSE/UNDERLINE ,HTAB=mnemonic,OBFMT=YES/NO ,PS=BASE/psid ;SUFFIX=n ,VTAB=tab . . . . . ,VALIDN=((mustfill) (,mustenter)) Msname - Nome do MAPSET (1 a 7 caracteres); um caracter acrescentado como sufixo (tipo do terminal ou parmetro SUFFIX); esse nome deve estar na PPT. TYPE DSECT criar descrio simblica para o programa de aplicao; MAP especifica o mapa fsico usado na execuo; FINAL indica o fim do MAPSET. TERM Define o tipo de terminal associado com o MAPSET. LANG Especifica a linguagem, para a criao do book (DSECT). BASE Permite que uma rea de memria seja compartilhada por mais de um DATSET. MODE Indica se o mapa ser de entrada, sada ou ambos. CTRL Especifica o caracter de controle. DATA Especifica se os campos sero individuais ou em bloco. TIOAPFX Especifica que um prefixo de 12 bytes ser acrescentado. Obrigatrio Command Level. para

108336228.doc

73 de 206

Curso CICS Nvel Pleno

Mdulo 09

STORAGE Os mapas de um MAPSET compartilham a mesma rea de memria, se AUTO for especificado essas reas sero individuais. EXTATT Especifica se os atributos estendidos so suportados (COLOR, HILIGHT, PS, VALIDN). COLOR Especifica a cor padro. HILIGHT Especifica brilho. PS Indica se os smbolos de programa so utilizados. VALIDN Especifica se os campos devem ser completamente preenchidos. HTAB - Especifica as posies de tabulao horizontal. VTAB - Especifica as posies de tabulao vertical. LDC Especifica o mnemnico para o cdigo do equipamento. OBFMT - Especifica se a formatao limite de sada necessria. SUFFIX Indica o caracter a ser anexado no nome do MAPSET. Exemplo: P01AMS DFMSD TYPE=&DSECT, TERM=3270,TIOPFX=YES,LAN=COBOL, MODE=INOUT, CTRL=FREEKB, EXTATT=YES x x x x

O &DSECT indica que este parmetro simblico e ser substitudo em tempo de compilao; O MAPSET ser usado como entrada e sada; O parmetro CTRL indica que o teclado ser liberado;

108336228.doc

74 de 206

Curso CICS Nvel Pleno

Mdulo 09 Resumo
Foi descrito como se formata uma tela para o CICS, e a parametrizao da macro DFHMSD, que define um MAPASET, que por sua vez pode ser composto por um ou mais mapas.

108336228.doc

75 de 206

Curso CICS Nvel Pleno

Mdulo 09 Glossrio
Tela formatada Uma forma organizada da tela (80 colunas x 24 linhas), ou de uma parte da tela (janela nn colunas x mm linhas, com nn < 81, e mm < 25);

108336228.doc

76 de 206

Curso CICS Nvel Pleno

Mdulo 09 Bibliografia

CICS: programando usando Cobol / William G. Bruno Ed. Campus. CICS/VS Aplic. Progr. Ref. CICS/VS Aplic. Progr. Ref. (Macro) CICS/VS Operators Guide CICS Introduo Coleoar-GSO-Disop SC33 0077 - IBM SC33 0079 IBM SC33 0080 IBM - colodi@pr.gov.br

108336228.doc

77 de 206

Curso CICS Nvel Pleno

Mdulo 10 10. Usando BMS- 2

10.1 Macro DFHMDI DFHMDI Define cada mapa de um MAPSET. Mpname DFHMDI SIZE=(linha,coluna) ,LINE=numero/NEXT/SAME ,COLUMN=numero/NEXT/SAME ,JUSTIFY=(LEFT,FIRST)/(RIGHT,LAST) ,HEADER=YES ,TRAILER=YES ,CTRL=(PRINT,L40/L64/L80/HONEOM,FREEKB,ALARM,FRSET) ,DATA=FIELD/BLOCK ,TIOAPFX=YES/NO ,STORAGE=AUTO ,COLOR=DEFAULT/BLUE/RED/GREEN/TUQUOISE/YELLOW/ PINK/NEUTRAL ,HILIGHT=OFF/BLINK/REVERSE/UNDERLINE ,OBFTM=YES/NO ,PS=BASE/psid ,SUFFIX=n ,VALIDN=((mustfill) (,mustenter)) Mpname - Nome do MAPSET (1 a 7 caracteres); um caracter acrescentado como sufixo (tipo do terminal ou parmetro SUFFIX); esse nome deve estar na PPT; SIZE Especifica as dimenses do mapa; LINE Especifica a linha onde ser colocado o mapa; COLUMN Especifica a coluna onde ser colocado o mapa; JUSTIFY Indica se a margem ser direita ou esquerda da coluna. FIRST especifica uma nova pgina; LAST especifica o fim da pgina. HEADER O mapa aparecer no topo se a condio de overflow ocorrer; TRAILER O mapa aparecer no fim se a condio de overflow ocorrer; Outros parmetros, idem DFHMSD.

DICA: Existem softwares que auxiliam na criao de


mapas, por exemplo, o SDF (Screen Definition Facility).

108336228.doc

78 de 206

Curso CICS Nvel Pleno

Mdulo 10

Citao

DFHMDF Define cada campo de um mapa, com suas caractersticas.

108336228.doc

79 de 206

Curso CICS Nvel Pleno

Mdulo 10
10.2 Macro DFHMDF DFHMDF Define cada campo de um mapa Fieldname DFHMDF POS=number,(linha,coluna) ,ATTRB=(ASKIP,NUM,BRT,DET,IC,FSET) PROT DRK UNPROT NORM ,LENGTH=numero ,JUSTIFY=(LEFT,BLANK)/(RIGHT,ZERO) ,INITIAL= / XINIT= ,GRPNAME=user group name ,OCCURS=number ,PICIN=value ,PICOUT=value ,COLOR=DEFAULT/BLUE/RED/GREEN/TUQUOISE/YELLOW/ PINK/NEUTRAL ,HILIGHT=OFF/BLINK/REVERSE/UNDERLINE ,OBFTM=YES/NO ,PS=BASE/psid ,SUFFIX=n ,VALIDN=((mustfill) (,mustenter))

Fieldname Opcional; nome do campo (1 a 7 caracteres); s necessrio se for referenciado no programa de aplicao; POS Indica a posio do byte de atributo; ATTRB Especifica as caractersticas do atributo; LENGTH Especifica o tamanho do campo (fora o byte de atributo); JUSTIFY para campos numricos o padro alinhar direita com zeros esquerda; para no numricos o alinhamento esquerda com brancos direita; GRPNAME Especifica um nome para grupos contguos; OCCURS Especifica o nmero de vezes que o campo se repetir; PICIN Especifica a PICTURE de entrada associada ao campo; PICOUT Especifica a PICTURE de sada associada ao campo; Outros parmetros, idem DFHMSD.

108336228.doc

80 de 206

Curso CICS Nvel Pleno

Mdulo 10 Resumo
Foi descrito como se formata uma tela para o CICS, e a parametrizao das macros: DFHMDI e DFHMDF, que definem respectivamente, um mapa e os campos de um mapa.

108336228.doc

81 de 206

Curso CICS Nvel Pleno

Mdulo 10 Glossrio
SDF Screen Definition Facility, Produto da IBM, que facilita a criao de mapas, atravs de menus pr-definidos, que possibilitam a gerao de books e de programas objetos de mapas;

108336228.doc

82 de 206

Curso CICS Nvel Pleno

Mdulo 10 Bibliografia

CICS: programando usando Cobol / William G. Bruno Ed. Campus. CICS/VS Aplic. Progr. Ref. CICS/VS Aplic. Progr. Ref. (Macro) CICS/VS Operators Guide CICS Introduo Coleoar-GSO-Disop SC33 0077 - IBM SC33 0079 IBM SC33 0080 IBM - colodi@pr.gov.br

108336228.doc

83 de 206

Curso CICS Nvel Pleno

Mdulo 11 11. Conceitos de VSAM


DEFINIO DE ARQUIVOS VSAM; OPERAES PERMITIDAS; INTEGRIDADE DOS ARQUIVOS. 11.1 Definio de Arquivos VSAM Os arquivos so criados via IDCAMS (usando um Job Batch), tipo ESDS ou RSDS; esses arquivos devem ser definidos para o CICS na FCT, onde so informadas as caractersticas do arquivo, inclusive os tipos de operao que podero ser realizadas. Os arquivos no sero abertos pelo programa de aplicao. Normalmente so abertos pelo CICS, quando um acesso for solicitado; podero ser abertos ou fechados pelo operador, por exemplo, para inibir atualizaes on-line enquanto o arquivo estiver sendo atualizado via processamento batch. Dentro do programa ser definido, na WS, o lay-out do registro e o campo chave (RIDFLD).

11.2 Operaes Permitidas: So as seguintes as operaes permitidas, dependendo da organizao do arquivo:

11.2.1 ESDS (Entry Sequenced Data Set) Leitura direta atravs do RBA (Relative Byte Address), contido numa Word, (definida como PIC S9(08) COMP); Leitura sequencial; Gravao sempre aps o ltimo registro existente (a incluso sequencial); Atualizao de registros, exceto a chave, sem alterao de seu tamanho; No permitida a Excluso; os registros so marcados como excludos, por exemplo atualizando o campo Data de Excluso, e periodicamente uma rotina batch far a limpeza fsica, selecionando apenas os registros ativos e recriando o arquivo.

108336228.doc

84 de 206

Curso CICS Nvel Pleno

Mdulo 11

Citao

Daremos aqui uma breve explanao acerca das caractersticas dos arquivos VSAM; no entraremos nos detalhes que fazem parte de um Curso especfico de VSAM, mas s nos deteremos nos pontos essenciais para o entendimento de como o CICS manipula os arquivos VSAM.

108336228.doc

85 de 206

Curso CICS Nvel Pleno

Mdulo 11
11.2.2 RRDS (Relative Record Data Set)

Leitura direta atravs do RRN (Relative Record Number), contido numa Word, (definida como PIC S9(08) COMP); Leitura sequencial; Gravao de registro no seu respectivo slot (seu local fsico calculado por um algoritmo); Atualizao de registros, exceto a chave; Excluso de registros;

11.2.3 KSDS (Key Sequenced Data Set)

Leitura direta atravs da chave do registro, ou atravs de um pedao da chave, limitada pelo campo KEYLENGTH; Leitura sequencial; Gravao de registro; Atualizao de registros, exceto a chave; Excluso de registros;

o tipo mais utilizado no CICS.

DICA: Em alguns casos, quando a informao


do EIBRESP no for suficientemente esclarecedora, na exceo INVREQ, por exemplo, o CICS traz o campo EIBRESP2 para maiores detalhes.

108336228.doc

86 de 206

Curso CICS Nvel Pleno

Mdulo 11

Citao

Segurana um item essencial quando ns manipulamos nossas bases de informao; daremos ento uma viso de como o CICS atua quanto integridade dos arquivos VSAM, sendo atualizados sob sua custdia;

108336228.doc

87 de 206

Curso CICS Nvel Pleno

Mdulo 11

11.3 INTEGRIDADE DOS ARQUIVOS O sistema de arquivos deve ser protegido tanto para o caso de interrupes excepcionais, como para a hiptese de dois ou mais usurios tentarem atualizar o mesmo arquivo ao mesmo tempo. Existem dois tipos de proteo:

Controle exclusivo do VSAM: Quando uma task est atualizando um registro, o CI (Control Interval) que contem o registro sendo atualizado fica preso para essa task at a atualizao se consumar; essa proteo funciona de forma automtica. Controle exclusivo do CICS: O CICS trabalha com um conceito denominado LUW (Logical Unit of Work); uma LUW criada quando uma task demonstra a inteno de atualizar um arquivo definido para o CICS como recupervel (por exemplo, um READ com UPDATE); Quando o VSAM libera o CI, o CICS continua prendendo o registro at o fim da LUW, para os arquivos recuperveis. Essa LUW permanece in-flight (aberta) at o final da task ou at ocorrer um comando SYNCPOINT, quando ocorre a efetivao de todas as atualizaes (Commit); Se ocorrer alguma interrupo antes do trmino da LUW, o CICS far uma recuperao de todos os arquivos recuperveis que foram atualizados (Backout).

108336228.doc

88 de 206

Curso CICS Nvel Pleno

Mdulo 11 Resumo
Foram apresentados os conceitos de arquivos VSAM; Em seguida foram mostradas as operaes permitidas para arquivos VSAM (ESDS, RSDS e KSDS); Por fim foi descrito como O CICS com VSAM se portam para que seus arquivos possam ter integridade de dados.

108336228.doc

89 de 206

Curso CICS Nvel Pleno

Mdulo 11 Glossrio
IDCAMS Programa que possibilita criar, deletar, recriar, listar e outras funes que se refiram a arquivos VSAM;

108336228.doc

90 de 206

Curso CICS Nvel Pleno

Mdulo 11 Bibliografia
CICS: programando usando Cobol / William G. Bruno Ed. Campus. CICS/VS Aplic. Progr. Ref. CICS/VS Aplic. Progr. Ref. (Macro) CICS/VS Operators Guide CICS Introduo Coleoar-GSO-Disop SC33 0077 - IBM SC33 0079 IBM SC33 0080 IBM - colodi@pr.gov.br

108336228.doc

91 de 206

Curso CICS Nvel Pleno

Mdulo 12 12. VSAM- Acesso direto- 1


READ WRITE

12.1 - READ: EXEC CICS READ FILE INTO LENGTH RIDFLD [ GTEQ / EQUAL ] [ UPDATE ] (WS-ARQ-NAME) (WS-ARQ-AREA) (WS-ARQ-TAM) (WS-ARQ-CHAVE) END-

EXEC Condies de erro: FILENOTFND, INVREQ, LENGERR, NOTFND, DUPKEY, ILLOGIC UPDATE Parmetro obrigatrio se for atualizar o arquivo; o registro ficar preso at ser emitido um comando REWRITE, UNLOCK, ou at que a transao termine; LENGERR - S ocorre se o tamanho do registro lido for maior que o tamanho especificado; ILLOGIC INVREQ Exemplo:
WORKING STORAGE SETION. 01 WS-COMMAREA. 05 WS-ARQNAME 05 WS-ARQ-AREA 05 WS-ARQ-TAM 05 WS-ARQ-CHAVE

- Ocorre quando h um erro no previsto nas opes possveis de um arquivo VSAM; - Ocorre quando se tenta dar um REWRITE sem um prvio READ com UPDATE;

PIC PIC PIC PIC

X(08) X(100). S9(04) X(05).

VALUE ARQ01A. VALUE +100.

MOVE

ABCDE TO

WS-ARQ-CHAVE (WS-ARQ-NAME) (WS-ARQ-AREA) (WS-ARQ-TAM) (WS-ARQ-CHAVE)

EXEC CICS READ

FILE INTO LENGTH RIDFLD

END-EXEC
108336228.doc 92 de 206

Curso CICS Nvel Pleno

Mdulo 12

Citao

Para gravao de registros em arquivo VSAM Basta formatar a rea da WS e emitir o comando WRITE.

108336228.doc

93 de 206

Curso CICS Nvel Pleno

Mdulo 12
12.2 - WRITE: EXEC CICS WRITE FILE FROM LENGTH RIDFLD (WS-ARQ-NAME) (WS-ARQ-AREA) (WS-ARQ-TAM) (WS-ARQ-CHAVE)

END-EXEC Condies de erro: FILENOTFND, DUPREC, INVREQ, IOERR, LENGERR, NOTOPEN, NOSPACE, ILLOGIC; LENGERR - S ocorre se o tamanho do registro lido for maior que o tamanho especificado; ILLOGIC INVREQ - Ocorre quando h um erro no previsto nas opes possveis de um arquivo VSAM; - Ocorre quando tenta-se dar um REWRITE sem um prvio READ com UPDATE;

Exemplo:
WORKING STORAGE SETION. 01 WS-COMMAREA. 05 WS-ARQNAME 05 WS-ARQ-AREA 05 WS-ARQ-TAM 05 WS-ARQ-CHAVE

PIC PIC PIC PIC

X(08) X(100). S9(04) X(05).

VALUE ARQ01A. VALUE +100.

MOVE MOVE

ABCDX TO .. TO

WS-ARQ-CHAVE WS-ARQ-AREA (WS-ARQ-NAME) (WS-ARQ-AREA) (WS-ARQ-TAM) (WS-ARQ-CHAVE)

EXEC CICS WRITE

FILE FROM LENGTH RIDFLD

END-EXEC

108336228.doc

94 de 206

Curso CICS Nvel Pleno

OBSERVAO: Os registros gravados via comando


WRITE, podero ser lidos tanto por READ direto, como por Browse.

108336228.doc

95 de 206

Curso CICS Nvel Pleno

Mdulo 12 Resumo
Foi mostrada como se consegue ler registros em arquivos VSAM (READ) e tambm foi descrita a operao de gravao de registros em arquivos VSAM (WRITE).

108336228.doc

96 de 206

Curso CICS Nvel Pleno

Mdulo 12 Bibliografia
CICS: programando usando Cobol / William G. Bruno Ed. Campus. CICS/VS Aplic. Progr. Ref. CICS/VS Aplic. Progr. Ref. (Macro) CICS/VS Operators Guide CICS Introduo Coleoar-GSO-Disop SC33 0077 - IBM SC33 0079 IBM SC33 0080 IBM - colodi@pr.gov.br

108336228.doc

97 de 206

Curso CICS Nvel Pleno

Mdulo 13 13. VSAM- Acesso direto- 2


REWRITE DELETE UNLOCK 13.1 - REWRITE: EXEC CICS REWRITE FILE FROM LENGTH RIDFLD (WS-ARQ-NAME) (WS-ARQ-AREA) (WS-ARQ-TAM) (WS-ARQ-CHAVE)

END-EXEC Condies de erro: LENGERR - S ocorre se o tamanho do registro lido for maior que o tamanho especificado; ILLOGIC INVREQ Exemplo:
WORKING STORAGE SETION. 01 WS-COMMAREA. 05 WS-ARQNAME 05 WS-ARQ-AREA 05 WS-ARQ-TAM 05 WS-ARQ-CHAVE

- Ocorre quando h um erro no previsto nas opes possveis de um arquivo VSAM; - Ocorre quando tenta-se dar um REWRITE sem um prvio READ com UPDATE;

PIC PIC PIC PIC

X(08) X(100). S9(04) X(05).

VALUE ARQ01A. VALUE +100.

MOVE

..

TO

WS-ARQ-AREA FILE FROM LENGTH RIDFLD (WS-ARQ-NAME) (WS-ARQ-AREA) (WS-ARQ-TAM) (WS-ARQ-CHAVE)

EXEC CICS REWRITE

END-EXEC

108336228.doc

98 de 206

Curso CICS Nvel Pleno

OBSERVAO: Os registros regravados no


podero ter a sua chave (RIDFLD) modificada.

Mdulo 13

Citao

Quando se prende um registro para posterior atualizao, (READ com opo UPDATE), se por algum motivo desistirmos de atualizar o mesmo (REWRITE), o registro deve ser liberado (UNLOCK), para que outras transaes possam acess-lo.

108336228.doc

99 de 206

Curso CICS Nvel Pleno

Mdulo 13
13.2 - DELETE: EXEC CICS DELETE EXEC Condies de erro: FILENOTFND, INVREQ, IOERR, NOTFND, NOTOPEN
-

FILE RIDFLD [ KEYLENGTH

(WS-ARQ-NAME) (WS-ARQ-CHAVE) (WS-CHAVE-TAM) ]

END-

NOTFND - Se ocorrer uma condio de erro e a mesma no estiver prevista no programa, este cancelar. Se quisermos tratar essa condio , por exemplo o NOTFND, deveremos colocar em algum ponto antes do DELETE ou do READ: EXEC CICS HANDLE CONDITION NOTFND (80-01-NOTFND) ERROR (80-02-ERROR) END-EXEC ERROR - No pargrafo 80-01-NOTFND ser tratado a condio de no encontrar o registro para a chave especificada; o pargrafo 80-02ERROR ser acionado se ocorrer qualquer outro tipo de erro.

13.3 - UNLOCK:
EXEC CICS UNLOCK EXEC FILE (WS-ARQ-NAME) END-

Condies de erro: FILENOTFND, IOERR, NOTOPEN, ILLOGIC;

Exemplo:
WORKING STORAGE SETION. 01 WS-COMMAREA. 05 WS-ARQNAME 05 WS-ARQ-CHAVE

PIC X(08) PIC X(05).

VALUE ARQ01A.

EXEC CICS DELETE END-EXEC

FILE RIDFLD

(WS-ARQ-NAME) (WS-ARQ-CHAVE)]

108336228.doc

100 de 206

Curso CICS Nvel Pleno

Mdulo 13 Resumo
Foi descrito como se atualiza um arquivo VSAM (REWRITE) e explicados seus respectivos parmetros; Foi tambm explicada a operao de deleo de registros; Por ltimo foi apresentado o comando UNLOCK, para liberar um registro preso para atualizao, que no foi efetivada.

108336228.doc

101 de 206

Curso CICS Nvel Pleno

Mdulo 13 Glossrio
NOTFND Condio de no encontrar um registro, para a chave especificada, o mesmo que NOT FOUND, ou seja, no encontrado.

108336228.doc

102 de 206

Curso CICS Nvel Pleno

Mdulo 13 Bibliografia
CICS: programando usando Cobol / William G. Bruno Ed. Campus. CICS/VS Aplic. Progr. Ref. CICS/VS Aplic. Progr. Ref. (Macro) CICS/VS Operators Guide CICS Introduo Coleoar-GSO-Disop SC33 0077 - IBM SC33 0079 IBM SC33 0080 IBM - colodi@pr.gov.br

108336228.doc

103 de 206

Curso CICS Nvel Pleno

Mdulo 14 14. VSAM Browse- 1 . StartBr


. ReadNext . EndBr Os arquivos VSAM do CICS so de acesso direto. Apesar disso podemos acess-los de modo sequencial, com os comandos que veremos a seguir.

14.1 StartBr: Far com que o FCP solicite ao VSAM que encontre um registro no arquivo cuja chave seja igual ou maior que a especificada em RIDFLD. Se a mesma for encontrada o CICS informa o FCP que por sua vez informa o programa de aplicao; se nenhum registro for encontrado, que satisfaa condio, a opo NOTFND ser acionada. Para recuperarmos os registros, a partir dessa chave, usaremos o comando ReadNext ou ReadPrev. EXEC CICS STARTBR FILE (arquivo) RIDFLD (WS-BR-CHAVE) [ RBA/RRN ] [ KEYLENGHT (WS-BR-TAM-CH) ] [ GENERIC ] [ GTEQ / EQUAL ] [ REQID (valor) ] [ RESP (WS-BR-RESP) ]

END-

EXEC - FILE - RIDFLD KEYLENGTH GENERIC Nome do arquivo; Argumento onde foi montada a chave (total ou genrica); Tamanho da chave genrica (se GENERIC especificado); Especifica que a chave de pesquisa genrica (s os primeiros bytes (conforme o tamanho especificado em KEYLENGTH) sero testados; - So mutuamente exclusivos; EQUAL- S satisfaz a pesquisa se a chave for igual ao argumento; GTEQ - satisfaz a pesquisa se a chave for igual ou maior; - Usada quando se faz browse mltiplo (para mais de um arquivo simultaneamente); - Se quisermos testar o retorno (EIBRESP);
104 de 206

GTEQ/EQUAL

108336228.doc

REQID RESP

Curso CICS Nvel Pleno

Mdulo 14

Citao

O Browse muito eficiente pois reduz as operaes de I/O ao mnimo, Um ReadNext gera apenas uma operao de I/O para cada bloco de CI (Control Interval).

108336228.doc

105 de 206

Curso CICS Nvel Pleno

Mdulo 14
14.2 ReadNext: EXEC CICS READNEXT FILE (arquivo) INTO (WS-BR-AREA) / SET (LK-PTR-BR-AREA) [ LENGHT (WS-BR-TAM-AREA) ] RIDFLD (WS-BR-CHAVE) [ RBA/RRN ] [ KEYLENGTH (WS-BR-TAM-CH) ] REQID (valor) [ RESP (WS-BR-RESP) ] Nome do arquivo;

END-

EXEC FILE

INTO / SET rea WS / Pointer da rea Linkage, onde ser colocado o registro; LENGTH registro; RIDFLD Campo da WS onde colocado o tamanho do Campo que representa a chave do arquivo;

KEYLENGTH Tamanho da chave; REQID- Usada quando se faz browse mltiplo (para mais de um arquivo simultaneamente); RESP - Se quisermos testar o retorno (EIBRESP); Podemos utilizar o processamento Skip Sequential do VSAM, para dar um salto na pesquisa, pulando para uma chave mais para frente, movendo um valor de chave mais alto para a RIDFLD.

14.3 EndBr: Quando tivermos obtido todos os registros que nos convm, emitiremos un EndBr; EXEC CICS ENDBR EXEC FILE FILE (arquivo) END-

Nome do arquivo;

IMPORTANTE:

Este comando liberar tanto a memria associada a esta pesquisa, como a rea utilizada pelo VSAM;

108336228.doc

106 de 206

Curso CICS Nvel Pleno

Mdulo 14

Citao

Vamos a seguir exemplificar o uso dos comandos StartBr, ReadNext e EndBr;

108336228.doc

107 de 206

Curso CICS Nvel Pleno

Mdulo 14

Exemplo:
WORKING STORAGE SETION. 01 WS-DADOS-CICS. 05 WS-BR-CHAVE 05 WS-BR-RESP 05 WS-BR-AREA

PIC X(05) PIC X(01) PIC X(50)

VALUE SPACES. VALUE LOW-VALUE. VALUE SPACES.

PROCEDURE DIVISION. MOVE 00005

TO

WS-BR-CHAVE (ARQ001) (WS-BR-CHAVE) (WS-BR-RESP)

EXEC CICS STARTBR FILE RIDFLD RESP END-EXEC IF

WS-BR-RESP EQUAL DFHRESP(NORMAL) PERFORM UNTIL WS-BR-RESP EQUAL DFHRESP(ENDFILE) EXEC CICS READNEXT FILE (ARQ001) INTO (WS-BR-AREA) RIDFLD (WS-BR-CHAVE) RESP (WS-BR-RESP) END-EXEC END-PERFORM EXEC CICS ENDBR FILE (ARQ001) END-EXEC ...

ELSE

108336228.doc

108 de 206

Curso CICS Nvel Pleno

Mdulo 14 Resumo
Foram apresentados os comandos StartBr, ReadNext e EndBr, sendo explicados todos os seus parmetros; Por fim foram exemplificados os comandos acima citados;

108336228.doc

109 de 206

Curso CICS Nvel Pleno

Mdulo 14 Glossrio
Argumento Chave pela qual um arquivo est ordenado, e pela qual o mesmo pode ser pesquisado; Control Interval Bloco onde os registros VSAM ficam agrupados;

108336228.doc

110 de 206

Curso CICS Nvel Pleno

Mdulo 14 Bibliografia
CICS: programando usando Cobol / William G. Bruno Ed. Campus. CICS/VS Aplic. Progr. Ref. CICS/VS Aplic. Progr. Ref. (Macro) CICS/VS Operators Guide CICS Introduo Coleoar-GSO-Disop SC33 0077 - IBM SC33 0079 IBM SC33 0080 IBM - colodi@pr.gov.br

108336228.doc

111 de 206

Curso CICS Nvel Pleno

Mdulo 15 15. VSAM Browse- 2


- ReadPrev - ResetBr - Condies de Erro

15.1 ReadPrev: Semelhante ao READNEXT, s que acessar o registro anterior (ordem descendente); EXEC CICS READPREV FILE (arquivo) INTO (WS-BR-AREA) / SET (LK-PTR-BR-AREA) [ LENGHT (WS-BR-TAM-AREA) ] RIDFLD (WS-BR-CHAVE) [ RBA/RRN ] [ KEYLENGTH (WS-BR-TAM-CH) ] REQID (valor) [ RESP (WS-BR-RESP) ] Nome do arquivo;

END-

EXEC -

FILE

INTO / SET rea WS / Pointer da rea Linkage, onde ser colocado o registro; LENGTH registro; RIDFLD Campo da WS onde colocado o tamanho do Campo que representa a chave do arquivo;

KEYLENGTH Tamanho da chave; REQID- Usada quando se faz browse mltiplo (para mais de um arquivo simultaneamente); RESP - Se quisermos testar o retorno (EIBRESP); - A condio de ENDFILE ocorrer aps a leitura do primeiro registro;

108336228.doc

112 de 206

Curso CICS Nvel Pleno

DICA: possvel mesclar Readprev com


Readnext.

108336228.doc

113 de 206

Curso CICS Nvel Pleno

Mdulo 15

Citao

Quando necessitarmos dar um salto na leitura (para frente ou para trs), ou inverter a direo da leitura, usaremos o comando ResetBr;.

108336228.doc

114 de 206

Curso CICS Nvel Pleno

Mdulo 15
15.2 ResetBr: EXEC CICS RESETBR FILE (arquivo) [ RIDFLD (WS-BR-CHAVE) ] [ RBA/RRN ] [ KEYLENGHT (WS-BR-TAM-CH) ] [ GENERIC ] [ GTEQ / EQUAL ] [ REQID (valor) ] [ RESP (WS-BR-RESP) ] END-EXEC

- FILE - RIDFLD KEYLENGTH

Nome do arquivo; Argumento onde foi montada a chave (total ou genrica); Tamanho da chave genrica (se GENERIC especificado); Etc. Demais campos semelhantes ao StartBr;

15.3 Condies de Erro: - FILENOTFND o Nome do arquivo no est na FCT;


-

DUPKEY

Indica, para ndices alternados VSAM, que existem mais registros com a mesma chave; esses registros podero ser obtidos por browse; Indica que existe registro no arquivo, com a mesma chave; Indica final (ReadNext) ou incio (ReadPrev) de arquivo; Erro VSAM no determinado pelo CICS; verificar Eibrcode: 1 byte=cod.retorno 2 byte=cod.erro, ambos em binrio; Operao no especificada na FCT, para o referido arquivo; Indica que ocorreu erro de operao de I/O; rea de entrada (READ.) insuficiente para receber o registro; No h espao suficiente para receber o registro; Registro no encontrado para a chave especificada;

- DUPREC - ENDFILE - ILLOGIC - INVREQ - IOERR - LENGERR - NOSPACE - NOTFND

108336228.doc

115 de 206

Curso CICS Nvel Pleno

Mdulo 15 Resumo
Foram descritos os comandos ReadPrev e ResetBr, assim como seus parmetros; Foram descritos os cdigos de retorno para as operaes de browsing.

108336228.doc

116 de 206

Curso CICS Nvel Pleno

Mdulo 15 Glossrio
Browse Leitura seqencial de arquivo VSAM, a partir de uma chave determinada;

108336228.doc

117 de 206

Curso CICS Nvel Pleno

Mdulo 15 Bibliografia

CICS: programando usando Cobol / William G. Bruno Ed. Campus. CICS/VS Aplic. Progr. Ref. CICS/VS Aplic. Progr. Ref. (Macro) CICS/VS Operators Guide CICS Introduo Coleoar-GSO-Disop SC33 0077 - IBM SC33 0079 IBM SC33 0080 IBM - colodi@pr.gov.br

108336228.doc

118 de 206

Curso CICS Nvel Pleno

Mdulo 16 16. Comandos de Navegao


Link Return Xctl Nvel Lgico 16.1 Link: EXEC CICS LINK PROGRAM (WS-PROG-NAME) [ COMMAREA(WS-COMMAREA) ] [ LENGTH (WS-COMM-TAM) ]

END-EXEC

Condio de Erro: PGMIDERR O programa chamado dever testar o campo EIBCALEN; se o mesmo for diferente de zero, quer dizer que o programa est recebendo informaes do programa chamador. Neste caso os parmetros COMMAREA e LENGTH devem ser especificados. A rea de dados (COMMAREA) deve ser definida na WS do programa chamador e na Linkage do programa chamado. Os dos programas so executados sob a mesma task, porm ambos devem estar definidos na PPT. Ao terminar o programa chamado (RETURN) o controle volta ao programa chamador, na instruo seguinte ao LINK, e este receber de volta a rea de dados, Citao modificada ou no. 16.2 Return EXEC CICS RETURN EXEC END-

Uma task pode consistir de um ou mais programas; Mdulo IMPORTANTE: O RETURN sem nenhum quando um programa chamado por outro (LINK ou XCTL), eles passam a fazer parteparmetro encerra o programa, da mesma task (tarefa).

16

passando o controle para o nvel lgico superior.

108336228.doc

119 de 206

Curso CICS Nvel Pleno

Mdulo 16
16.3 Xctl : Valem as mesmas regras do LINK, exceto: ao terminar o programa chamado (RETURN) o controle no volta ao programa chamador, mas para o programa de nvel lgico superior (que passou o controle atravs de LINK) ou para o CICS.

EXEC CICS XCTL PROGRAM (WS-PROG-NAME) [ COMMAREA(WS-COMMAREA) ] [ LENGTH (WS-COMM-TAM) ]

END-EXEC

Condio de Erro: PGMIDERR Como o programa chamador no torna a receber o controle, suas reas so liberadas e no ser necessrio o comando RETURN no fim do programa. Quando o campo WS-PROG-NAME for definido na WS, em 8 bytes, ao qual atribudo o nome do programa a ser chamado, dizemos que essa chamada dinmica; o contrrio ocorre quando o nome do programa for informado na prpria instruo, entre apstrofes; Exemplo1 (Dinmico!):
WORKING STORAGE SETION. 77 WS-PROG-NAME 01 WS-COMMAREA. 05 WS-DADOS PIC X(08) PIC X(100). VALUE PROG01A.

EXEC CICS XCTL PROGRAM COMMAREA LENGTH END-EXEC Exemplo2 (Esttico?):


WORKING STORAGE SETION. 01 WS-COMMAREA. 05 WS-DADOS

(WS-PROG-NAME) (WS-COMMAREA) (LENGHT OF WS-COMMAREA)

PIC X(100).

EXEC CICS XCTL PROGRAM COMMAREA LENGTH EXEC

(PROG01A) (WS-COMMAREA) (100)

END-

108336228.doc

120 de 206

Curso CICS Nvel Pleno

Mdulo 16

Citao

Uma task pode ter diversos nveis lgicos, mas um nico programa pode estar ativo, num mesmo nvel, num determinado momento.

108336228.doc

121 de 206

Curso CICS Nvel Pleno

Mdulo 16

16.4 Nvel lgico de navegao do CICS Exemplo: C S IC

108336228.doc

122 de 206

Curso CICS Nvel Pleno

Mdulo 16 Resumo
Foi mostrado como se passa o controle para um outro programa, para tornar a receber o controle na instruo seguinte (LINK), passando dados, ou no; Foi dado um exemplo demonstrando como funcionam os esquemas de nvel lgico, que determina os pontos de retorno dos programas chamados; Por fim, foi mostrado como se passa o controle para um outro programa, para no tornar a receber o controle (XCTL) e foi tambm exemplificado.

108336228.doc

123 de 206

Curso CICS Nvel Pleno

Mdulo 16 Glossrio
Nvel lgico Esquema hierrquico que determina os pontos de retorno, quando usamos a navegao, no CICS. Navegao Passagem de controle de um programa a outro.

108336228.doc

124 de 206

Curso CICS Nvel Pleno

Mdulo 16 Bibliografia

CICS: programando usando Cobol / William G. Bruno Ed. Campus. CICS/VS Aplic. Progr. Ref. CICS/VS Aplic. Progr. Ref. (Macro) CICS/VS Operators Guide CICS Introduo Coleoar-GSO-Disop SC33 0077 - IBM SC33 0079 IBM SC33 0080 IBM - colodi@pr.gov.br

108336228.doc

125 de 206

Curso CICS Nvel Pleno

Mdulo 17 17. Controle de programa- 1


17.1 Tabelas em Assembler: Exemplo: Tabela de Estados DC DC DC DC DC DC DC DC CL17BAHIA CL17ESESPIRITO SANTO CL17MGMINAS GERAIS CL17PRPARANA CL17RJRIO DE JANEIRO CL17RSRIO GRANDE DO SUL CL17SCSANTA CATARINA CL17SPSAO PAULO

Trata-se se um programa Assembler composto apenas de constantes. Esta tabela ser compilada, linkeditada e cadastrada na PPT do CICS. Em vez de definir essa tabela na WS (fixa), ou base de dados tradicional, podemos fazer sua a definio do seu layout na LINKAGE, e carreg-la em memria quando quisermos consult-la. Com essa tcnica podemos ter inmeras tasks no CICS consultando uma nica tabela, atravs da LINKAGE, possibilitando economia de memria.

ATENO: Se o programa j
estiver na memria o LOAD usa essa cpia, caso contrrio carrega-o da biblioteca onde reside.

108336228.doc

126 de 206

Curso CICS Nvel Pleno

Mdulo 17

Citao

Com o comando LOAD possvel carregar em memria uma tabela, um mapa, ou outro programa, que podem ser acessados simultaneamente por diversas tasks.

108336228.doc

127 de 206

Curso CICS Nvel Pleno

Mdulo 17

17.2 LOAD: EXEC CICS LOAD PROGRAM [ SET [ LENGTH [ ENTRY [ HOLD ] (WS-PROG-NAME) (WS-PTR-AREA) ] (WS-COMM-TAM) ] (WS-PRT-ENTRY) ] END-

EXEC Condio de Erro: PGMIDERR, LENGERR; Este comando permite o acesso a tabelas que sofrem freqente alterao, como Tabela de Taxas, por exemplo, mas serve tambm para carregar programas e mapas; O WS-PROG-NAME deve estar na PPT, seno dar PGMIDERR; A opo SET solicita que a PPT retorne o endereo do programa carregado; A opo ENTRY indica um ponto de entrada dentro do programa, tabela ou mapa; A opo HOLD indica que o CICS deve manter o programa na DSA (rea de endereamento dinmico da memria) at que seja emitido um comando RELEASE, caso contrrio o programa ser liberado assim que a task terminar.

17.3 RELEASE: EXEC CICS RELEASE END-EXEC PROGRAM (WS-PROG-NAME)

Condio de Erro: PGMIDERR Para liberar da DSA o programa, mapa ou tabela anteriormente carregado com a opo HOLD. Esse procedimento precisa ser feito com muito cuidado se for usado, pois, uma vez dado o RELEASE, o programa no ter mais um endereamento vlido para a tabela e poder causar um Abend.

108336228.doc

128 de 206

Curso CICS Nvel Pleno

Mdulo 17 Resumo
Foi mostrado como podemos carregar dinamicamente em um programa, uma tabela, ou mapa, e como liberar as reas alocadas, quando as mesmas no forem mais necessrias;

108336228.doc

129 de 206

Curso CICS Nvel Pleno

Mdulo 17 Glossrio
Assembler Linguagem de programao, dita do mais baixo nvel, isto , suas instrues espelham a linguagem de mquina, em cdigos binrios;

108336228.doc

130 de 206

Curso CICS Nvel Pleno

Mdulo 17 Bibliografia

CICS: programando usando Cobol / William G. Bruno Ed. Campus. CICS/VS Aplic. Progr. Ref. CICS/VS Aplic. Progr. Ref. (Macro) CICS/VS Operators Guide CICS Introduo Coleoar-GSO-Disop SC33 0077 - IBM SC33 0079 IBM SC33 0080 IBM - colodi@pr.gov.Br

108336228.doc

131 de 206

Curso CICS Nvel Pleno

Mdulo 18 18. Controle de programa- 2


18.1 Start: possvel startar uma task sem interveno do elemento humano, com base somente no tempo, para isso usamos o comando START; Para iniciar uma transao, passando dados, procedemos assim: EXEC CICS START TRANSID (WS-TRAN-NAME) INTERVAL (n) / TIME (HHMMSS) REQID (WS-TERM-NAME) TERMID (WS-TERM-NAME) FROM (WS-COMMAREA) LENGTH (WS-COMM-TAM)

END-

EXEC N em segundos Cies de erro: LENGERR, INVREQ, TRANSIDERR, TERMIDERR, EXPIRED O EIBCALEN ser setado igual a zeros; usar o comando RETRIEVE para recuperar a Commarea. TRANSID Especifica a transao a ser iniciada, que dever estar na PCT;

INTERVAL e TIME so mutuamente exclusivos; INTERVAL Especifica o perodo de tempo aps o qual a transao ser iniciada; TIME REQID TERMID FROM LENGTH Especifica um horrio no qual a transao se iniciar; Especifica a identificao da transao, que pode ser til se quisermos cancelar este START enquanto ainda estiver esperando; Especifica o terminal em que a task deve ser iniciada; Especifica os dados que sero passados; Especifica o tamanho dos dados que esto sendo passados.

108336228.doc

132 de 206

Curso CICS Nvel Pleno

Mdulo 18

Citao

Se mais de um START for emitido para o mesmo Terminal, para o mesmo instante, os mesmos sero enfileirados, e sero executados um de cada vez, pois apenas uma task pode estar ativa em um determinado terminal, em um dado momento.

108336228.doc

133 de 206

Curso CICS Nvel Pleno

Mdulo 18
Exemplo: EXEC CICS STARTTRANSID TIME REQID TERMID FROM LENGTH (TRN1) (200000) (TRN1RQ01) (T360) (WS-COMMAREA) (LENGTH OF WS-COMMAREA)

END-EXEC

18.2 Retrieve: EXEC CICS RETRIEVE INTO (WS-COMMAREA) / SET (PRT-COMMAREA) LENGTH (WS-COMM-TAM) QUEUE (WS-TS-FILA) WAIT END-EXEC Condio de Erro: LENGERR, ENDDATA, NOTFND; INTO e SET TIME so mutuamente exclusivos; INTO SET LENGHT QUEUE Especifica a rea da WS do programa chamado, reservada para os dados; Especifica o endereo onde queremos que os dados sejam colocados; Especifica o tamanho da rea, quando usamos o parmetro SET; - Especifica uma rea de TS que ser acessada;

Se houver a possibilidade de uma outra, ou mais outras tasks estarem aguardando para executar a mesma transao, no mesmo terminal, passando dados, podemos processar um looping emitindo comandos RETRIEVE e tratando os dados, at que ocorra a condio de erro ENDDATA.

SAIBA MAIS: Se a opo WAIT for


especificada, a task ficar esperando at todos registros serem acessados, inclusive os j expirados.

108336228.doc

134 de 206

Curso CICS Nvel Pleno

Mdulo 18 Resumo

Foi explicado como startar uma transao com base no fator tempo, Os possveis parmetros, e como proceder para recuperar os dados passados; Foi mostrado o uso do comando Retrieve, para obter os dados passados para uma transao, via Start;

108336228.doc

135 de 206

Curso CICS Nvel Pleno

Mdulo 18 Glossrio
Looping Uma srie de procedimentos, realizados de maneira repetitiva, at que uma condio ocorra e quebre esse tabu;

108336228.doc

136 de 206

Curso CICS Nvel Pleno

Mdulo 18 Bibliografia

CICS: programando usando Cobol / William G. Bruno Ed. Campus. CICS/VS Aplic. Progr. Ref. CICS/VS Aplic. Progr. Ref. (Macro) CICS/VS Operators Guide CICS Introduo Coleoar-GSO-Disop SC33 0077 - IBM SC33 0079 IBM SC33 0080 IBM - colodi@pr.gov.br

108336228.doc

137 de 206

Curso CICS Nvel Pleno

Mdulo 19 19. Comandos de espera . DELAY


. CANCEL . POST . WAIT

19.1 Delay:
Comando de controle de tempo Atravs do uso do Interval Control (controle de intervalo) temos a possibilidade de adiar uma task, ou determinar o horrio em que ela deve ser executada. EXEC CICS DELAY EXEC - INTERVAL e TIME so mutuamente exclusivos; - INTERVAL iniciada; Especifica o perodo de tempo aps o qual a transao ser INTERVAL (n) / TIME (HHMMSS) REQID (WS-TERM-NAME) END-

- TIME Especifica um horrio no qual a transao se iniciar; - REQID Exemplo:


WORKING STORAGE SETION. 01 WS-DADOS-CICS. 05 WS-TIME

Especifica a identificao da transao, que pode ser til se quisermos cancelar este START enquanto ainda estiver esperando;

PIC S9X(07)

COMP-3 VALUE +110000.

EXEC CICS DELAY EXEC

TIME (WS-TIME) REQID (TRN1RQ01)

END-

Obs.: Time = hhmmss, onde ss (segundos) pode conter 00 a 59, mm (minutos) pode conter 00 a 59. hh (horas) pode conter 00 a 99; quando o valor de horas for maior que 24, ao dar meia-noite o programa de ajuste de tempo ir subtrair 24 de todas as requisies que estiverem pendentes.

108336228.doc

138 de 206

Curso CICS Nvel Pleno

Mdulo 19

Citao

O comando CANCEL pode ser usado em combinao com os comandos POST, START e DELAY. Se um comando CANCEL for emitido aps uma das funes acima, o intervalo mesma referido se tornar sem efeito.

108336228.doc

139 de 206

Curso CICS Nvel Pleno

Mdulo 19 19.2 Cancel:


possvel o cancelamento de uma solicitao, mediante a instruo a seguir: EXEC CICS CANCEL EXEC - REQID Especifica a identificao da solicitao (1 a 8 caracteres), que se quer cancelar (referente a um START ou um DELAY); Especifica a transao a ser cancelada. REQID TRANSID (nome) (nome) END-

- TRANSID

Quando esta transao for usada em combinao com comando DELAY, o tempo no pode ter espirado.

19.3 Post:
O CICS pode notificar uma task a respeito de uma solicitao que envolva o Control Interval, que ainda no estiver expirada, do seguinte modo: EXEC CICS POST EXEC INTERVAL SET REQID (n) / TIME (HHMMSS) (WS-PTR-POST) (WS-TERM-NAME)

END-

INTERVAL e TIME so mutuamente exclusivos; INTERVAL TIME SET

Citao Especifica o perodo de tempo aps o qual a task ser notificada;

Especifica um horrio no qual a task ser notificada; Esta opo informa o endereo do ECB (bloco de controle de eventos);

REQID Especifica a identificao da transao;

SAIBA MAIS: O ECB POST e Control Block) Vamos dar um exemplo envolvendo os comandos(Event WAIT, Mdulo onde vamos permitir que o programa fique esperando 2 segundos, uma halfword inicializada com low-values; aps antes de o tempo oestipulado oda task. enviado sendo prosseguir processamento ECB
mudado para o valor hexadecimal X40008000.

19

108336228.doc

140 de 206

Curso CICS Nvel Pleno

Mdulo 19
19.4 Wait: tambm possvel no CICS esperar que um evento ocorra, do seguinte modo: EXEC CICS WAIT EVENT ECADDR (WS-PTR-ECA) END-EXEC

ECADDR Esta opo informa o endereo da rea onde o CICS deve pesquisar para ver se o evento ocorreu.

Isto pode ser aplicado para simular um tempo de resposta maior que o normal, ento poderemos utilizar uma combinao dos comandos POST e WAIT, como exemplificado abaixo:

WORKING STORAGE SETION. 01 WS-WORK-AREA. 05 WS-REC-TAM 05 WS-REC-CNT COPY PG01AMS. LINKAGE SETION. 01 LK-PTR-LIST. 05 FILLER 05 LK-PTR-ECB 01 LK-ECB-AREA. 05 FILLER

PIC S9(04) PIC 9(02)

COMP VALUE +100. VALUE +1.

PIC S9(08) PIC S9(08) PIC X(04).

COMP. COMP.

PROCEDURE DIVISION. ...

. . .
EXEC CICS RECEIVE EXEC EXEC CICS POST END-EXEC INTERVAL SET (2) (LK-PTR-ECB) MAP MAPSET (PG01AMP) (PG01AMS) END-

. . .

108336228.doc

141 de 206

Curso CICS Nvel Pleno

Mdulo 19

Citao

Aps processar o mapa de entrada, verifica se o tempo expirou, antes de enviar o mapa de sada.

108336228.doc

142 de 206

Curso CICS Nvel Pleno

Mdulo 19
IF LK-ECB-AREAEQUAL LOW-VALUES CICS WAIT EVENT ECADDR (LK-PTR-ECB) EXEC CICS SEND EXEC EXEC CICS RETURN EXEC. - O comando RECEIVE recebe os dados que foram informados pelo usurio; - Aps o comando POST, pedimos ao CICS que avise quando tiverem decorridos dois segundos. Este comando colocar no pointer LK-PTR-ECB o endereo da LK-ECBAREA; - Antes do envio do mapa queremos ter certeza que j decorreram 2 segundos, ento testado o campo LK-ECB-AREA e d-se o comando WAIT; ENDMAP MAPSET (PG01AMP) (PG01AMS) EXEC END-EXEC END-IF END-

108336228.doc

143 de 206

Curso CICS Nvel Pleno

LEMBRETE: Quando o evento ocorrer o campo


LK-ECB-AREA ser preenchido e o processamento prosseguir;

19.5 Condies de erro: ENDDDATA : Indica que no existem mais dados a serem obtidos; EXPIRED INVREQ INVTSREQ IOERR : Indica que o tempo especificado (POST/DELAY) expirou; : Indica que o comando no vlido; : Indica que a TS no est permitida; : Indica que no existem mais dados a serem obtidos; LENGERR : Indica que a rea reservada no programa no tem tamanho suficiente para receber os dados; NOTFND : Identificador de solicitao (CANCEL) no foi encontrado;

TERMIDERR : Indica que o terminal especificado no est na TCT; TRANSIDERR : Indica que a transao especificada no est na PCT;

Mdulo 19 Resumo
Foram apresentados os comandos DELAY e CANCEL; Foram mostrados e exemplificados os comandos POST e WAIT; Por fim foram explicadas as condies de exceo que podem ocorrer para os comandos de Interval Control.

108336228.doc

144 de 206

Curso CICS Nvel Pleno

Mdulo 19 Glossrio
Interval Control uma facilidade do CICS que providencia as funes relacionadas com o tempo; no confundir com CI (Control Interval), que uma caracterstica dos arquivos VSAM;

108336228.doc

145 de 206

Curso CICS Nvel Pleno

Mdulo 19 Bibliografia
CICS: programando usando Cobol / William G. Bruno Ed. Campus. CICS/VS Aplic. Progr. Ref. CICS/VS Aplic. Progr. Ref. (Macro) CICS/VS Operators Guide CICS Introduo Coleoar-GSO-Disop SC33 0077 - IBM SC33 0079 IBM SC33 0080 IBM - colodi@pr.gov.Br

108336228.doc

146 de 206

Curso CICS Nvel Pleno

Mdulo 20 20. Endereamento

Getmain Freemain Assign Address 20.1 Getmain: O CICS possibilita que um programa solicite uma rea de memria, atravs do comando abaixo: EXEC CICS GETMAIN SET (LK-PRT-MAIN) LENGTH / FLENGTH (WS-MAIN-TAM) [ INITMG (data-value) ] [ SHARED ]

END-

EXEC SET Esta opo informa o endereo da rea de memria, na Linkage;

LENGTH Especifica o tamanho da rea sendo adquirida; INITMG Especifica 1 byte com caracter de preenchimento da rea; SHARED Uma rea obtida com esta condio no ser liberada, at que um FREEMAIN seja emitido; isto permite a comunicao task a task;

Condio de Erro: LENGERR(tamanho = 0); INVREQ (requisio invlida); NOSTG (memria requisitada no disponvel - suspender a task at que haja memria disponvel).

108336228.doc

147 de 206

Curso CICS Nvel Pleno

LEMBRETE: O Getmain obtm uma rea da


DSA, alinhadas em mltiplos de dupla palavra.

20.2 Freemain: A Liberao de uma rea de memria solicitada feita da seguinte maneira: EXEC CICS FREEMAIN EXEC DATA DATA (LK-MAIN-AREA) END-

Esta opo informa a rea da Linkage anteriormente adquirida;

108336228.doc

148 de 206

Curso CICS Nvel Pleno

Mdulo 20

Citao

Veremos a seguir os comandos que tratam diretamente com endereos, o ASSIGN (obtm tamanho de reas na WS), e o ADDRESS (obtm endereo de reas na Linkage).

108336228.doc

149 de 206

Curso CICS Nvel Pleno

Mdulo 20
20.3 Assign: EXEC CICS ASSIGN END-EXEC options CSALENG, CWALENG, TCTUALENG, TWALENG; option1 option2 ... (WS-LEN-1) (WS-LEN-2)

20.4 Address: EXEC CICS ADDRESS END-EXEC options CSA, CWA, TCTUA, TWA; Condio de Erro: INVREQ Exemplo:
WORKING STORAGE SETION. 01 WS-WORK-AREA. 05 WS-LEN-CWA LINKAGE SETION. 01 LK-PTR-LIST. 05 FILLER 05 LK-PTR-CWA 01 LK-CWA-AREA. 05 FILLER

option1 option2 ...

(LK-PTR-1) (LK-PTR-2)

PIC S9(04)

COMP VALUE +100.

PIC S9(08) PIC S9(08) PIC X(1O0).

COMP. COMP.

PROCEDURE DIVISION. ...

. . .
EXEC CICS ASSIGN END-EXEC CWALENG (WS-LEN-CWA) EXEC END-EXEC END-IF

IF WS-LEN-CWAGREATER ZEROS CICS ADDRESS CWA (ADRESS OF LK-CWA-AREA)

108336228.doc

150 de 206

Curso CICS Nvel Pleno

Mdulo 20 Resumo
Foi mostrado como se obtm memria, na Linkage, e como se libera a memria obtida, quando esta no mais necessria; Foi apresentado e exemplificado como se obtm o endereamento de uma rea especial do CICS.

108336228.doc

151 de 206

Curso CICS Nvel Pleno

Mdulo 20 Glossrio
Endereamento uma palavra onde colocado um valor hexadecimal que representa a localizao relativa de um campo, ou de uma rea numa regio de memria;

108336228.doc

152 de 206

Curso CICS Nvel Pleno

Mdulo 20 Bibliografia

CICS: programando usando Cobol / William G. Bruno Ed. Campus. CICS/VS Aplic. Progr. Ref. CICS/VS Aplic. Progr. Ref. (Macro) CICS/VS Operators Guide CICS Introduo Coleoar-GSO-Disop SC33 0077 - IBM SC33 0079 IBM SC33 0080 IBM - colodi@pr.gov.Br

108336228.doc

153 de 206

Curso CICS Nvel Pleno

Mdulo 21 Conceito de TS
- Armazenamento Temporrio
-

Uso de TS em programa pseudo-conversacional

21.1 Armazenamento Temporrio: A passagem de dados via COMMAREA rpido, porm tem um inconveniente: os dados no podem ser recuperados em caso de fim anormal. A soluo usar o recurso de Temporary Storage (TS);

Essa rea pode residir na memria principal ou em memria auxiliar, em arquivo VSAM, sendo esta ltima forma ideal para se armazenar grande quantidade de dados, sem problemas;

Estas informaes so guardadas como registros de tamanho varivel, em filas seqenciais; estas filas recebem um nome de at 8 posies que s precisam ser definidos previamente em tabela do CICS, a TST (Temporary Storage Table), para caso de recuperao por fim anormal;

Um ou mais programas podem gravar itens em uma mesma fila (WRITEQ TS), e um ou mais programas podem acessar os itens dessa fila (READQ TS). Deve-se, contudo, prever em que momento essa fila j foi processada, ou no ser mais necessria e providenciar a deleo da mesma (DELETEQ TS);

SAIBA MAIS: Outra tcnica consiste em fazer,


antes de iniciar a gravao de uma fila especfica, um teste para verificar se a fila j existe; em caso afirmativo delet-la.

108336228.doc

154 de 206

Curso CICS Nvel Pleno

Mdulo 21

Citao

Vamos apresentar um exemplo de como podemos aplicar as caractersticas da TS para controlar a execuo de uma transao, em fases, que caracteriza o processamento pseudoconversacional .

108336228.doc

155 de 206

Curso CICS Nvel Pleno

Mdulo 21
21.2 Uso de TS em programa pseudoconversacional: TS (Temporary Storage) um recurso que permite o armazenamento de dados por um perodo indefinido (at que sejam deletados); Os dados podem ser direcionados para o mesmo programa por RETURN TRANSID, determinando etapas do processamento (o nmero da etapa deve ser um dos campos gravados na TS), por exemplo: Etapa 1 Procedimentos iniciais (padro da instalao); Mensagem = Digite os dados e tecle ENTER; Envio da tela inicial (mapa); TS gerada; Etapa = 2; Etapa 2 Recebimento do mapa inicial; Verificao das teclas de funo; Consistncia dos dados; Se houver erro, envia mensagem; Se no houver erro Etapa = 3; Etapa 3 Recebimento do mapa; Prepara a execuo da operao solicitada (Consulta / Incluso / Alterao / Excluso / Lista por chave / Impresso, etc.); Em caso de no modificar a base de dados, Mensagem = Operao efetuada, Re-envio da tela inicial (mapa); Etapa = 2; Em caso de modificao da base de dados, Mensagem = Tecle PFn; Etapa = 4; Etapa 4 Efetua atualizao efetiva na base de dados; Mensagem = Operao efetuada; Re-envio da tela inicial (mapa); Etapa = 2; Ao teclar CELAR ou PFn, encerrar o processamento (RETURN); delatar a TS; (Obs.: O exemplo acima meramente sugestivo). Os dados podem ser passados para outro programa, ou grupo de programas (LINK ou XCTL), por exemplo: Um programa Menu obtm informaes sobre uma Chave; Uma operao solicitada para essa Chave; Dependendo da operao o controle desviado para um programa especfico, passando informaes via TS; Cada programa chamado pode completar as informaes iniciais; Quando a operao for encerrada, ou abandonada, a TS deletada;

108336228.doc

156 de 206

Curso CICS Nvel Pleno

Mdulo 21 Resumo
Foram apresentados conceitos para utilizao de TS (Temporary Storage); Foi dado um exemplo prtico de como podemos aproveitar os conceitos de TS, no processamento de transaes pseudoconversacionais.

108336228.doc

157 de 206

Curso CICS Nvel Pleno

Mdulo 21 Glossrio
Pseudoconversacional um esquema que simula uma conversao entre o programa de aplicao e o usurio de uma transao; porm, a cada passo dessa conversao as informaes necessrias para o prosseguimento do processo so salvas e os recursos do CICS so liberados

108336228.doc

158 de 206

Curso CICS Nvel Pleno

Mdulo 21 Bibliografia

CICS: programando usando Cobol / William G. Bruno Ed. Campus. CICS/VS Aplic. Progr. Ref. CICS/VS Aplic. Progr. Ref. (Macro) CICS/VS Operators Guide CICS Introduo Coleoar-GSO-Disop SC33 0077 - IBM SC33 0079 IBM SC33 0080 IBM - colodi@pr.gov.br

108336228.doc

159 de 206

Curso CICS Nvel Pleno

Mdulo 22 22. Operaes com TS- 1


- Gravando a TS - Lendo a TS 22.1 Gravando a Temporary Storage: EXEC CICS WRITEQ TS QUEUE (nome) FROM (WS-TS-AREA) LENGTH (WS-TS-TAM) [ ITEM(WS-TS-ITEM) ] [ MAIN / AUXILIARY ] [ RESP(WS-TS-RESP) ]

END-EXEC

QUEUE FROM

Especifica o nome da fila na qual os registros sero armazenados; Especifica a rea da WS onde esto os dados que sero gravados;

LENGTH Especifica o tamanho dos dados que vo ser gravados; ITEM Especifica o campo onde o CICS devolver o nmero seqencial do registro que acabou de ser gravado; MAIN Especifica que os dados que sero gravados na memria principal (sem ocorrncia de I/O); AUXILIARY Especifica que os dados que sero gravados em memria auxiliar (disco, c/ ocorrncia de I/O); essa opo ser assumida se nenhuma for especificada; RESP Especifica o campo onde o CICS devolver o EIBRESP para que o programa teste o sucesso da operao; ITEMERR indicar que no existem mais itens para ler, ou seja, ocorreu fim da fila de TS; Exemplo:
WORKING STORAGE SETION. 01 WS-WORK-AREA. 05 WS-TS-AREA 05 WS-TS-ITEM 05 WS-TS-RESP

PIC X(100). PIC S9(04) PIC X(01).

COMP VALUE ZEROS.

EXEC CICS WRITEQ TS FROM ITEM RESP EXEC

QUEUE (TERMX01A) (WS-TS-AREA) preenchido (WS-TS-ITEM) CICS devolve (WS-TS-RESP) CICS devolve

END-

108336228.doc

160 de 206

Curso CICS Nvel Pleno

Mdulo 22

Citao

Com o comando READQ possvel recuperar uma TS gravada conforme veremos adiante.

108336228.doc

161 de 206

Curso CICS Nvel Pleno

Mdulo 22
22.2 Lendo a Temporary Storage: EXEC CICS READQ TS QUEUE (nome) INTO (WS-TS-AREA) / SET (LK-PTR-TS-AREA) LENGTH (WS-TS-TAM) [ ITEM(WS-TS-ITEM) / NEXT ] [ NUMITENS (WS-TS-QT-IT) ] [ RESP(WS-TS-RESP ] END-EXEC

QUEUE INTO

Especifica o nome da fila que desejamos acessar; Especifica a rea da WS onde o registro ser colocado;

SET Especifica a rea da Linkage onde est o endereo da rea na qual o registro ser colocado; LENGTH Especifica o tamanho da rea receptora; ITEM Especifica o campo com o nmero do registro desejado;

NEXT Especifica que ser lido o prximo registro seqencial da fila; esta opo ser assumida, se nenhuma for especificada; NUMITENS Especifica o campo onde o CICS devolver a quantidade total de itens gravados; RESP Especifica o campo onde o CICS devolver o EIBRESP para que o programa teste o sucesso da operao; ITEMERR indicar que no existem mais itens para ler, ou seja, ocorreu fim da fila de TS; Exemplo:

EXEC CICS READQ TS QUEUE (WS-DESCRQ) SET (WS-PTR-PREF) LENGTH (WS-LENG) NEXT END-EXEC

OBSERVAO: O pointer posicionado com


o endereo do dado acessado, at o prximo Readq TS, a menos que seja modificado pelo programa.

108336228.doc

162 de 206

Curso CICS Nvel Pleno

Mdulo 22 Resumo
Foi descrita a operao de gravao de uma TS e seus respectivos parmetros; tambm foi detalhada a operao de gravao de uma TS e seus respectivos parmetros; Foram exemplificadas as operaes acima mencionadas.

108336228.doc

163 de 206

Curso CICS Nvel Pleno

Mdulo 22 Glossrio
Fila Diz-se de um conjunto de informaes gravadas na TS, formando uma espcie de arquivo;

108336228.doc

164 de 206

Curso CICS Nvel Pleno

Mdulo 22 Bibliografia

CICS: programando usando Cobol / William G. Bruno Ed. Campus. CICS/VS Aplic. Progr. Ref. CICS/VS Aplic. Progr. Ref. (Macro) CICS/VS Operators Guide CICS Introduo Coleoar-GSO-Disop SC33 0077 - IBM SC33 0079 IBM SC33 0080 IBM colodi@pr.gov.br

108336228.doc

165 de 206

Curso CICS Nvel Pleno

Mdulo 23
23.

Operaes com TS-2

- Deleo de TS - Regravao de TS - Condies de erro no uso de TS

23.1 Deleo de TS: EXEC CICS DELETEQ TS END-EXEC QUEUE QUEUE (nome)

Especifica o nome da fila que desejamos deletar;

23.2 Regravao de TS:

EXEC CICS WRITEQ TS

QUEUE (nome) FROM (WS-TS-AREA) REWRITE [ NOSUSPEND ] [ ITEM(WS-TS-ITEM) ] [ RESP(WS-TS-RESP) ]

END-EXEC

QUEUE: Especifica o nome da fila na qual os registros sero armazenados; FROM: Especifica a rea da WS onde esto os dados que sero gravados; REWRITE : Indica que vai ser feita uma regravao; ITEM: Especifica o campo onde est o item a ser regravado; RESP: Especifica o campo onde o CICS devolver o EIBRESP para que o programa teste o sucesso da operao; O programa no deve emitir m WRITEQ TS, se j foi emitido um DELETEQ TS para a mesma unidade lgica de trabalho, at que a task termine.

108336228.doc

166 de 206

Curso CICS Nvel Pleno

Mdulo 23

Citao

Vamos apresentar agora as condies de erro possveis, ao tratarmos com os comandos de TS.

108336228.doc

167 de 206

Curso CICS Nvel Pleno

Mdulo 23

23.3 Condies de erro: INVREQ IOERR ITEMERR LENGERR : Erro na gravao, tamanho zero ou tamanho maior que o tamanho do CI (Control Interval) da TS; : Indica erro de operao de I/O; : Item no encontrado na leitura ou regravao da TS; : rea reservada no tem tamanho suficiente p/ receber o registro; : No h espao suficiente (na memria) para armazenar o

NOSPACE registro;
-QIDERR

: Nome no encontrado (leitura/deleo/regravao), nem na memria auxiliar (disco), nem na principal;

ATENO: Se no h espao
suficiente para a gravao da TS, a task ficar suspensa at que o espao seja liberado; mas se a opo NOSUSPEND foi especificada, ocorrer a condio de NOSPACE.

108336228.doc

168 de 206

Curso CICS Nvel Pleno

Mdulo 23 Resumo
Foi descrito o comando para se fazer a deleo de filas de da TS (Deleteq) e tambm o comando para se proceder atualizao dessas filas (Writeq c/ opo Rewrite); Por fim foram explicadas as condies de exceo, correspondentes ao uso da Temporary Storage.

108336228.doc

169 de 206

Curso CICS Nvel Pleno

Mdulo 23 Glossrio
Memria auxiliar Se refere a uma rea em disco (arquivo), no um espao da regio onde o CICS est rodando;

108336228.doc

170 de 206

Curso CICS Nvel Pleno

Mdulo 23 Bibliografia
CICS: programando usando Cobol / William G. Bruno Ed. Campus. CICS/VS Aplic. Progr. Ref. CICS/VS Aplic. Progr. Ref. (Macro) CICS/VS Operators Guide CICS Introduo Coleoar-GSO-Disop SC33 0077 - IBM SC33 0079 IBM SC33 0080 IBM colodi@pr.gov.br

108336228.doc

171 de 206

Curso CICS Nvel Pleno

Mdulo 24 24. Aplicao de TS


- Modelo de mapa com paginao - Uso de TS para paginao de mapas

24.1 Modelo de mapa com paginao:

- Por exemplo, numa consulta de produtos podemos ter a tela abaixo:


1...5...10...15...20...25...30...35...40...45...50...55...60...65...70...75...80 01#04/01/2005 #POLITEC #PROGR01A 02#08:29:59 #Pgina #nnn #LISTA DE PRODUTOS #Depto #nnn 05#OP 06#XX 07#XX 08#XX 09#XX 10#XX 11#XX 12#XX 13#XX 14#XX 15#XX 16#XX 17#XX 18#XX 19#XX 20#XX COD.PROD. 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 9999 PF3=Volta DESCRIO DO PRODUTO XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX PF4=Menu PF7=Prox.Pag. QTDE. 9.999.999 9.999.999 9.999.999 9.999.999 9.999.999 9.999.999 9.999.999 9.999.999 9.999.999 9.999.999 9.999.999 9.999.999 9.999.999 9.999.999 9.999.999 VALOR ESTOQUE 999.999.999.999,99 999.999.999.999,99 999.999.999.999,99 999.999.999.999,99 999.999.999.999,99 999.999.999.999,99 999.999.999.999,99 999.999.999.999,99 999.999.999.999,99 999.999.999.999,99 999.999.999.999,99 999.999.999.999,99 999.999.999.999,99 999.999.999.999,99 999.999.999.999,99 23

03 04

21 22#

PF1=Help

PF8=Pag.Ant

Clear=Sai do CICS

24#MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM

108336228.doc

172 de 206

Curso CICS Nvel Pleno

Mdulo 24

Citao

Uma possibilidade real o uso de TS para paginao de mapas; Verifique as consideraes a seguir e veja como isso possvel.

108336228.doc

173 de 206

Curso CICS Nvel Pleno

Mdulo 24

24.1 Uso de TS para paginao de mapas: Consideraes sobre a tela da pgina anterior: Com 15 linhas por pgina, se tivermos, num determinado departamento, 1200 produtos, ser gerada uma lista de 80 pginas; Ao usurio, num determinado momento, pode interessar s as 3 primeiras pginas, e aps consult-las, sair da transao; ou pode se interessar s pela primeira e pela ltima; e assim por diante; Uma soluo formatar a pgina 1 (com 15 primeiros produtos, IND=1 a 15), e grav-la no ITEM 1 de uma TS, depois formatar a pgina 2 (com outros 15 produtos, IND=16 a 30), e grav-la no ITEM 2 da TS, at terminarem os produtos; Isso feito mostramos a pgina 1 (= ITEM 1), e guardamos na COMMAREA, ou numa TS de controle, o nome da TS e o nmero do ITEM corrente (= 1); Poderemos ento navegar para frente (PF8 = se item corrente < NUMITENS, item corrente + 1), para trs (PF7 = se item corrente > 1, item corrente - 1 ), poderemos ter uma PF para mostrarmos a ltima pgina (NUMITENS) e uma PF para voltar imediatamente para a primeira pgina; A coluna OP ser mostrada desprotegida e, atravs de cdigos estabelecidos, ser possvel fazer uma operao de consulta para o produto selecionado, abrindo uma tela ou janela, com mais detalhes, voltando a seguir para a pgina corrente da paginao; Igualmente poder ser aberta uma tela para alterao do produto selecionado e, findada esta operao, voltar para a pgina corrente da paginao, devidamente atualizada (REWRITE); Para desta forma se proceder a delees, o campo OP correspondente passar a aparecer protegido (REWRITE); Se forem feitas incluses, os novos produtos no sero demonstrados, at que se determine um Refresh da TS toda; Opcionalmente poder ser demonstrada na ltima uma totalizao das quantidades e valores;

LEMBRETE: Podero ser demonstradas


totalizaes intermedirias e quebras de pgina, mas no entraremos nestes detalhes de lgica de programa.

108336228.doc

174 de 206

Curso CICS Nvel Pleno

Mdulo 24 Resumo
Foi dado um exemplo de mapa com paginao; A seguir foram tecidas consideraes a respeito da montagem da paginao.

108336228.doc

175 de 206

Curso CICS Nvel Pleno

Mdulo 24 Glossrio
Paginao o processo em que se mostra uma espcie de relatrio on-line, navegando-se para frente e para trs, para acessar as pginas do mesmo.

108336228.doc

176 de 206

Curso CICS Nvel Pleno

Mdulo 24 Bibliografia
CICS: programando usando Cobol / William G. Bruno Ed. Campus. CICS/VS Aplic. Progr. Ref. CICS/VS Aplic. Progr. Ref. (Macro) CICS/VS Operators Guide CICS Introduo Coleoar-GSO-Disop SC33 0077 - IBM SC33 0079 IBM SC33 0080 IBM - colodi@pr.gov.br

108336228.doc

177 de 206

Curso CICS Nvel Pleno

Mdulo 25 25. Conceitos de TD


- Armazenamento Transiente - Writeq TD

25.1 Armazenamento Transiente:


-

O TDP (Transient Data Program) cria dados em filas transitrias, que pode ser Extrapartition ou Intrapartition, de tamanho fixo ou varivel; Cada fila Extrapartition corresponde a um arquivo sequencial, de organizao QSAM, definidos da DCT (Destination Control Table); estes arquivos podem ser utilizados fora do CICS, via Jobs Batch, como input ou output; eles podem ser lidos e relidos, mas no podem ser atualizados ou deletados fisicamente dentro do CICS; As filas Intrapartition so direcionadas para um arquivo VSAM ESDS chamado DFHINTRA, que so gravados e lidos sequencialmente em filas definidas na DCT; s podem ser acessados uma nica vez pois a leitura destrutiva;

Fluxo bsico do processamento CICS, usando Transient Data:

DFHTDP

Extrapartition
DFH INTR A

PROGRAMA EXEC CICS READQ/WRITEQ TD

DFHDCT

108336228.doc

DESTID

178 de 206

BATCH REGION

Curso CICS Nvel Pleno

Mdulo 25

Citao

DFHDCT

Definio de uma fila Extrapartition: TYPE=EXTRA, DESTID=E01A, DSCNAME=DDEA01, Aponta para o DDNAME, no JCL Definio de uma fila Intrapartition: TYPE=INTRA, DESTID=E01A o nome de uma Queue DESTFAC=TERMNAL TRANSID=T01A TRIGLEV=1

OPEN=INITIA

DFHDCT

108336228.doc

179 de 206

Curso CICS Nvel Pleno

Mdulo 25

25.2 Gravando a Transient Data: EXEC CICS WRITEQ TD QUEUE (nome) FROM (WS-TS-AREA) LENGTH (WS-TS-TAM) [ RESP(WS-TS-RESP) ]

END-EXEC

QUEUE FROM

Especifica o nome da fila na qual os registros sero gravados; Especifica a rea da WS onde esto os dados que sero gravados;

LENGTH Especifica o tamanho do registro que vai ser gravado; RESP Especifica o campo onde o CICS devolver o EIBRESP para que o programa teste o sucesso da operao;

Exemplo:
WORKING STORAGE SETION. 01 WS-WORK-AREA. 05 WS-TD-AREA PIC X(100) 05 WS-TD-RESP PIC X(01).

VALUE SPACES.

EXEC CICS WRITEQ TD END-EXEC

QUEUE FROM RESP

(X01A) (WS-TD-AREA) (WS-TD-RESP)

preenchido CICS devolve

OBSERVAO: Cada fila de TD est associada a


um arq. Seqencial, fora do CICS, de tam. Fixo ou varivel, blocado ou no; .

108336228.doc

180 de 206

Curso CICS Nvel Pleno

Mdulo 25 Resumo
Foi descrita a armazenagem de uma Transient Data (TD); Foi detalhada a operao de gravao de uma TD, e seus respectivos parmetros; Foi exemplificada a operao acima mencionada;

108336228.doc

181 de 206

Curso CICS Nvel Pleno

Mdulo 25 Glossri o
Fila Intrapartition Informaes que so passadas de uma transao para outra, dentro do CICS; Fila Extrapartition Registros que, alm de serem passados de uma transao para outra dentro do CICS, ficam gravados em arquivo seqencial, disponvel para acesso fora do CICS, via Batch;

108336228.doc

182 de 206

Curso CICS Nvel Pleno

Mdulo 25 Bibliografia

CICS: programando usando Cobol / William G. Bruno Ed. Campus. CICS/VS Aplic. Progr. Ref. CICS/VS Aplic. Progr. Ref. (Macro) CICS/VS Operators Guide CICS Introduo Coleoar-GSO-Disop SC33 0077 - IBM SC33 0079 IBM SC33 0080 IBM colodi@pr.gov.br

108336228.doc

183 de 206

Curso CICS Nvel Pleno

Mdulo 26 26. Operaes com TD


- Readq TD - Deleteq TD - Condies de erro 26.1 Lendo a Transient Data: EXEC CICS READQ TD QUEUE (nome) INTO (WS-TD-AREA) / SET (LK-PTR-TD-AREA) LENGTH (WS-TD-TAM) [ RESP(WS-TD-RESP ] END-EXEC

- QUEUE Especifica o nome da fila (1 a 4 caracteres), que desejamos acessar; - INTO - SET Especifica a rea da WS onde o registro ser colocado; Especifica a rea da Linkage onde est o endereo da rea na qual o registro ser colocado;

- LENGTH Especifica o tamanho do registro; RESP Especifica o campo onde o CICS devolver o EIBRESP para que o programa teste o sucesso da operao

Exemplo:
WORKING STORAGE SETION. 01 WS-WORK-AREA. 05 WS-TD-AREA PIC X(100) 05 WS-TD-RESP PIC X(01).

VALUE SPACES.

EXEC CICS READQ TD END-EXEC

QUEUE INTO RESP

(X01A) (WS-TD-AREA) (WS-TD-RESP)

CICS devolve CICS devolve

108336228.doc

184 de 206

Curso CICS Nvel Pleno

Mdulo 26

Citao

Aps a leitura dos registros da TD, podem ser excludas as filas que no so mais necessrias, atravs do comando Deletq.

108336228.doc

185 de 206

Curso CICS Nvel Pleno

Mdulo 26 OBSERVAO: Os dados so lidos uma


nica vez; o CICS atualiza o pointer, Indicando onde ser a prxima leitura; 26.2 Deletando a Transient Data: EXEC CICS DELETQ TD QUEUE (nome) [ RESP(WS-TD-RESP ] END-EXEC

- QUEUE Especifica o nome da fila (1 a 4 caracteres), que desejamos deletar;

26.3 Condies de erro: - IOERR - LENGERR - NOSPACE - QBUSY - QIDERR - QZERO Indica que ocorreu erro de operao de I/O; rea de entrada (READQ.) insuficiente para receber o registro; rea de sada maior que o mximo especificado na DCT; No h mais espao para gravao de registros na TD; A fila que est querendo ser lida, est sendo gravada ou excluda; esperar at que a fila no esteja mais ocupada; O nome da fila no foi encontrado na DCT; Fim de fila; no existem mais registros para serem lidos;

108336228.doc

186 de 206

Curso CICS Nvel Pleno

Mdulo 26 Resumo

Foi detalhada a operao de leitura de uma TD, e seus respectivos parmetros; Foi tambm explicado como se deleta uma fila de TD; Foram exemplificadas as operaes acima mencionadas; Por fim foram apresentadas as condies de erro para TD.

108336228.doc

187 de 206

Curso CICS Nvel Pleno

Mdulo 26 Glossrio
Transient Data Dados transitrios criados em filas passadas a outras transaes do CICS, ou gravados em arquivos para uso fora do CICS;

108336228.doc

188 de 206

Curso CICS Nvel Pleno

Mdulo 26 Bibliografia

CICS: programando usando Cobol / William G. Bruno Ed. Campus. CICS/VS Aplic. Progr. Ref. CICS/VS Aplic. Progr. Ref. (Macro) CICS/VS Operators Guide CICS Introduo Coleoar-GSO-Disop SC33 0077 - IBM SC33 0079 IBM SC33 0080 IBM colodi@pr.gov.br

108336228.doc

189 de 206

Curso CICS Nvel Pleno

Mdulo 27 27. Manuseio de Datas


- AskTime - FormatTime - Condies de erro no manuseio de Datas 27.1 AskTime: Para obtermos a data e hora do dia, usa-se o seguinte comando: EXEC CICS END-EXEC - ABSTIME - E uma dupla palavra, em binrio, onde so colocadas a Data e a Hora (at milsimos de segundo); ASKTIME ABSTIME (WS-ABSTIME)

OBSERVAO: Os campos EIBDATE e EIBTIME sero


atualizados no EIB; Este comando prefervel a outras rotinas usadas no programa de aplicao. 27.2 FormatTime: EXEC CICS ASKTIME ABSTIME (WS-ABSTIME) YYDDD (WS-YYDDD) YYMMDD (WS-YYMMDD) YYDDMM (WS-YYDDMM) DDMMYY (WS-DDMMYY) MMDDYY (WS-MMDDYY) DATEFORM (WS-DATEFORM) DATE (WS-DATE) DATESEP (valor) DAYCOUNT (WS-DAY-COUNT) DAYOFWEEK (WS-DAY-WEEK) DAYOFMONTH (WS-DAY-MONTH) MONTHOFYEAR (WS-MONTH) YEAR (WS-YEAR) TIME (WS-TIME) TIMESEP (WS-TIMESEP)

END-EXEC

108336228.doc

190 de 206

Curso CICS Nvel Pleno

Mdulo 27

Citao

Existem muitas maneiras de formatarmos uma data ou um horrio, Veja a seguir como isso pode ser feito;

108336228.doc

191 de 206

Curso CICS Nvel Pleno

Mdulo 27

- ABSTIME
-

- uma dupla palavra (em Cobol: PIC S9(15) COMP-3), onde so colocadas a Data e a Hora (at milsimos de segundo); - Campo de 6 bytes com data em formato juliano; separador opcional (se opo DATESEP especificada);

YYDDD

YYMMDD / YYDDMM / DDMMYY / MMDDYY Campo de 8 bytes com data no formato especificado; separador opcional (se opo DATESEP especificada);

- DATEFORM - rea de 6 bytes com o formato de data padro da instalao (um dos formatos do pargrafo anterior); - DATE - DATESEP - Campo de 8 bytes com data no formato padro da instalao; separador opcional (se opo DATESEP especificada); - Caracter a ser usado como separador de data; se omitido / ser assumido;

- DAYCOUNT - uma palavra, em binrio, onde ser colocado o nmero dias decorridos desde o dia primeiro de janeiro; - DAYOFWEEK - uma palavra, em binrio, onde ser colocado o nmero correspondente ao dia da semana (1=Domingo, etc.); - DAYOFMONTH - uma palavra, em binrio, onde ser colocado dia dentro do ms; - MONTHOFYEAR uma palavra, em binrio, onde ser colocado o nmero do ms no ano (1=janeiro, etc.); - YEAR - TIME - TIMESEP - uma palavra, em binrio, onde ser colocado o ano com 4 dgitos; - Campo de 8 bytes com hora em formato hhmmss; separador opcional (se opo TIMESEP especificada); - Caracter a ser usado como separador de horrio; se omitido : ser assumido;

27.3 Condies de erro: INVREQ - ABSTIME com formato incorreto;

108336228.doc

192 de 206

Curso CICS Nvel Pleno

Mdulo 27 Resumo
Foram os modos de se obter a data e o horrio, em seus diversos formatos.

108336228.doc

193 de 206

Curso CICS Nvel Pleno

Mdulo 27 Glossrio
DD Day (dia, com 2 dgitos); MM Month (ms, com 2 dgitos); YY Year (ano, com 2 dgitos);

108336228.doc

194 de 206

Curso CICS Nvel Pleno

Mdulo 27 Bibliografia
CICS: programando usando Cobol / William G. Bruno Ed. Campus. CICS/VS Aplic. Progr. Ref. CICS/VS Aplic. Progr. Ref. (Macro) CICS/VS Operators Guide CICS Introduo Coleoar-GSO-Disop SC33 0077 - IBM SC33 0079 IBM SC33 0080 IBM - colodi@pr.gov.br

108336228.doc

195 de 206

Curso CICS Nvel Pleno

Mdulo 28 28. Envio de Mapas . Send Map


. Receive Map . Condies de erro

28.1 Send Map: O Send Map pega os dados do mapa simblico (WS), agrega-os ao mapa fsico (compilado) e envia para o terminal do usurio. EXEC CICS SEND MAP (P01AMP1) MAPSET (P01MAS) [ FROM (P01AMP1O) ] [LENGTH (valor) ] [ CURSOR (VALOR) ] [ ALARM ] [ FREEKB ] [ MAPONLY / DATONLY ] [ ERASE / ERASEAUP ] [ FRSET ] [ PRINT ] [ RESP (WS-BR-RESP) ]

END-EXEC

- MAP Nome do mapa; - MAPSET - FROM DSECT; Nome do Mapset;

Nome da rea do mapa simblico, se o mesmo no for o MAP

- LENGTH Tamanho do mapa simblico, usando a clusula FROM; - CURSOR - Usada para modificar o posicionamento do Cursor, por exemplo, quando um campo est inconsistente; ALARM - Emite um som de alerta, quando envia a tela; FREEKB - O teclado do terminal liberado aps o envio do mapa;

ATENO: Para ligar o MDT use o


atributo = FSET;

108336228.doc

196 de 206

Curso CICS Nvel Pleno

Mdulo 28

Citao

No movendo Spaces que se limpa a tela, mas sim usando o parmetro Erase; Mover Low-values tambm no limpa a tela, mas mantm os campos como esto; Quando for especificado o parmetro Cursor, ele tem primazia sobre o atributo IC do mapa fsico;.

108336228.doc

197 de 206

Curso CICS Nvel Pleno

Mdulo 28

MAPONLY / DATONLY So mutuamente exclusivos; servem para economizar transmisso de dados; MAPONLY - Faz que seja enviado ao terminal apenas o mapa fsico (mapa limpo); normalmente se faz isso na primeira execuo de uma transao; DATONLY - Faz que seja enviado ao terminal apenas os dados do mapa simblico, fazendo um refresh da tela (o mapa fsico j deve ter sido enviando anteriormente; ERASE / ERASEAUP So mutuamente exclusivos; ERASE- Limpa a tela antes de enviar o mapa; ERASEAUP - Limpa somente os campos no protegidos da tela, antes de enviar o mapa; FRSET PRINT RESP - Se quisermos testar o retorno (EIBRESP);

OBSERVAO : Para posicionar o Cursor no


comando Send, mover (-1) para o campo com sufixo L;

108336228.doc

198 de 206

Curso CICS Nvel Pleno

Mdulo 28

Citao

Vamos apresentar, a seguir o comando RECEIVE MAP, com ele disponibilizaremos no programa de aplicao a posio das tela alterada pelo usurio, em sua ltima interao.

108336228.doc

199 de 206

Curso CICS Nvel Pleno

Mdulo 28
28.2 Receive Map: EXEC CICS SEND MAP (P01AMP1) MAPSET (P01MAS) INTO (WS-MP-AREA) / SET (LK-PRT-MP-AREA) [ FROM (P01AMP1O) ] [LENGTH (valor) ] [ RESP (WS-BR-RESP) ] END-EXEC

- MAP - MAPSET - INTO / SET - INTO DSECT; SET

- Nome do mapa; - Nome do Mapset; - So mutuamente exclusivos;

- Nome da rea do mapa simblico, na WS, se a mesmo no for o MAP - Idem acima, se a rea for na Linkage;

- FROM / LENGTH So usados se os dados a serem mapeados j esto disponveis para o programa; RESP - Se quisermos testar o retorno (EIBRESP);

108336228.doc

200 de 206

Curso CICS Nvel Pleno

Mdulo 28

Citao

A condio de MAPFAIL pode ocorrer nas seguintes condies:


-

tela em branco (limpa) no momento do Receive Map; tela com um mapa, porm nenhum campo com MDT On; O usurio tecla CLEAR ou PAn; contedo da tela composto de dados no formatados;

108336228.doc

201 de 206

Curso CICS Nvel Pleno

Mdulo 28
28.3 Condies de erro: INVMPSZ - Indica que o mapa sendo enviado no est de acordo com o terminal; MAPFAIL - Conjunto de dados no formatados ou no existem dados; EOC INVREQ - Ocorre se a unidade recebe um indicador de end-of-chain; - Ocorre se o terminal associado task no reconhecido pelo CICS;

IGREQCD - Terminal requisitado pelo SEND est dedicado a outra requisio; OVERFLOW- O mapa no cabe na pgina corrente; TSIOERR - Irrecupervel erro de I/O na TS;

108336228.doc

202 de 206

Curso CICS Nvel Pleno

Mdulo 28 Resumo
Foi apresentado o comando Send Map sendo explicados todos os seus parmetros; Foi apresentado o comando Receive Send Map sendo explicados todos os seus parmetros; Por fim foram apresentadas as condies de exceo;

108336228.doc

203 de 206

Curso CICS Nvel Pleno

Mdulo 28 Glossrio
Mapa fsico Constantes e atributos definidos na criao do mapa (Macro DFHMDF); Mapa simblico Variveis do mapa que fazem parte do book gerado;

108336228.doc

204 de 206

Curso CICS Nvel Pleno

Mdulo 28 Bibliografia
CICS: programando usando Cobol / William G. Bruno Ed. Campus. CICS/VS Aplic. Progr. Ref. CICS/VS Aplic. Progr. Ref. (Macro) CICS/VS Operators Guide CICS Introduo Coleoar-GSO-Disop SC33 0077 - IBM SC33 0079 IBM SC33 0080 IBM - colodi@pr.gov.br

108336228.doc

205 de 206

Curso CICS Nvel Pleno

Politec Informtica Ltda. Rua Profa Helena Moura Lacerda, 131 Vl. Leopoldina So Paulo - SP CEP 05319-010 www.politec.com.br

108336228.doc

206 de 206