You are on page 1of 52

CICS

Manual de CICS

Pag. 1 / 52

GENERALIDADES. A sigla CICS significa Customer Information Controlo da Informao de Clientes. Control System, o Sistema de

CICS um sistema que proporciona um ambiente de execuo para programas online, ou seja, orientados para o dilogo com o utilizador e proporciona um suporte para o intercmbio de informao com o terminal do utilizador. O ambiente de nica execuo, de modo que para o desenvolvimento h que empregar as ferramentas e ambientes usuais. O sistema multi-utilizador, no s como tal, mas tambm permite que diferentes utilizadores possam trabalhar com o mesmo programa, uma vez conectados com o CICS. Os utilizadores no usam o JCL para lanar a execuo de programas: emitem peties com o CICS e este encarrega-se do resto. Em alguns casos o utilizador dever identificar-se mediante um username e uma password, antes de poder pedir a execuo de um programa. A estrutura do sistema consiste numa srie de mdulos de servio que rodeiam uma rea de memria CICS, na qual se executam os programas do utilizador.

Os mdulos fundamentais do CICS so: TCP Terminal Control Program o Controlador de Terminais. Encarrega-se da protocolizao das peties de execuo, construindo uma pilha com elas. Este mdulo o que limita em ltima instncia o nmero de conexes possveis com o CICS, j que controla um nmero finito de terminais. KCP

Manual de CICS

Pag. 2 / 52

Task Control Program o Controlador de Tarefas. Encarrega-se da validao de acessos, da recuperao das peties de execuo, da multiprogramao e divide as ordens de carga de programas. Controla mediante uma tabela os cdigos de transaco que identificam programas a executar por petio externa que, normalmente no so todos os programas instalados. FCP File Control Program o Controlador de Ficheiros. Encarrega-se da validao dos acessos a ficheiros e do intercmbio de dados com estes. Controla mediante uma tabela os nomes simblicos do ficheiro. PCP Program Control Program o Controlador de Programas. Executa a carga de um programa na memria do CICS. Controla mediante uma tabela executar no ambiente CICS. BMS Basic Mapping Support o Suporte do Formato do cran. Encarrega-se dos intercmbios de informao com os crans, em conjuno com o TCP. O programa do utilizador utiliza os processos de intercmbio da informao. mdulos de servio para executar os os nomes de todos os programas que se podem

Na fase de arranque, o CICS pe em linha todos os recursos da informao de que dispe: Programas Ficheiros Terminais Impressoras de forma que o programa do utilizador no abra nunca um recurso; limita-se a utiliz-los. PROGRAMAS EXECUTADOS DEPOIS DO CICS. Generalidades O programa estar orientado para o dilogo com o utilizador e a execuo ser influenciada pelo desenvolvimento do dito dilogo, que o programa quase nunca ser executado inteiro, como no caso BATCH, mas, normalmente, cada passo do dilogo implicar s instrues. sua lgica de de tal forma dos programas umas quantas

O grupo de instrues que se executa num passo de dilogo denomina-se TAREFA, e a actuao do utilizador que a desencadeia uma TRANSACO.

Manual de CICS

Pag. 3 / 52

Assim, se um programa pede num determinado momento: Introduzir cdigo da operao (A/M/B): a resposta do utilizador (TRANSACO), desencadear uma TAREFA que consiste em: Validar o cdigo e Bifurcar ao mdulo de petio dos dados ou de erro A execuo de um programa no se faz mediante a submisso de um JCL, como no caso dos programas BATCH; o CICS tem uma tabela em que se recolhem os nomes de todos os programas que se podem executar, juntamente com os cdigos identificativos de quatro caracteres denominados cdigos de transaco. A primeira transaco que um utilizador deve executar a identificao do programa que deseja lanar digitando o seu cdigo de transaco. A manuteno da tabela a que se faz referncia, por conta do Departamento de Sistemas, de modo que um novo desenvolvimento exige acordar o cdigo da transaco e o nome para o novo programa com o responsvel da Manuteno do CICS. PECULIARIDADES DA PROGRAMAO: Comandos O programa s poder aceder a recursos de informao atravs dos mdulos de servio do CICS e s poder manejar os recursos descritos aos ditos mdulos. A comunicao com os ditos mdulos resultou mediante um conjunto de instrues agrupadas num suporte denominado High Level Programming Interface o HLPI. O HLPI contm os chamados comandos CICS, que so sentenas no COBOL dirigidas especificamente aos mdulos de servio e que tm a seguinte estrutura: EXEC CICS comando END-EXEC O ponto no necessrio para terminar um comando; s se codificar se a lgica COBOL o requerer. Terminao da execuo Dado que o programa se executa dentro do CICS, este quem supervisa a execuo; o programa, pode portanto, considerar-se como subrotina do CICS. Isto significa que, se ao CICS a quem se pede a execuo de um programa, tambm ao CICS a quem se informa de que a execuo terminou. Por outras palavras, a finalizao da execuo de um programa faz-se devolvendo o controlo ao CICS. Um programa CICS no termina nunca com STOP RUN, desenvolve-se o controlo ao CICS com o comando; EXEC CICS RETURN END-EXEC que, sendo igual ao STOP RUN dos programas BATCH, pode aparecer tantas vezes como se requeira ao longo do programa. Acesso a ficheiros

Manual de CICS

Pag. 4 / 52

Desde o momento em que o CICS, na fase de arranque, quem pe em linha todos os recursos, na codificao dos programas ser omitida toda a referncia descrio, abertura e fecho de ficheiros. No existiro, portanto especificaes como: INPUT-OUTPUT SECTION SELECT FILE SECTION FILE-CONTROL FD OPEN CLOSE Igualmente como os programas, o CICS tem uma tabela em que, para cada ficheiro, esto descritos a sua estrutura fsica, os tipos de acesso (leitura, escrita) vlidos e um nome simblico que se usar no acesso. O acesso ser feito mediante um comando: EXEC CICS comando_de_acesso_a_ficheiro_por_nome_simblico END-EXEC e no se empregaro as instrues usuais READ, WRITE,..... Se, no curso de um desenvolvimento, houver que usar ficheiros novos, no basta s cri-los e carreg-los com dados; h que recorrer mesma mecnica que no caso dos programas para que sejam dados de alta nas tabelas do CICS. Intercmbios de informao com o cran O cran tambm um recurso manejado pelo CICS. As instrues usuais ACCEPT, DISPLAY no so vlidas e os intercmbios fazem-se atravs de um mdulo de servio mediante um comando: EXEC CICS comando_de_intercambio_com_ecran END-EXEC Dilogo CICS - programa Dado que os comandos CICS se dirigem directamente a mdulos de servio do ambiente, a anlise do resultado da execuo de um comando no se pode fazer pelos mtodos usuais, mas atravs de uma rea de comunicaes, subministrada pelo prprio CICS, chamada Execution Interface Block ( EIB ), e por uma srie de cdigos de retorno que se denominam condies excepcionais. A ambos pode acederse ao programa, quer directamente, quer atravs de comandos CICS especiais. Execution Interface Block ( EIB ) 000100 000900* 001000* 001100* DFHEIBLK EIBTIME EIBDATE EIBTRNID REALCICS TIME IN 0HHMMSS FORMAT DATE IN 00YYDDD FORMAT TRANSACTION IDENTIFIER

Manual de CICS

Pag. 5 / 52

001200* 001300* 001400* 001500* 001600* 001700* 001800* 001900* 002000* 002100* 002200* 002300* 002400* 002500* 002600* 002700* 002800* 002900* 003000* 003100* 003200* 003300* 003400* 003500* 003600* 003700* 003800* 003900* 004000* 004100 004200 004300 004400 004500 004600 004700 004800 004900 005000 005100 005200 005300 005400 005500 005600 005700 005800 005900 006000 006100 006200 006300 006400 006500 006600 006700 006800 006900 007000 007100

EIBTASKN EIBTRMID DFHRSVD1 EIBCPOSN EIBCALEN EIBAID EIBFN EIBRCODE EIBDS EIBREQID EIBRSRCE EIBSYNC EIBFREE EIBRECV EIBSEND EIBATT EIBEOC EIBFMH EIBCOMPL EIBSIG EIBCONF EIBERR EIBERRCD EIBSYNRB EIBNODAT EIBRESP EIBRESP2 EIBRLDBK EIBTIME EIBDATE EIBTRNID EIBTASKN EIBTRMID EIBRSVD1 EIBCPOSN EIBCALEN EIBAID EIBFN EIBRCODE EIBDS EIBREQID EIBRSRCE EIBSYNC EIBFREE EIBRECV EIBSEND EIBATT EIBEOC EIBFMH EIBCOMPL EIBSIG EIBCONF EIBERR EIBERRCD EIBSYNRB EIBNODAT EIBRESP EIBRESP2 EIBRLDBK

TASK NUMBER TERMINAL IDENTIFIER RESERVED CURSOR POSITION COMMAREA LENGTH ATTENTION IDENTIFIER FUNCTION CODE RESPONSE CODE DATASET NAME REQUEST IDENTIFIER RESOURCE NAME SYNCPOINT REQUIRED TERMINAL FREE REQUIRED DATA RECEIVE REQUIRED RESERVED ATTACH DATA EXISTS GOTTEN DATA IS COMPLETE GOTTEN DATA CONTAINS FMH RECEIVE COMPLETE FLAG SIGNAL FLAG CONFIRM FLAG LU 6.2 ERROR FLAG LU 6.2 ERROR CODE SYNCPOINT ROLLBACK FLAG NO DATA FLAG ERROR CODE RESPONSE MORE ERROR CODES ROLLED BACK FLAG PICTURE PICTURE PICTURE PICTURE PICTURE PICTURE PICTURE PICTURE PICTURE PICTURE PICTURE PICTURE PICTURE PICTURE PICTURE PICTURE PICTURE PICTURE PICTURE PICTURE PICTURE PICTURE PICTURE PICTURE PICTURE PICTURE PICTURE PICTURE PICTURE PICTURE PICTURE S9(7) COMP-3. S9(7) COMP-3. X(4). S9(7) COMP-3. X(4). XX. S9(4) COMP-4. S9(4) COMP-4. X. X(2). X(6). X(8). X(8). X(8). X. X. X. X. X. X. X. X. X. X. X. X(4). X. X. 9(8) COMP-4. 9(8) COMP-4. X.

Manual de CICS

Pag. 6 / 52

Deteco de teclas de servio. Atravs do EIB o programa pode controlar a tecla de servio (ENTER, CLEAR, PF) com a que se terminou a transaco (campo EIBRCODE) Manejo de cdigos de retorno. O EIB tambm proporciona informao sobre o resultado da execuo de um comando CICS (campo EIBAID). Compilao. Ao conter comandos, um programa CICS no se pode compilar como um compilador normal, j que cada comando produziria um erro. Os procedimentos da compilao antepem ao compilador um TRADUTOR que analisa os comandos CICS e os transforma em instrues COBOL, se esto correctos. O processo consiste em asteriscar os comandos e incluir numa nova fonte as linhas de cdigo correspondentes; a nova fonte a que passa etapa de compilao. No exemplo seguinte mostra-se uma traduo executada pelo Realia: 000100* 000200* 000300* 000400* 000500* 000800 000900 001000 001100 001200 001300 001400 SET DFH0-CMD-RECEIVE-MAP TO TRUE MOVE 'MAPA1' TO DFH0-VAR-MAP SET DFH0-FLAG-MAPSET TO TRUE MOVE 'GRMAP01' TO DFH0-VAR-MAPSET SET DFH0-FLAG-INTO TO TRUE CALL 'MLI_GETADDR' USING MAPA1I DFH0-ADDR-INTO PERFORM DFH0-CALL-CICS END-EXEC EXEC CICS RECEIVE MAP('MAPA1') MAPSET('GRMAP01') emulador CICS de

Ao rever os resultados da compilao haver que procurar erros nas listas: na da traduo e na da compilao. Muitos dos erros da compilao tero a sua origem em comandos CICS errneos e, portanto, no traduzidos. Nota importante. Normalmente, o executvel resultado da compilao e montagem deposita-se directamente na biblioteca de carga do CICS, mas no reconhecido por este at no que se caracteriza como verso actual mediante um dos programas especiais de servio.

Manual de CICS

Pag. 7 / 52

Acesso ao CICS e execuo de programas Conexes e desconexes com CICS Primeiro que tudo, o utilizador h que conectar-se ao CICS, ou seja, abrir uma sesso de CICS no seu terminal. A conexo realiza-se, normalmente, por seleco de opo no painel de TSO. Uma vez em sesso, o CICS informa com uma mensagem de que est rpido para admitir peties de execuo. Os cdigos de transaco escrevem-se sempre nas primeiras posies do cran; para posicionar o cursor (e em caso de apagar ) emprega-se a tecla CLEAR. Antes de conectar-se, o utilizador dever averiguar se necessita identificar-se. Esta identificao pode no ser necessria nos ambientes CICS empregados para provas de aplicaes e sim para os CICS de explorao com dados reais. Se o CICS a que se conectou requerer identificao, o primeiro programa que se deve executar o programa de SIGNON, cujo cdigo de transaco CSSN. Este programa apresenta um cran em que se introduzem os dados: USERNAME PASSWORD e que termina e volta ao CICS, se os dados esto correctos. Ento o utilizador apagar o cran com a tecla CLEAR e introduzir os cdigos de transaco dos programas que deseje executar. A desconexo realiza-se executando um programa cujo cdigo de transaco CSSF, na forma: CSSF LOGOFF o qual termina a sesso do CICS e devolve o controlo ao TSO.

Manual de CICS

Pag. 8 / 52

Execuo de programas depois do controle do CICS A introduo do cdigo de transaco desencadeia uma srie de actuaes do CICS: A transaco deposita-se na pilha da entrada do TCP. No seu devido tempo, processada pelo KCP: Valida-se contra a tabela. Controla-se que o programa associado exista e esteja disponvel. Se no est em memria, passa-se a uma ordem de carga ao PCP. Cria-se uma TASK WORK AREA (TWA), especfica do utilizador e leva-se uma conta do uso do programa. Se o programa est em memria, o CICS tende a utilizar a cpia carregada para processar as transaes que cheguem at ele. A TWA servir para saber para onde vai a execuo das transaes de cada utilizador do programa. Esta multiprogramao sobre executvel, permite poupar memria. As transaes vo-se processando como coordenao a um sistema de interrupes por tempo e aproveitando os tempos de certas entradas/sadas de dados. Se esta multiprogramao no possvel, o PCP recebe ordem para carregar outra cpia do programa; este caso d-se quando o programa est detido espera online da introduo de dados a partir do cran. O programa s se retira da memria do CICS quando o ltimo utilizador realize uma transaco que devolva o controle ao CICS. A programao no necessita ter em conta a reutilizao de uma cpia de um programa por parte do CICS, para atender as transaes de diversos utilizadores; tanto os pontos de controle como os intercmbios de informao esto controlados atravs dos dados que o prprio CICS mantm nas TWAs dos distintos utilizadores do programa. O programador desenhar os seus programas como se fossem para um s utilizador. Programao Todas as instrues pertencem ao set de COBOL, excepto as que se codifiquem para o intercmbio de dados, que sero comandos CICS. Gesto de cdigos de retorno e anomalias. O resultado da execuo de um comando CICS, traa-se mediante a informao contida no EIB. Para isso existem dois mtodos: Investigao directa. Este mtodo consiste em investigar directamente o contedo do campo EIBRCODE do EIB, que conter um valor distinto de zero em caso de anomalia. Tem o inconveniente de que, para poder empreender diferentes actuaes em base a diferentes cdigos de erro, h que conhecer o significado dos distintos valores. Processo de condies excepcionais. o mtodo mais usual. O CICS mantm nomes simblicos para um bom nmero de cdigos de retorno e certos comandos CICS podem bifurcar a execuo se se produzir uma determinada anomalia. Os comandos CICS de gesto de condies excepcionais funcionam como armadilhas, ou seja que entram em aco, a partir do ponto do programa em que tenham sido

Manual de CICS

Pag. 9 / 52

escritos e no necessrio especific-los depois do comando cuja resposta se quer analisar. A forma genrica destes comandos : EXEC CICS HANDLE CONDITION condio( PARAGRAFO ) ....... END-EXEC onde condio o nome simblico da anomalia e PARAGRAFO o nome do pargrafo de tratamento da dita anomalia. A partir do momento em que se execute o comando, sempre que se produza a anomalia condio, a execuo bifurcar ao PARGRAFO. A bifurcao realiza-se por GO TO. No comando pode-se incluir toda uma lista de anomalias a tratar, lista que pode ampliar-se com outra ou outras. Pode ainda especificar-se uma lista total ou parcialmente igual a uma activa, se se deseja, a partir de certo momento processar umas anomalias de forma diferente: EXEC CICS HANDLE CONDITION condio1( PARAGRAFO1 ) ........ END-EXEC ..... ..... EXEC CICS HANDLE CONDITION condio1( PARAGRAFO2 ) ....... END-EXEC O aspecto de uma anomalia permanece activa at que termine o programa ou se execute um comando especial para desactiv-la: EXEC CICS IGNORE CONDITION condio1 ....... END-EXEC Os nomes das condies excepcionais iro aparecendo medida que se vejam os comandos a que faam referncia. Por parmetro no comando. Em qualquer dos comandos CICS, pode-se aumentar o parmetro RESP para forar a devoluo do cdigo de retorno no campo EIBRESP do EIB, na forma: EXEC CICS comando parmetro(valor)

Manual de CICS

Pag. 10 / 52

........ RESP(EIBRESP) END-EXEC IF EIBRESP NOT = 0 < ERROR >. Notas no uso de HANDLE | IGNORE CONDITION.Toda a condio excepcional que se produza e no tenha sido explicitamente HANDLEada ou IGNOREada, provocar uma terminao anormal da tarefa. Para canalizar as condies condio ERROR( PARAGRAFO ). Gesto de teclas de servio O campo DFHAID do EIB contm um cdigo hexadecimal que se corresponde com a tecla de funo que se empregou para terminar uma transaco. O programa pode tomar decises na base do dito cdigo: Por investigao directa. Este mtodo requer, conhecer bem os cdigos correspondentes a cada tecla, ou incluir bem no programa uma instruo COPY que inclua um ficheiro chamado DFHAID, em que se tenha nomes simblicos para cada tecla: DFHENTER DFHCLEAR DFHPF1 - DFHPF12 DFHPA1, DFHPA2 Por processo mediante comando. Como no caso das anomalias, o CICS reconhece as teclas de funo por nomes simblicos, e tem um comando que permite bifurcar a execuo do programa para um pargrafo determinado, se se terminou a transaco que repele em programa com uma delas: EXEC CICS HANDLE AID ENTER(PARGRAFO1) CLEAR(PARGRAFO2) PF1(PARGRAFO3) ..... PF12(PARGRAFO14) PA1(PARGRAFO15) PA2(PARGRAFO16) END-EXEC A filosofia de funcionamento a mesma que a do comando HANDLE CONDITION; a bifurcao realiza-se tambm pelo mtodo GO TO. excepcionais que no se explicitem, existe a

Manual de CICS

Pag. 11 / 52

A tecla CLEAR, que apaga o cran, atribui-se normalmente funo de terminao da execuo do programa. O PARGRAFO correspondente contm, para o geral, a emisso de uma mensagem de fim de execuo e um comando RETURN sem parmetros. Programao Conversacional e Pseudo-conversacional. A programao orienta-se para o dilogo entre o programa e o utilizador de forma que o final de cada tarefa emitir uma mensagem sobre o seu resultado e pedir uma nova transaco. A forma de pedir as transaes condiciona fortemente as possibilidades do CICS de poder reutilizar uma cpia de um programa determinado, se um utilizador diferente reclama a execuo do mesmo programa. O esquema mais imediato, consiste em codificar os comandos de leitura de dados do cran continuao dos de envio de dados, que representa a forma de programao chamada conversacional, introduz uma paragem no programa em espera de dados do cran , que no quantificvel pelo CICS (o utilizador pode ter ido tomar caf). Se durante esse tempo, outro utilizador solicita a execuo desse programa, o CICS manda carregar uma nova cpia, o qual pode criar graves problemas ao CICS quando um programa est a ser utilizado por uma grande multido de utilizadores (p.ex.. um programa de caixa de um Banco ). Se se esgota a memria do CICS, este comea a acumular transaes no TCP e os tempos de resposta comeam a crescer e, dado que este processo no pode continuar indefinidamente, chegar um momento em que o sistema se satura e se 'caia'.

A soluo a este dilema consiste em no pr o comando de leitura de dados do cran imediatamente continuao do comando que envia os dados. Se faz uso de uma caracterstica do CICS, que consiste em que depois de certas condies, o CICS reconhece os dados digitados no cran como transaco para um determinado programa. Estas condies do-se: Ao arrancar o programa. Ao digitar o cdigo de transaco, o CICS aceita dados iniciais para o programa.

Manual de CICS

Pag. 12 / 52

Quando se cria um programa para este caso, deve ir um comando de leitura de dados do cran ao incio do programa. Esta tcnica, de escassa utilizao, pode servir para introduzir por exemplo contra-senhas que, verificadas pelo programa, validariam o acesso de um determinado utilizador a um programa. Ao devolver o controlo ao CICS com um comando de retorno ampliado. Este comando um RETURN com uma indicao expressa de programa com o que h que processar a prxima transaco, em forma de cdigo de transaco: EXEC CICS RETURN TRANSID( 'cdigo_de_transaco' ) END-EXEC Este comando devolve o controle ao CICS de forma explcita, de modo que seja anulada a problemtica do tempo incomensurvel que possa levar a completar a transaco seguinte. O programa, sem embargo, no retirado da conta de uso. O parmetro TRANSID indica ao CICS que a prxima transaco para o programa associado a cdigo_de_transaco. De modo, RETURN, este comando pode especificar-se em todos os pontos do programa que se considere necessrio. Esta tcnica conhece-se com o nome de programao pseudo-conversacional.

H, sem embargo uma diferena fundamental com o mtodo conversacional: quando o utilizador completa a seguinte transaco, o CICS lana a execuo do programa desde o incio, tal e como se o tivesse carregado de novo em memria: os dados de WORKING perdem-se. Programao Pseudo-conversacional e manuteno de dados de WORKING.

Manual de CICS

Pag. 13 / 52

O problema da perda de dados de WORKING inerente a esta tcnica de programao, soluciona-se fazendo uso de outra facilidade que o CICS proporciona para guardar dados. Podem-se guardar dados em reas do CICS chamadas COMMAREAs, formulao seguinte no comando de retorno pseudo-conversacional: EXEC CICS RETURN TRANSID('cdigo_de_transaco') [ COMMAREA( identificativo ) [ LENGTH( n | longitude ) ] ] END-EXEC identificativo O nome de um nvel em WORKING. longitude Um valor numrico | uma varivel em PIC S9(4) COMP. O significado deste comando : Voltar ao CICS at prxima transaco. Guardar em COMMAREA longitude bytes a partir de identificativo. Dado que o CICS est a relanar a execuo do programa desde o incio, como se o houvesse carregado de novo, o comando de leitura de dados do cran dever ir nas sequncias iniciais do programa e ser nico. A devoluo dos dados, faz-se no CICS sobre uma rea chamada DFHCOMMAREA, que espera encontrar na LINKAGE SECTION do programa e que dever ser codificada com nvel 01 pelo programador com a longitude correspondente maior longitude que empregue no programa. 002700 002800 002900 003000 003100 003200 003300 003400 003500 003600 003700 003800 003900 004000 004010 004100 004200 01 01 W-LONG PIC S9(4) COMP. W-COMM. 03 W-OPCION PIC X. 03 W-REG. 05 W-CLAVE-AN PIC X(6). 05 W-CLAVE REDEFINES W-CLAVE-AN. 07 W-TALLER PIC 9. 07 W-FAMILIA PIC 9. 07 W-CODIGO PIC 9(4). 05 W-DESC PIC X(20). 05 W-PRECIO PIC 9(5). 05 W-STOCK PIC 9(5). 05 FILLER PIC X(44). 03 BORRADO PIC X. .................. LINKAGE SECTION. 01 DFHCOMMAREA PIC X(82). empregando a

a sequncia de uso seria: < CARREGAR DADOS EM W-COMM > MOVE 82 TO W-LONG

Manual de CICS

Pag. 14 / 52

EXEC CICS RETURN TRANSID(' XXXX' ) COMMAREA( W-COMM ) LENGTH( W-LONG ) END-EXEC

Notas no uso de COMMAREA Os dados de DFHCOMMAREA devem mover-se para a WORKING, se interessa transmitir todos ou alguns no prximo retorno ao CICS, j que o parmetro COMMAREA do comando faz referncia a um item de WORKING. Na COMMAREA guardaram-se no s dados numricos e alfanumricos, mas tambm indicadores que possam servir para canalizar a execuo quando o CICS relance o programa. A COMMAREA especfica da sesso utilizador-programa. necessita ter em conta o multiuso do programa. O parmetro LENGTH obrigatrio. Em cada retorno ao CICS, pode variar-se a longitude dos dados a guardar da forma que mais convenha. O CICS devolve a longitude dos dados actualmente guardados no campo EIBCALEN do EIB, quando relana o programa. O valor deste campo zero a primeira vez que se executa o programa ou se em RETURN TRANSID no se especifica COMMAREA. A DFHCOMMAREA pode subdividir-se em nveis da forma que mais convenha. Os nveis de identificativo e de longitude podem ser quaisquer, excepto 88. O CICS interpreta a longitude dos dados a guardar em binrio. Uma longitude de 82 numa varivel PIC S9(4) COMP-3, pode originar resultados funestos na execuo. No comando EXEC CICS RETURN END-EXEC no se pode empregar o parmetro COMMAREA. Ao especificar a longitude da COMMAREA, tenha-se em conta que o CICS no reconhece que o item W-COMM tem 82 bytes de longitude; se neste caso se especifica um nmero maior, enviar-se-o dados a guardar em reas prximas. O programador no

Manual de CICS

Pag. 15 / 52

Comandos CICS Intercmbios com o cran O intercmbio com o cran realiza-se atravs de um mdulo do CICS chamado Basic Mapping Support o BMS. Este mdulo encarrega-se de processar tanto a informao que se envia a um cran , como os dados da transaco que realiza o utilizador. No primeiro caso, em conjuno com o TCP, adapta-a ao cran que h de aparecer, e no segundo caso, transforma-a em dados processveis pelo programa que os vai receber. Intercmbios com o cran (No Formatada)

Manual de CICS

Pag. 16 / 52

Envio de dados para o cran. EXEC CICS SEND FROM( W-AREA ) LENGTH( n | W-LONG ) [ ERASE ] END-EXEC W-AREA rea de WORKING que contm dados a enviar n | W-LONG Longitude da W-AREA que se deseja emitir, que pode ser um valor imediato ou o nome de uma varivel numrica no PIC S9(4) COMP, carregada com o valor requerido. Sobre o ajuste da longitude vale o que se diz no caso da COMMAREA. ERASE Provoca um apagamento no cran , antes de enviar os dados. Recepo de dados do cran EXEC CICS RECEIVE INTO( W-AREA ) [ LENGTH( W-LONG ) ] END-EXEC W-AREA rea de WORKING na que se deseja receber os dados. W-LONG Deve referenciar uma varivel numrica PIC S9(4) COMP, que se carregar com a longitude do dado a receber ou a mxima esperada. Condies excepcionais LENGERR A longitude dos dados maior que W-LONG. Destes dois comandos, emprega-se primeiro para indicar o fim de uma execuo quando o utilizador prime a tecla CLEAR. Acesso a Ficheiros Os ficheiros so abertos pelo CICS na fase de arranque, de modo que o programa no incluir nenhuma sentena usual de descrio, fecho, abertura ou acesso e limitar-se- a us-los empregando os comandos CICS de acesso.

Manual de CICS

Pag. 17 / 52

Cada acesso a um ficheiro faz com que o CICS comprove que se refenrencia um dos ficheiros da tabela do FCP e que o tipo de acesso um dos que tem registados. O CICS s suporta ficheiros VSAM KSDS. Leitura indexada. EXEC CICS READ DATASET( 'nome_do_ficheiro' | identificador ) INTO( W-REGISTRO ) [ LENGTH( W-LONG ) RIDFLD( W-CLAVE ) [ KEYLENGTH( n ) [ GTEQ ] END-EXEC nome_do_ficheiro | identificador Nome simblico do ficheiro. Pode escrever-se de forma explcita, entre aspas, ou carregar no identificador, que ser uma varivel PIC X(8). O nome do ficheiro h de estar registado na tabela de controle do FCP. W-REGISTRO rea do WORKING destino dos dados. LENGTH Indica ao CICS a longitude do registo que se vai ler ou a mxima esperada. Deve referenciar uma varivel numrica PIC S9(4) COMP. RIDFLD Procura-se o registo cuja chave est contida na rea do WORKING W-CLAVE. W-CLAVE no tem que ser necessariamente uma subdiviso do W-REGISTRO. KEYLENGTH( n ) GENERIC Procuras por chave genrica. Se se especfica, o CICS ocupar s os n primeiros bytes do W-CLAVE. GTEQ Procura por maior ou igual. O defeito procura por igual. GENERIC ] ]

Condies excepcionais:

Manual de CICS

Pag. 18 / 52

NOTOPEN Ficheiro no aberto. Pode ocorrer se o ficheiro est danificado, ou se foi posto fora da linha com uma transaco de servio. DSIDERR Nome do ficheiro no em tabela. NOTFND Registo no encontrado. LENGERR Se se h especificado LENGTH, longitude de registo maior que W-LONG; os dados foram trocados. INVREQ Acesso no vlido. ILLOGIG Erro lgico VSAM. No seguimento deste apartado, s se iro comentar os parmetros novos. Leitura sequencial por ordem de chave. Esta modalidade permite recuperar registos por ordem de chave, tanto ascendente como descendente, dizer, que se podem ler registos para a frente e para trs. Antes de comear, sem embargo, h que criar um entorno BROWSE ficheiro; a leitura sequencial ser movida dentro do dito entorno. dentro do

O entorno BROWSE estabelece-se desde um determinado registo at ao final do ficheiro. Browse. Estabelecer entorno. EXEC CICS STARTBR DATASET( 'nome_do_ficheiro' | identificador ) RIDFLD( W-CLAVE ) [ KEYLENGTH(n) GENERIC ] [ GTEQ ] END-EXEC O entorno estabelece-se desde o registo que cumpre as especificaes de procura, at ao final do ficheiro. Este comando no l o registo, s pe um ponteiro no registo localizado.

Manual de CICS

Pag. 19 / 52

Condies excepcionais NOTOPEN DSIDERR NOTFND No se encontra registo no incio do entorno. No se estabelece BROWSE. ILLOGIC Anular entorno. EXEC CICS ENDBR DATASET( 'nome_do_ficheiro' | identificador ) END-EXEC O entorno fica anulado. Tambm o anulam os comandos RETURN e RETURN TRANSID. Voltar ao registo do incio do entorno. EXEC CICS RESETBR DATASET( 'nome_do_ficheiro' | identificador ) END-EXEC Uma forma fcil de retomar o incio do entorno, depois de ter-se movido lendo dentro dele. Condies excepcionais Para estes dois comandos, so as mesmas que as do comando STARTBR, excepto NOTFND. Leitura sequencial no entorno. EXEC CICS READNEXT | READPREV DATASET( 'nome_do_ficheiro' | identificador ) INTO( W-REGISTO ) [ LENGTH( W-LONG ) ] RIDFLD( W-CLAVE ) [ KEYLENGTH( n ) ] END-EXEC O CICS utiliza o contedo do W-CLAVE para localizar o seguinte registo em ordem de chave ascendente ( READNEXT ) ou descendente ( READPREV ), excepto se o comando vai imediatamente atrs do STARTBR ou RESETBR, em cujo caso l-se o registo no incio do entorno. Esta peculiaridade faz com que sejam possveis saltos tanto para a frente como para trs, sem variar adequadamente o contedo do W-CLAVE antes de executar o comando de leitura.

Manual de CICS

Pag. 20 / 52

Condies excepcionais NOTOPEN DSIDERR ENDFILE Fim do ficheiro. Se foi planeado ler depois do ltimo registo do entorno; se se retrocede fora do entorno, no se produz condio excepcional. Este comando nunca produz a condio NOTFND. ILLOGIC Escritura de registos. A escritura sempre indexada, j que o CICS s suporta ficheiros VSAM KSDS. EXEC CICS WRITE DATASET( 'nome_do_ficheiro' | identificador ) FROM( W-REGISTO ) [ LENGTH( n | W-LONG ) ] RIDFLD( W-CLAVE ) END-EXEC LENGTH Pode utilizar-se, bem como um valor imediato, ou como uma varivel numrica em PIC S9(4) COMP para indicar os bytes que se vo gravar em W-REGISTRO. RIDFLD Indica uma varivel que contm o valor da chave do registo a gravar. Condies excepcionais NOTOPEN DSIDERR DUPREC Chave repetida a nvel do Indice Primrio. No se grava o registo. DUPKEY Chave repetida a nvel do ndice Alternativo. Grava-se o registo se o ndice admite repeties. ILLOGIC

Modificao de registos. Previamente modificao h que bloquear o registo a tratar. Isto faz-se com uma variante do comando de leitura indexada: EXEC CICS READ .......

Manual de CICS

Pag. 21 / 52

...... UPDATE END-EXEC Condies excepcionais So as mesmas que as do comando de leitura. INVREQ ( acesso no vlido ) pode ocorrer tambm pelo facto de que outra tarefa j tenha bloqueado o registo que se pretende bloquear. O registo fica bloqueado, at que se modifique, se apague ou se anule o bloqueio com um comando: EXEC CICS UNLOCK DATASET( 'nome_do_ficheiro' | identificador ) END-EXEC ou se chegue a um comando RETURN ou RETURN TRANSID. O bloqueio de um registo no dever fazer-se mais quando j se tenha decidido fazer a modificao, j que realmente no possvel bloquear um s registo. O VSAM bloqueia todo um Intervalo de Control. Por outra lado, num ambiente de programao pseudo-conversacional, a tcnica de bloqueio imediatamente antes da modificao, vem imposta pelo facto de que depois da leitura de apresentao de um registo, se sai do programa com RETURN TRANSID. A modificao faz-se com o comando: EXEC CICS REWRITE DATASET( 'nome_do_ficheiro' | identificador ) FROM(W-REGISTO) [ LENGTH( W-LONG ) ] END-EXEC Condies excepcionais NOTOPEN DSIDERR ILLOGIC Apagar registos. Para apagar h dois mtodos: Registo bloqueado. EXEC CICS READ ....... ...... UPDATE

Manual de CICS

Pag. 22 / 52

END-EXEC EXEC CICS DELETE DATASET( 'nome_do_ficheiro' | identificador ) END-EXEC Para este mtodo vale o dito no comando REWRITE no que respeita aos bloqueios. Por chave. EXEC CICS DELETE DATASET( 'nome_do_ficheiro' | identificador ) RIDFLD( W-CLAVE ) [ KEYLENGTH( n ) GENERIC ] END-EXEC Este comando pode apagar registos com chave nica W-CLAVE atravs do ndice Principal, chaves repetidas atravs de ndices Alternativos e chaves genricas atravs de ambos os tipos de conjuntos de ndices.

Intercmbios com o cran ( Formatado ) O envio e recepo de dados formatados entidades de BMS chamadas mapas ( MAPS ). faz-se depois do controlo de umas

Um mapa um programa de controle que permite colocar displays sobre o cran itens numa certa ordem e em posies pr-determinadas. O mapa BMS, compe-se de dois elementos: Mapa fsico O programa de controlo em si. Mapa lgico Um subproduto da gerao do anterior em forma de uma estrutura a incluir no programa, e que define reas de WORKING para a recepo e o envio dos dados.

Manual de CICS

Pag. 23 / 52

Os mapas agrupam-se em grupos de mapas ou MAPSETS. Dada a grande quantidade de mapas que se podem chegar a utilizar entre todos os programas de todas as aplicaes CICS, este no regista os mapas em si, seno os MAPSETS, de modo que so estes os que se levam nas tabelas do entorno. No caso de ter que desenvolver um mapa novo, o programador tem duas opes: Incluir o mapa num dos MAPSETS j existentes. Abrir um novo MAPSET, para o qual ter que pr-se em contacto com a pessoa responsvel do CICS, para que pratique a entrada correspondente nas tabelas. A descrio destas entidades faz-se mediante umas instrues chamadas macros BMS, que tm o formato DFHMxx e s que se afectam com um nmero de parmetros. O formato de uma macro BMS :

onde label uma etiqueta opcional e o carcter X (pode variar segundo o sistema), na coluna 72 indica continuao da instruo na coluna 16 da seguinte linha. Os parmetros podem ver-se afectados por vrios valores; e nesse caso escrevemse entre parntesis e separados por vrgulas. Descrio de mapas e grupos MAPSET. Define-se com a macro DFHMSD: nomset DFHMSD TYPE=DSECT | MAP | &SYSPARM, [ STORAGE=AUTO, ] [ CTRL=( FSET | FRSET,FREEKB ), ] DATA=FIELD | BLOCK, [ EXTATT=YES, ] TIOAPFX=YES | NO, MODE=IN | OUT | INOUT, LANG=ASM | COBOL | PLI | RPG, [ VALIDN=( MUSTFILL,MUSTENTER ) ] nomset Nome do MAPSET ( mximo 7 caracteres ) e deve estar registado nas tabelas do CICS. TYPE Tipo de mapas a criar:

Manual de CICS

Pag. 24 / 52

DSECT S mapas fsicos. MAP S mapas lgicos. &SYSPARM Utilizar como guia o contedo da varivel do sistema ( normalmente instala-se com um valor que faz com que se criem ambos os tipos de mapas ). STORAGE=AUTO Cada mapa ocupa a sua prpria memria e no se redefinem. A alternativa BASE=nome_rea. CTRL Operaes complementares ao display dos mapas: FSET Todos os campos em estado activo. FRSET Todos os campos em estado inactivo. O significado dos termos activo e inactivo explica-se na recepo de dados. FREEKB Liberar o teclado, que o BMS bloqueia no princpio, obrigando a premir a tecla RESET. DATA Formato dos dados na comunicao BMS-programa: FIELD Cada dado no formato e tamanho do seu campo respectivo. o defeito. BLOCK Dados bloqueados com um prefixo de longitude. EXTATT=YES Incluir no mapa lgico campos para a gesto de atributos estendidos (cor, vdeo inverso). TIOAPFX

Manual de CICS

Pag. 25 / 52

Deve especificar-se YES, se se deseja executar o intercmbio de dados at, e desde a rea de mapa lgico de WORKING, j que o defeito NO. MODE Tipo de operao de entrada/sada: IN S entrada. OUT S sada. INOUT Entrada e sada. LANG Linguagem de criao dos mapas simblicos. O defeito ASM ( Assembler ). VALIDN MUSTFILL H que preencher todos os campos MUSTENTER H que teclar ao menos uma posio em todos os campos. Estes parmetros afectam todos os mapas de MAPSET.

MAPA EN MAPSET. Define-se com a macro DFHMDI: nommap DFHMDI SIZE=( linhas,colunas) , [ LINE=linha,COLUMN=coluna, ] [ CTRL=( FSET | FRSET,FREEKB ), ] [ DATA=FIELD | BLOCK, ] [ TIOAPFX=NO | YES, ] [ VALIDN=( MUSTFILL,MUSTENTER ) ] nommap Nome do mapa ( mximo 7 caracteres ).

Manual de CICS

Pag. 26 / 52

SIZE Tamanho do mapa em linhas por colunas. LINE,COLUMN Posio do mapa no cran; posio da esquina superior esquerda. Os restantes parmetros tm o mesmo significado que no caso do MAPSET. A sua especificao pode corrigir o que se tenha feito naquele.

ITEM EN MAPA. Define-se com a macro DFHMDF: [label] DFHMDF POS=nmero | ( linha,coluna ), LENGTH=nmero, [ ATTRB=( [ control_cursor ][,tipo][,representao][,] [ IC ][ ,FSET ] ), ] [ INITIAL='tira', ] [ JUSTIFY=(LEFT | RIGHT,BLANK | ZERO), ] [ PICIN='tira', ] [ PICOUT='tira', ] [ GRPNAME=nome_gupo, ] [ OCCURS=nmero, ] [ VALIDN=( MUSTFILL,MUSTENTER ) ] LABEL Cumpre dois cometidos: Se se deixa em branco Define o item como literal, sem reflexo no mapa lgico. Se se especifica ( mximo 7 caracteres ) Define o item como campo de dados e o item refletir-se- no mapa lgico para o processo do seu contedo. POS Posio do campo dentro da janela que define o mapa. LENGTH A longitude do item. ATTRB control_cursor ASKIP Salto automtico. UNPROT Campo no protegido; podem-se digitar dados. PROT Campo protegido; s se podem premir as teclas de tabulao, retorno de carga e ENTER.

Manual de CICS

Pag. 27 / 52

tipo NUM Campo numrico. representao NORM Intensidade normal. BRT Brilhante. DRK Invisvel. IC O cursor aparecer neste campo. FSET Campo em estado activo. INITIAL Valor inicial que se quer atribuir ao campo. Se se ultrapassa a coluna 71, pe-se o carcter de continuao na 72 e continuase na linha seguinte na coluna 16, sem abrir novas aspas. JUSTIFY Alineao de dados dentro do campo e recheio de posies no significativas: LEFT | RIGHT Alineao direita | esquerda. BLANK | ZERO Recheio com brancos | zeros. PICIN PICOUT Aspecto dos dados entrada e sada. A mscara codifica-se entre aspas simples, no se pode utilizar a frmula de repetio. GRPNAME Associao do campo a outro como nvel superior. OCCURS Definio de tabelas.

Notas A omisso da etiqueta, declara o campo como um literal. Ao no reflexar-se este no mapa lgico, quase obrigatrio empregar o parmetro INITIAL e assinalar o atributo ASKIP. A utilizao do PICOUT como formato de edio pode acarretar problemas na recepo de dados numricos, dado que os pontos e vrgulas da mscara no so valores numricos. Veja-se o comando BIF DEEDIT na seco de comandos especiais. A longitude do campo ter de especificar-se como conserto ao tamanho real que vai a ocupar no cran, caracteres de edio incluidos. O BMS representa fisicamente o atributo como uma posio mais no cran, esquerda do campo. Por isso h que ter-se a precauo para no cruzar campos consecutivos. A primeira coluna disponvel de uma linha a 2, pelo display de atributo.

Manual de CICS

Pag. 28 / 52

Normalmente o campo define-se de modo que quepa inteiro numa linha. O BMS no reconhece no cran mais que os inicios do campo, o qual faz com que se possa seguir teclando mais alm do fim. Isto no princpio no apresenta inconveniente, pois s sero entregues na recepo as posies definidas para o campo, pode ser causa de que se tecle fora de um campo a informao correspondente. A soluo normalmente adoptada consiste em definir terminadores ( campos ASKIP,DRK ) de tal forma que o seu byte de atributo caia imediatamente continuao da ltima posio teclvel de um campo.

Fim da descrio. No fim da descrio, a continuao da ltima DFHMDF, do ltimo mapa, do grupo, assinala-se com uma macro DFHMSD: DFHMSD TYPE=FINAL END Gerao do grupo de mapas. Estrutura do mapa lgico A fonte de descrio, sempre de um grupo completo, processa-se mediante um compilador especial, que gerar: S mapas fsicos TYPE=DSECT S mapas lgicos TYPE=MAP Ambos TYPE=&SYSPARM O mapa lgico contir: Uma s especificao da rea MODE IN e MODE OUT. Duas especificaes da rea MODE INOUT. O gerador utiliza o nome do mapa para nomear as reas do mapa lgico, denominando a rea de entrada MAPAI e a de sada MAPAO, se o nome do mapa MAPA e segundo o parmetro TYPE da macro DFHMSD. A estrutura do mapa lgico que se chama MAPA1, com MODE=INOUT, DATA=FIELD e dois campos de dados CAMPO1 e CAMPO2, dos quais o primeiro numrico de cinco posies e o segundo alfanumrico de vinte, :

Manual de CICS

Pag. 29 / 52

Macros BMS. ........... MAPA1 DFHMDI SIZE=( 24,80 ) , CTRL=( FRSET,FREEKB ), DATA=FIELD, TIOAPFX=YES CAMPO1 DFHMDF POS=( linha,coluna ),

LENGTH=5, ATTRB=( UNPROT,NUM ) CAMPO2 DFHMDF POS=( linha,coluna ), LENGTH=20, ATTRB=UNPROT

Mapa lgico em WORKING. 01 MAPA1I. 02 FILLER PIC X(12). 02 CAMPO1L 02 CAMPO1F PIC S9(4) COMP. PIC X. PIC X.

02 FILLER REDEFINES CAMPO1F. 03 CAMPO1A 02 CAMPO1I 02 CAMPO2L 02 CAMPO2F PIC 9(5). PIC S9(4) COMP. PIC X. PIC X.

02 FILLER REDEFINES CAMPO2F. 03 CAMPO2A 02 CAMPO2I 01 PIC X(20).

MAPA1O REDEFINES MAPA1I.

02 FILLER PIC X(12). 02 FILLER PIC X(3). 02 CAMPO1O 02 CAMPO2O FILLER consequncia de TIPOAPFX=YES e contm informao de controlo necessria para entregar os dados no mapa lgico. CAMPOxL Contir a longitude do campo em recepo. PIC 9(5). PIC X(20). 02 FILLER PIC X(3).

Manual de CICS

Pag. 30 / 52

CAMPOxA Contir em atributo do campo em recepo. CAMPOxI CAMPOxO Contiro o dado.

Notas Gerao. Os nomes do campo, mapa e grupo no podem exceder 7 caracteres de longitude. Os nomes do campo e mapa tm de ser nicos em todo o grupo. O primeiro mapa de um grupo pode levar o mesmo nome que o grupo. O caso DATA=BLOCK no d lugar a um mapa lgico como o de cima, mas s a uma rea seguida, na que os dados se entregaro precedidos de uma etiqueta que indica a sua longitude real. Tem a vantagem de poupar caracteres em transmisso, mas complica enormemente o processo, pelo que apenas se utiliza. O mapa lgico inclui-se no programa COBOL codificado, normalmente na WORKING, uma instruo COPY nomset.

Transmisso de dados e MDT. Um dos pontos dbeis do CICS a sua sensibilidade a congestes na transmisso de dados, sobretudo na recepo. A sobrecarga faz que o sistema funcione cada vez mais devagar, e chegando saturao, se produza uma cada.

Manual de CICS

Pag. 31 / 52

Mediante tcnicas adequadas, desnecessria de dados.

programador

deve

evitar

transmisso

Uma destas tcnicas consiste na gesto adequada de um indicador a nvel de campo chamado Modified Data Tag ou MDT. Este indicador toma os valores: MDT=0 No se h digitado nada. MDT=1 H-se digitado ao menos uma posio. de tal modo que s se transmitem desde o terminal os campos cujo MDT valha 1, dizer todos os campos activos. O MDT pe-se em 1: Digitando ao menos uma posio do campo Utilizando o atributo FSET na definio do campo, mapa ou grupo. O MDT pe-se a 0: Utilizando o atributo FRSET na definio de campo, mapa o grupo com um comando de envio de dados. O atributo FSET no deveria ser utilizado, j que tem como consequncia a transmisso do dado que contm um campo, ainda que no se tenha digitado nada. O dado dever tratamento. ter sido melhor guardado em COMMAREA para o seu posterior

Os mapas deveriam definir-se sempre com os campos inactivos (FRSET).

Recepo de dados do cran. EXEC CICS RECEIVE MAP( 'nome_do_mapa' | identificador ) [ MAPSET( 'nome_do_mapset' | identificador ) [ INTO( identificador END-EXEC ) ] ]

Manual de CICS

Pag. 32 / 52

MAPSET Pode omitir-se, se o mapa tem o mesmo nome do grupo. INTO Pode omitir-se, se o mapa lgico de entrada tem o mesmo nome do mapa com o sufixo I. Identificador Os nomes do mapa e grupo podem carregar-se numa varivel PIC X(8). O BMS l do cran os campos activos (MDT=1), e utiliza os prefixos de cada campo no mapa lgico para depositar neles a longitude do campo e o atributo respectivamente. Para DATA=FIELD, a longitude a da definio. O identificador de nome igual ao do campo com encolunado como arranjo natureza e/ou definio. o sufixo I, contm o dado

Para os campos inactivos, o BMS recebe um s carcter, e com base nele, efectua o recheio dos identificadores associados ao campo seguinte forma: 0 - longitude. LOW-VALUES - ao atributo e ao campo de entrada. Se um campo tiver sido apagado com a tecla EOF, o BMS envia: 0 - longitude. X '80' - ao atributo. LOW-VALUES - ao campo de entrada.

Condies excepcionais. MAPFAIL Tem duas causas: O cran no est formatado. Tal o caso quando se ensaia RECEIVE no incio do programa e a transaco la inicial ( cdigo de transaco ). No se recebeu nenhum dado Os campos esto inactivos e no se digitou nada. Envio de dados para o cran. EXEC CICS SEND MAP( 'nome_do_mapa' | identificador ) [ MAPSET( 'nome_do_set' | identificador ) ]

Manual de CICS

Pag. 33 / 52

[ FROM( identificador ) ] [ ERASE | ERASEUP ] [ CURSOR( n ) | CURSOR ] [ MAPONLY | DATAONLY ] [ FRSET ] [ ACCUM ] END-EXEC FROM Pode omitir-se se o identificador contm o nome do mapa com o sufixo O. ERASE Apaga o cran antes do display. ERASEUP apaga os campos UNPROT antes do display. CURSOR( n ) Coloca o cursor na posio n do mapa. CURSOR Coloca o cursor no primeiro campo cuja longitude, antes do envio dos dados, se tenha carregado con -1. MAPONLY Envia s o mapa fsico. DATAONLY Envia s o mapa lgico. FRSET Pe a zero os MDTs de todos os campos. ACCUM O envio retm-se e acumula-se a mensagem em forma de pgina, sinalizando-se a acumulao com a condio excepcional OVERFLOW. Finalizada a acumulao de mensagens, inicia-se transaco de servio do CICS com o comando: EXEC CICS SEND PAGE END-EXEC o display invocando uma

Manual de CICS

Pag. 34 / 52

que habilita a paginao mediante teclas PF. Condies excepcionais. INVMPSZ Tamanho de mapa incorrecto. OVERFLOW Produz-se na acumulao de mensagens.

Notas no uso de SEND MAP. Em mapas INOUT, recomendvel apagar com LOW-VALUES a rea de sada, antes de carregar os dados; os campos de sada no carregados no se transmitiro para o cran. Os itens com sufixo A o F podem empregar-se para mover para eles valores que troquem para o prximo envio os atributos do campo. Assim, se se detectou que um campo contm um valor que no se deve modificar (p.ex. a chave de um registo cujos dados se apresentam para modificao), pode actualizar-se o atributo do campo para ASKIP, de modo que o cursor no se detenha. O sistema subministra um ficheiro, que nos bytes de atributo, se os h designado por nomes simblicos, chamado DFHBMSCA; este fichero pode incluir-se na WORKING do programa mediante uma instruccin COPY. Se se h pedido a incluso de atributos estendidos ( EXTATT=YES ), o gerador inclui no prefixo de cada campo no mapa lgico um campo mais no que se entrega/pode negociar-se o dito atributo.

DFHBMSCA Atributos do campo. DFHBMASK ASKIP DFHBMUNP UNPROT DFHBMUNN UNPROT,NUM DFHBMPRO PROT DFHBMBRY BRT DFHBMDAR DRK DFHBMFSE FSET DFHBMPRF PROT,FSET DFHBMASF ASKIP,FSET DFHBMASB ASKIP,BRT

Atributos estendidos.

Manual de CICS

Pag. 35 / 52

Cor. DFHDFCOL DFHBLUE DFHRED DFHPINK DFHGREEN DFHTURQ DFHYELLO DFHNEUTR Apresentao. DFHDFHI Brilhante DFHBLINK Pestanejo DFHREVRS Vdeo inverso DFHUNDLN Sombreado Caracteres de controle para sada no formatadas impressora. DFHBMPNL New Line DFHBMPEM Fim da mensagem. Cor por defeito

Ferramentas Suplementares. Filas de Registos. As filas de registos empregam-se para a gesto de dados no CICS. A sua utilizao supe necessidades traadas. uma anlise prvia da adequao da ferramenta s

As ferramentas de manejo de Listas so TRANSIENT DATA ( TD ) e TEMPORARY STORAGE ( TS )

TANSIENT DATA ( TD ). Gesto de Dados Transitrios. A funo TD compreende basicamente: Os mdulos de controle de Dados Transitrios Uma tabela de destinos ( DCT ). Uma srie de mandatos para peties ao TD e causa dos servios: Manejo de Listas ( Dados Intrapartio ) Suporte de ficheiros sequenciais ( Dados Extrapartio ).

Manual de CICS

Pag. 36 / 52

Tanto num caso como no outro, o tipo de dado define-se numa Tabela de Destinos na qual se identifica por meio de um cdigo de quatro caracteres e se descreve o tipo e configurao. Dados Intrapartio ( TD INTRA ). Listas de Registos caractersticas: armazenados em ficheiros VSAM ESDS e tm estas

O programador do sistema pode defini-las como reusveis ou no reusveis. Uma lista no reusvel s permite uma leitura, j que s se mantm leitura sequencial para a frente. A efeitos internos, o CICS considera como apagado um registo lido. Os registos podem ser de longitude varivel. As operaes admitidas so: leitura, escrita de um registo e moldagem da lista. S se pode associar o arranque automtico de uma tarefa quando o nmero de registos armazenados na lista chegue a um valor determinado (trigger). Dados extrapartio ( TD EXTRA ). So ficheiros sequenciais definidos como tais na DCT. Pode-se ler e escrever. No se pode vaziar o fichero. As operaes de intercmbio de dados executam-se mediante os comandos: Leitura. EXEC CICS READQ TD QUEUE( 'nome' | identificador ) INTO( identificador ) [ LENGTH( identificador ) ] END-EXEC nome o da lista a aceder, em forma explcita, entre vrgulas, ou carregado numa varivel PIC X(8). H de existir na Tabela de Control de Destinos. INTO Aponta a uma rea de WORKING, destino dos dados. LENGTH Especifica uma varivel em PIC S9(4) COMP que contm a longitude dos dados a ler, ou a maior esperada.

Condies excepcionais. NOTOPEN Lista no disponvel.

Manual de CICS

Pag. 37 / 52

O ficheiro que a suporta no est aberto. LENGERR Se se especifica LENGTH, longitude dos dados excede ao indicado. QIDERR Lista no existe. QZERO Lista no reusvel vazia ou que h chegado ao fim.

Escrita. EXEC CICS WRITEQ TD QUEUE( 'nome' | identificador ) FROM( identificador ) [ LENGTH( n | identificador ) ] END-EXEC Condies excepcionais. NOTOPEN NOSPACE No h espao no disco. QIDERR

Vazio. EXEC CICS DELETEQ TD QUEUE( 'nome' | identificador ) END-EXEC Condies excepcionais. QIDERR

TEMPORARY STORAGE ( TS ).

Manual de CICS

Pag. 38 / 52

Memria Temporria. Listas de Registos, que no necessitam estar registadas em nenhuma tabela, suportadas: Em memria Em disco ( VSAM ESDS ). As caractersticas mais importantes so: Criao dinmica de listas. Recuperao sequencial ou ao acaso. Actualizao. Registos de longitude varivel. Apagamento e destruio de uma lista. Os registos das listas TS ( itens ), podem recuperar-se mais de uma vez. A lista em si pode definir-se de tal forma que o CICS a guarde de uma sesso para outra, ainda que no princpio ser uma lista que se perder ao parar o CICS. O acesso faz-se com os comandos: Leitura. EXEC CICS READQ TS QUEUE( 'nome' | identificador ) INTO( identificador ) [ LENTGH( identificador ) ] ITEM( n ) | NEXT END-EXEC nome Lista que se quer aceder, uma tira de at oito caracteres ou o valor de uma varivel PIC X(8). INTO Aponta a uma rea em que se vai receber o item. LENGTH Referencia uma varivel em PIC S9(4) COMP na que se deposita desperada do item ou a mxima longitude que se pretende ler. ITEM( n ) Recuperar o item nmero n. NEXT Recuperar o item seguinte ao ltimo lido. Condies excepcionais.a longitude

Manual de CICS

Pag. 39 / 52

QIDERR Nome lista no encontrado. ITEMERR Com ITEM( n ) Item no encontrado. Com NEXT Fim da lista.

Escrita. EXEC CICS WRITEQ TS QUEUE( 'nome' | identificador ) FROM( identificador ) [ LENGTH( n | identificador ) ] [ ITEM( n ) [ REWRITE ] ] MAIN | AUXILIARY END-EXEC nome o da lista a aceder e ser uma tira de at oito caracteres. Pode escrever-se de forma explcita, entre vrgulas, ou carreg-lo numa varivel PIC X(8). Se no se emprega o parmetro REWRITE e a lista no existe, o CICS cria-a e mantm-na acessvel a todas as tarefas. O problema de evitar comparties de dados no desejadas, soluciona-se gerando nomes de lista nicos por tarefa, por exemplo, encadeando os contedos dos campos TRNID e TRMID do EIB, ( respectivamente identificativo de transaco e do terminal ). ITEM( n ) Assinalar ao item a gravar o nmero n. Se no se especfica, o CICS assinala o nmero do ltimo mais um. REWRITE Actualizar o item n. Se se especfica, h que especificar tambm ITEM. MAIN Se a lista no existe, cria-se em AUXILIARY, que cria a lista em disco. Condies excepcionais.memria. A alternativa e o defeito

Manual de CICS

Pag. 40 / 52

QIDERR Com REWRITE, nome da lista no encontrado. ITEMERR Com ITEM Item j existente. Com ITEM e REWRITE Item no encontrado.

Apagado. EXEC CICS DELETEQ TS QUEUE( 'nome' | identificador ) END-EXEC Condies excepcionais. QIDERR

Gesto de dados por pontos. Este mtodo permite a gesto de dados por acesso directo s reas de dados do CICS, evitando o trabalho ( e tempo ) de ter que transvas-los s reas do WORKING do programa. O mtodo uma alternativa ao visto, at agora chamado MODO MOVE e constitui o MODO LOCATE em que as referncias INTO que especificam reas de WORKING, substituem-se por referncias a pontos. O modo LOCATE consiste em utilizar directamente os dados que o CICS deposita na COMMON WORK AREA ( CWA ) e que, no modo MOVE, transvasam-se a reas de WORKING do programa. Por isso, utilizam-se espelhos das reas de dados na LINKAGE SECTION do programa em vez de reas de WORKING e definem-se pontos.

Block Locator for Linkage. Em geral, um programa montador (LINK), define por conta prpria, um ponto para cada nvel 01 que encontre em LINKAGE, denominado BLL (Block Locator for Linkage). O conjunto destes BLLs forma uma lista apontada por um BLL adicional, tambm gerado pelo prprio montador.

Manual de CICS

Pag. 41 / 52

Um programa com: LINKAGE SECTION. 01 AREA-1 PIC X(100). Ponto lista Ponto AREA-1 daria lugar a que o montador gera-se uma lista com os elementos: PIC S9(8) COMP. PIC S9(8) COMP.

e se modifica-se da seguinte forma: LINKAGE SECTION. 01 02 02 01 BLL-CELLS. FILLER PUNT-AREA-1 AREA-1 PIC S9(8) COMP. PIC S9(8) COMP. PIC X(100).

o item BLL-CELLS se superpondra lista do BLL geradas pelo montador, de modo que carregando convenientemente PUNT-AREA-1 poder aceder-se rea AREA-1 do programa invocante. Na prtica, sem obstculo, isto no pode fazer-se desta forma to intuitiva, pois o COBOL trabalha por referncia e no por valor, mas alguns entornos operativos dispem-se da forma de entregar um valor em lugar de uma referncia. Tal o caso do CICS, em que o traductor incorpora sempre uma LINKAGE SECTION com quatro nveis 01, se o programador no o faz, de forma que d lugar a uma lista: BLL1 BLL2 BLL3 BLL4 EIB COMMAREA FICTICIO1 FICTICIO2 aponta-se a si mesmo

Se o programador codifica BLLs na LINKAGE SECTION do programa, far-o na forma que se descreve mais acima; o montador do enlace insere na BLL3 a direco do BLL-CELLS, de modo que BLL4 contir a direco da AREA-1. No modo LOCATE, um comando: EXEC CICS READ DATASET( 'FICHERO' ) RIDFLD( W-CLAVE ) SET( PUNT-AREA-1 ) UPDATE END-EXEC pe no PUNT-AREA-1 a direco do segmento da CWA que contm o registo lido, e por tanto, acessvel ao programa COBOL o item AREA-1 e todas as subdivisies e redefinies que possa ter. Se, depois de alterar o contedo da AREA-1 executa-se:

Manual de CICS

Pag. 42 / 52

EXEC CICS REWRITE DATASET('FICHEIRO') FROM( AREA-1 ) END-EXEC modifica-se o registo directamente desde AREA-1, apontada por PUNT-AREA-1. Quando no existe o transvase de dados da CWA a WORKING, o processo muito mais rpido. A longitude do ponteiro quase sempre de 8 bytes, ainda que para determinados acessos possa ser de 4.

Enlace com outros programas. Quando as necessidades o requerem, um programa pode pedir a execuo de outro: o CICS seguir considerando esta actividade como a mesma tarefa. O passo do controle de um programa a outro pode fazer-se de duas maneiras: Enlace a nvel distinto. De um programa pede-se a execuo de outro, e o programa invocante fica detido at que o invocado lhe devolve o controle. Enlace ao mesmo nvel. Um programa cumpre com a sua funo e pede a execuo de outro de maneira que o invocado substitua ao invocante. O primeiro caso d-se ao enlaar com programas que executam funes muito concretas, p.ex. ler um registo de um ficheiro; o programa invocante esperar que o invocado recupere a informao que se lhe pede. O segundo caso d-se em programas que fazem de men e apresentam uma seleco de opes. Uma vez seleccionada uma opo, o programa no tem que cumprir misso e a memria que ocupa poderia ser utilizada pelo que se carrega. Em ambos os COMMAREA. casos, pode passar-se dados ao programa invocado utilizando a

A referncia ao programa invocado faz-se directamente pelo seu nome e no pelo seu cdigo de transaco; o controle faz-se atravs da tabela do PCP. Enlace a nvel distinto. EXEC CICS LINK PROGRAM( 'nome_do_programa' ) [ COMMAREA( identificador ) [ LENGTH( n | identificador ) ] END-EXEC Enlace ao mesmo nvel. EXEC CICS ]

Manual de CICS

Pag. 43 / 52

XCTL PROGRAM( 'nome_do_programa' ) [ COMMAREA( identificador ) [ LENGTH( n | identificador ) ] END-EXEC Notas no uso de XCTL/LINK.O comando RETURN sem parmetros leva ao programa de nvel superior, ou ao CICS se o nvel o mais alto. Se o programa invocado leva cdigo de transaco associado, no h nenhum impedimento em mant-lo em sesso com RETURN TRANSID, se as necessidades da aplicao o requerem. Se o programa foi invocado com LINK, o programa invocante fica detido at que se lhe devolva o controle. O nico comando que devolve o controle : EXEC CICS RETURN END-EXEC e tambm no associado. caso de que o programa invocante leve cdigo de transaco ]

Se um programa PROGTR03 com cdigo de transaco TR03 emite um comando LINK, e o programa invocado tenta devolver-lhe o controle com: RETURN TRANSID('TR03') o CICS carregar uma nova cpia de PROGTR03. Se um programa LINKado recebe dados e deve contestar, utilizar a sua prpria DFHCOMMAREA para escrever nela os datos que deseja enviar ao programa invocante. No caso deste tipo de enlace, a DFHCOMMAREA do programa invocado no mais que um ponteiro a uma rea de WORKING do programa invocante. Se no recebe dados, poderia contestar utilizando uma lista.

Arranque e Sincronizao de Tarefas. Arranque de Tarefas.

Manual de CICS

Pag. 44 / 52

Uma tarefa pode iniciar outra ou outras diferentes, incluso em terminais diferentes do actual, com planificao do tempo de arranque e passo de dados tarefa iniciada atravs de uma lista TS. O CICS planifica a informao da tarefa a iniciar num bloco de controle AID que logo utilizar. A tarefa inicia-se com o comando START. Os dados passam-se mediante uma lista TS e recuperam-se na tarefa iniciada com o comando RETRIEVE. EXEC CICS START INTERVAL( hhmmss ) | INTERVAL(0) | TIME( hhmmss ) TRANSID( 'cdigo_de_transaco_a_arrancar' ) [ TERMID( 'cdigo_de_terminal' ) ] [ REQID( 'nome' ) ] [ FROM( identificador ) [ LENGTH( n | identificador ) ] QUEUE( 'nome_da_lista_TS' ) ] [ RTRANSID( 'cdigo_da_transaco_origem' ) ] [ RTERMID( 'cdigo_do_terminal_origem' ) ] END-EXEC

INTERVAL Marca o intervalo de tempo que h de decorrer para que a tarefa arranque. hhmmss um nmero. 0 - Arranca instantaneamente a tarefa. TIME Especifica a hora de arranque da tarefa. Se maior ou igual ao tempo actual, arranca a tarefa quando corresponda. Se est entre a hora actual e menos seis horas, assume a hora actual. Se est atrasado em mais de seis horas em respeito hora actual, assume a mesma hora do dia seguinte. TRANSID Cdigo de transaco da tarefa a arrancar. TERMID Cdigo do terminal no qual se vai arrancar a tarefa. REQID

Manual de CICS

Pag. 45 / 52

Nome de quatro caracteres com o que se caracteriza o sucesso da execuo deste comando. til empreg-lo porque permite a cancelao do comando, se a tarefa no foi arrancada ainda, fazendo referncia a ele num comando CANCEL. FROM LENGTH QUEUE Parmetros para passar dados que se gravaram numa lista TS. Se a lista no existe, cria-se. Neste caso muito interessante que o nome da lista se forme de maneira que seja nica em todo o sistema. RTERMID RTRANSID Identificam transaco e terminal desde que se arranca a tarefa. Condies excepcionais.TERMIDERR TRANSIDERR No caso de que se passem dados e a tarefa arrancada esteja associada a um terminal, podem emitir-se vrios comandos START sucessivos, para provocar acumulao de dados na lista QUEUE, mas s o primeiro inicia a tarefa. Se a tarefa arrancada no est associada a um terminal e se emitem vrios comandos START, cada um deles arrancar uma nova tarefa e s poder passar-se um dado de cada vez. Em caso de que se passem dados, a tarefa arrancada dever executar o comando: EXEC CICS RETRIEVE INTO( identificador ) [ LENGTH( identificador ) ] [ QUEUE( identificador ) ] [ RTRANSID( identificador ) ] [ RTERMID( identificador ) ] [ WAIT ] END-EXEC identificativos associados a QUEUE, RTRANSID, RTERMID Neles entregam-se os nomes da lista e os cdigos de transaco e terminal invocantes, se se codificaram os mesmos no comando START. INTO Aponta rea de recepo do dado.

Manual de CICS

Pag. 46 / 52

WAIT Faz com que a tarefa fique suspendida se se esgotaram os dados

Condies excepcionais. ENDDATA Se a tarefa est associada a um terminal e se passaram dados acumulados, pode emitir-se uma srie de comandos RETRIEVE, para recuperar todos os dados. Sincronizao de Tarefas. O arranque de uma tarea at outra, no implica que a tarefa invocante fique detida. S se a tarefa arrancada efectuar processos cujos resultados tenham de ser processados pela tarefa invocante, esta ter de ser detida. A deteno pode fazer-se: Por espera de Tempo ( WAIT ) Por espera de Sucesso ( EVENT ) Por espera de Tempo. Se especfica uma suspenso da tarefa por um tempo determinado. EXEC CICS DELAY END-EXEC O significado dos parmetros o mesmo que para START. Esta espera actual. codifica-se depois de ter arrancado outra tarefa para parar a INTERVAL( hhmmss ) | INTERVAL( 0 ) | TIME( hhmmss ) REQID('nome')

A tarefa arrancada pode fazer terminar a espera da tarefa invocante com: EXEC CICS CANCEL END-EXEC REQID Comando a anular ( neste caso, DELAY ) e pode ter sido passado nos dados arrancada. TRANSID tarefa REQID('nome') [ TRANSID('cdigo_de_transaco') ]

Manual de CICS

Pag. 47 / 52

Identifica a transaco que deu o nome ao comando que se vai anular. conveniente especificar ambos para identificar de forma unvoca o comando.

Por espera de Sucesso. Esta funo suporta-se por meio de dois comandos: POST WAIT EVENT EXEC CICS POST INTERVAL( hhmmss ) | INTERVAL( 0 ) | TIME( hhmmss ) SET( puntero_ECA ) [ REQID('nome') ] END-EXEC Este comando cria um bloco de comunicao chamado Event Control Area ou ECA, de quatro bytes de longitude de valor zero e inicia uma contagem de tempo. Quando o tempo fixado em INTERVAL | TIME tenha expirado, o CICS introduz no primeiro byte do ECA o valor 40. A sintaxe do comado exige a referncia SET (ponteiro), de modo que para este caso h que escrever uma lista BLL na LINKAGE SECTION do programa. O parmetro REQID servir para identificar o sucesso de ter estabelecido o ECA. Sem obstculo pelo facto de ter emitido um comando POST, a tarefa no se detm; se houver que det-la, h que executar o comando: EXEC CICS WAIT EVENT ECADDR( rea_ECA ) END-EXEC que detm a tarefa at que o primeiro byte do bloco ECA passe de 0 a 40, ou seja, se cancele o POST. A cancelao do POST ocorre, parte da expirao do tempo: Se a tarefa termina Se a tarefa emite outro comando POST Se se emite um comando CANCEL utilizando o REQID. Este comando tem o mesmo formato que o j visto para o comando DELAY, e pode emiti-lo tarefa arrancada, para sinalizar que j terminou e ter que o CICS voltar a dar controle tarefa invocante

Comandos especiais. ABEND Emprega-se para induzir terminaes anormais da tarefa:

Manual de CICS

Pag. 48 / 52

EXEC CICS ABEND ABCODE('cdigo') END-EXEC cdigo Tira de quatro caracteres eleio do programador, que pode indicar o ponto do programa em que se provoca a terminao anormal. BIF DEEDIT uma funo interna ( Build In Function) do CICS muito til quando se trabalha com campos numricos editados em mapas de entrada/sada, que podem acarretar problemas na recepo. EXEC CICS BIF DEEDIT END-EXEC a actuao da funo : Suprimem-se do campo os caracteres no numricos. Os caracteres numricos escrevem-se juntos, da direita esquerda a partir do final do campo. As posies at ao incio do campo se reenchem com zeros. Se no se especfica LENGTH, tratam-se todas as posies do campo. FIELD( campo ) [ LENGTH( n | identificador ) ]

Sadas impressas em CICS. Estam resolvidas na maioria das instalaes mediante uma lista TD que inicia por trigger uma transaco que se encarrega do envio dos dados impresso. Os programas do utilizador s tm de depositar os registos da impresso na lista. Hardcopy. Ao definir os terminais ao CICS, pode assinalar-se a uma tecla de funo, que suele ser uma das PAs, a funo de hardcopy. A impresso realiza-se sobre uma impressora associada a um terminal ou a um grupo de terminais. O comando ISSUE PRINT cumpre o mesmo cometido por programa.

Notas. O buffer da impressora tem de ter capacidade para alojar ao buffer do cran. A impressora no pode estar associada a nenhuma tarefa.

Manual de CICS

Pag. 49 / 52

Sadas impressas desde BMS. Pode fazer-se impresses formatadas desde o BMS com uma variante do comando SEND MAP ao que se lhe juntam alguns parmetros: SEND MAP ..... PRINT Lnn onde nn o nmero de linhas por pgina e pode tomar os valores 40, 64 e 80.

Transaces de servio do CICS.CSSN Sign-on do sistema. Deve executar-se se necessrio identificar-se, antes de poder executar qualquer outro programa do utilizador ou de servio. Retorna automaticamente ao CICS, se os dados que pede introduzem-se correctamente. Pode sair-se com F3.

CEMT Executa mltiplas funes. apresentando opes. Se o cdigo se digita sem parmetros, vai

Uma das mais usadas, INQUIRE ( I ), emprega-se para investigar o estado das entidades do CICS: CEMT I DAT Apresenta uma lista dos ficheiros que maneja o CICS, dando, entre outros dados o estado ( OPE | CLO ), que pode modificar-se movendo o cursor adequadamente. Utiliza-se para desenganchar ficheiros do CICS, p.ex. para recarreg-los. CEMT I PRO Apresenta uma lista dos programas do utilizador e grupos de mapa, dando, entre outros dados o seu estado ( ENA | DIS ), para indicar a disponibilidade do programa ou grupo. Emprega-se para dar de alta novas verses, pondo o cursor ao final da linha e teclando NEW. Nota. Os ficheiros que tenham sido fechados ou os programas que tenham desabilitados, retm o seu estado, ainda que se re-arranque o CICS. So vlidas referncias do tipo: sido

Manual de CICS

Pag. 50 / 52

CEMT I PRO( PROG* ) para conseguir um display dos programas cujo nome comece por PROG. CEMT S PRO( PROG* ) N d de alta todos os programas cujo nome comece por PROG. Retorna ao CICS com F3.

CSMT Teclando: CSMT NEW,PGRMID=programa d de alta a nova verso de programa. Retorna ao CICS com F3. CEDF Depurador on-line. Deve arrancar-se antes de comear a execuo do programa que se quer traar: CEDF o CICS responder: This terminal EDF-Mode on continuao introduz-se o cdigo do programa a traar. EDF apresenta um primeiro cran no qual aparecem as reas EIB e DFHCOMMAREA. EDF detm-se antes da funes, entre elas: execuo de cada comando CICS, permitindo mltiplas

Modificar parmetros do comando Aceder, mediante a pulsao da tecla F5, imagem do programa em memria no momento actual. Podem modificar-se, por exemplo, dados de WORKING para canalizar a execuo da forma mais conveniente. Pode paginar-se dentro da imagem para a frente e para trs. Em relao com a modificao de dados de WORKING, convm fazer notar a dificuldade de encontrar esta num display em formato DUMP, parte em hexadecimal, parte em carcter, e de localizar um item determinado dentro dela. Certos truques, sem embarao, fazem este trabalho mais fcil. Os itens de WORKING com nveis 01 e 77 ensamblam-se fronteira de meia palavra ou palavra inteira; os demais, contguos. Por tanto escreva-se toda a WORKING empregando nveis do 02 em frente, na forma: WORKING-STORAGE SECTION. 01 FILLER. PIC ... 03 FILLER PIC X(19) VALUE '** START WORKING **'. 03 CAMPO1 ..............

Manual de CICS

Pag. 51 / 52

com o qual: Localiza-se facilmente o incio da WORKING. Todos os dados seram contguos e basta com contar bytes de longitude para passar de um a outro. Uma vez executado o comando, EDF informa o resultado. Este resultado tambm pode modificar-se, bem para provocar o tratamento de uma condio excepcional, como para impedi-lo. Cancelar a execuo com a tecla F12. Retorna ao CICS com F3.

CECI Permite a execuo de comandos CICS sem necessidade de programa. Primindo a tecla F5, acede-se a uma WORKING fictcia, na que se podem definir variveis, p.ex. para ler registos de um ficheiro. Retorna ao CICS com F3.

CSSF Desconexo do CICS: CSSF LOGOFF

Manual de CICS

Pag. 52 / 52

You might also like