Nvel Pleno
CICS
108336228.doc
2 de 206
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!
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
ndice Geral
Introduo........................ O que o CICS?............... Benefcios proc. on-line.... Introduo proc. on-line.... Resumo............................. Glossrio........................... Bibliografia........................
09 10 10 12 13 14 15
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
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
Comandos de Exceo........ Handle / Ignore Condition .. Handle Aid / Abend............ Resumo ........................... Glossrio........................... Bibliografia........................
47 47 51 52 53 54
61 61 65 68 69 70
71 71 73 76 77 78
79 79 81 83 83 84
108336228.doc
4 de 206
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.....................
14. VSAM Browse-1............ 14.1 Startbr........ 14.2 ReadNext ...................... 14.3 EndBr............................. 14.4 Resumo ........................ 14.5 Glossrio........................ 14.6 Bibliografia.....................
15. VSAM Browse-2............ 15.1 ReadPrev. .... 15.2 ResetBr. ...................... 15.3 Condies de erro........... 15.4 Resumo ........................ 15.5 Glossrio........................ 15.6 Bibliografia.....................
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...................
17. Controle de programa-1... 17.1 Tab. Assembler............... 17.2 Load.............................. 17.3 Release ......................... 17.4 Resumo.................... 17.5 Glossrio........................ 17.6 Bibliografia.....................
18. Controle de programa-2... 18.1 Start............................. 18.2 Retrieve......................... 18.3 Resumo ........................ 18.4 Glossrio........................ 18.5 Bibliografia.....................
Comandos de espera...... Delay............................. Cancel............................ Post............................... Wait............................... Condies de erro........... Resumo ......................... Glossrio........................ Bibliografia.....................
108336228.doc
5 de 206
21. Conceito de TS................ 21.1 Armazenam/ Temporrio. 21.2 Pseudoconversao......... 21.3 Resumo ........................ 21.4 Glossrio........................ 21.5 Bibliografia.....................
22. Operaes com TS-1........ 22.1 Gravando TS.................. 22.2 Lendo TS........................ 22.3 Resumo ........................ 22.4 Glossrio........................ 22.5 Bibliografia.....................
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...................
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...................
25. Conceitos de TD.............. 25.1 Armazenam. Transitrio.. 25.2 Gravao de TD........... 25.3 Resumo ........................ 25.4 Glossrio........................ 25.5 Bibliografia.....................
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...................
27. Manuseio de Datas......... 27.1 Asktime..................... 27.2 Formattime............... 27.4 Resumo.................. 27.5 Glossrio...................... 27.6 Bibliografia...................
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...................
108336228.doc
6 de 206
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
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
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
108336228.doc
9 de 206
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
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
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
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.
108336228.doc
11 de 206
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
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
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
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
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
xxxxxxxxxxx
PROGRAMA1
ARQUIVO1
108336228.doc
17 de 206
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
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)
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
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
Mdulo 02 Glossrio
Task Tarefa sendo executada na memria Transao Cdigo pelo qual uma tarefa solicitada no terminal.
108336228.doc
21 de 206
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
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;
108336228.doc
23 de 206
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
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
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
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
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
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
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
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
. 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;
108336228.doc
32 de 206
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
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
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
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
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
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.
108336228.doc
38 de 206
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
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
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
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
108336228.doc
42 de 206
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
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
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
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
Mdulo 05 Glossrio
Codificao Escrita de um programa por meio de palavras-chave.
108336228.doc
46 de 206
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
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
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
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.
108336228.doc
50 de 206
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
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
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
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
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
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
Mdulo 07
7.3 BIF: Bif: EXEC CICS BIF DEEDIT FIELD LENGTH (WS-CAMPO) (value) / (LENGTH OF WS-CAMPO)
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
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
Mdulo 07 Glossrio
Dump Representao hexadecimal de uma rea
108336228.doc
59 de 206
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
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
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
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
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
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
- 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)
108336228.doc
65 de 206
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
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
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
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
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
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.
108336228.doc
71 de 206
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
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
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
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
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
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
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.
108336228.doc
78 de 206
Mdulo 10
Citao
108336228.doc
79 de 206
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
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
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
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
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
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
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;
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;
108336228.doc
86 de 206
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
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
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
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
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
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;
MOVE
ABCDE TO
END-EXEC
108336228.doc 92 de 206
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
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
MOVE MOVE
ABCDX TO .. TO
END-EXEC
108336228.doc
94 de 206
108336228.doc
95 de 206
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
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
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;
MOVE
..
TO
END-EXEC
108336228.doc
98 de 206
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
Mdulo 13
13.2 - DELETE: EXEC CICS DELETE EXEC Condies de erro: FILENOTFND, INVREQ, IOERR, NOTFND, NOTOPEN
-
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-
Exemplo:
WORKING STORAGE SETION. 01 WS-COMMAREA. 05 WS-ARQNAME 05 WS-ARQ-CHAVE
VALUE ARQ01A.
FILE RIDFLD
(WS-ARQ-NAME) (WS-ARQ-CHAVE)]
108336228.doc
100 de 206
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
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
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
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
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
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
Mdulo 14
Citao
108336228.doc
107 de 206
Mdulo 14
Exemplo:
WORKING STORAGE SETION. 01 WS-DADOS-CICS. 05 WS-BR-CHAVE 05 WS-BR-RESP 05 WS-BR-AREA
TO
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
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
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
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
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
108336228.doc
113 de 206
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
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
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;
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;
108336228.doc
115 de 206
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
Mdulo 15 Glossrio
Browse Leitura seqencial de arquivo VSAM, a partir de uma chave determinada;
108336228.doc
117 de 206
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
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
108336228.doc
119 de 206
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.
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.
PIC X(100).
END-
108336228.doc
120 de 206
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
Mdulo 16
108336228.doc
122 de 206
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
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
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
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
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
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.
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
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
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
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
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
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
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.
108336228.doc
134 de 206
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
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
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
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-
Especifica a identificao da transao, que pode ser til se quisermos cancelar este START enquanto ainda estiver esperando;
PIC S9X(07)
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
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
- 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-
Especifica um horrio no qual a task ser notificada; Esta opo informa o endereo do ECB (bloco de controle de eventos);
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
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
COMP. COMP.
. . .
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
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
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
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
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
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
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-
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
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-
108336228.doc
148 de 206
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
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
(LK-PTR-1) (LK-PTR-2)
PIC S9(04)
COMP. COMP.
. . .
EXEC CICS ASSIGN END-EXEC CWALENG (WS-LEN-CWA) EXEC END-EXEC END-IF
108336228.doc
150 de 206
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
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
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
Mdulo 21 Conceito de TS
- Armazenamento Temporrio
-
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);
108336228.doc
154 de 206
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
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
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
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
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
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
QUEUE (TERMX01A) (WS-TS-AREA) preenchido (WS-TS-ITEM) CICS devolve (WS-TS-RESP) CICS devolve
END-
108336228.doc
160 de 206
Mdulo 22
Citao
Com o comando READQ possvel recuperar uma TS gravada conforme veremos adiante.
108336228.doc
161 de 206
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
108336228.doc
162 de 206
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
Mdulo 22 Glossrio
Fila Diz-se de um conjunto de informaes gravadas na TS, formando uma espcie de arquivo;
108336228.doc
164 de 206
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
Mdulo 23
23.
23.1 Deleo de TS: EXEC CICS DELETEQ TS END-EXEC QUEUE QUEUE (nome)
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
Mdulo 23
Citao
Vamos apresentar agora as condies de erro possveis, ao tratarmos com os comandos de TS.
108336228.doc
167 de 206
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
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
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
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
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
03 04
21 22#
PF1=Help
PF8=Pag.Ant
Clear=Sai do CICS
24#MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
108336228.doc
172 de 206
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
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;
108336228.doc
174 de 206
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
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
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
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;
DFHTDP
Extrapartition
DFH INTR A
DFHDCT
108336228.doc
DESTID
178 de 206
BATCH REGION
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
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.
108336228.doc
180 de 206
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
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
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
- 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.
108336228.doc
184 de 206
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
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
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
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
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
END-EXEC
108336228.doc
190 de 206
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
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;
108336228.doc
192 de 206
Mdulo 27 Resumo
Foram os modos de se obter a data e o horrio, em seus diversos formatos.
108336228.doc
193 de 206
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
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
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
- 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;
108336228.doc
196 de 206
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
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);
108336228.doc
198 de 206
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
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
- 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
Mdulo 28
Citao
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
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
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
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
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
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