Upload
betomineiro
View
203
Download
20
Embed Size (px)
DESCRIPTION
Cobol/ Cics.
Citation preview
Manual de CICS Pag. 1 / 52
CICS
Manual de CICS Pag. 2 / 52
GENERALIDADES.
A sigla CICS significa Customer Information Control System, o Sistema de
Controlo da Informao de Clientes.
CICS um sistema que proporciona um ambiente de execuo para programas on-
line, 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. 3 / 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 os nomes de todos os programas que se podem
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 mdulos de servio para executar os
processos de intercmbio da informao.
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 sua lgica de
execuo ser influenciada pelo desenvolvimento do dito dilogo, de tal forma
que o programa quase nunca ser executado inteiro, como no caso dos programas
BATCH, mas, normalmente, cada passo do dilogo implicar s umas quantas
instrues.
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. 4 / 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. 5 / 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 aceder-
se ao programa, quer directamente, quer atravs de comandos CICS especiais.
Execution Interface Block ( EIB )
000100 DFHEIBLK REALCICS
000900* EIBTIME TIME IN 0HHMMSS FORMAT
001000* EIBDATE DATE IN 00YYDDD FORMAT
001100* EIBTRNID TRANSACTION IDENTIFIER
Manual de CICS Pag. 6 / 52
001200* EIBTASKN TASK NUMBER
001300* EIBTRMID TERMINAL IDENTIFIER
001400* DFHRSVD1 RESERVED
001500* EIBCPOSN CURSOR POSITION
001600* EIBCALEN COMMAREA LENGTH
001700* EIBAID ATTENTION IDENTIFIER
001800* EIBFN FUNCTION CODE
001900* EIBRCODE RESPONSE CODE
002000* EIBDS DATASET NAME
002100* EIBREQID REQUEST IDENTIFIER
002200* EIBRSRCE RESOURCE NAME
002300* EIBSYNC SYNCPOINT REQUIRED
002400* EIBFREE TERMINAL FREE REQUIRED
002500* EIBRECV DATA RECEIVE REQUIRED
002600* EIBSEND RESERVED
002700* EIBATT ATTACH DATA EXISTS
002800* EIBEOC GOTTEN DATA IS COMPLETE
002900* EIBFMH GOTTEN DATA CONTAINS FMH
003000* EIBCOMPL RECEIVE COMPLETE FLAG
003100* EIBSIG SIGNAL FLAG
003200* EIBCONF CONFIRM FLAG
003300* EIBERR LU 6.2 ERROR FLAG
003400* EIBERRCD LU 6.2 ERROR CODE
003500* EIBSYNRB SYNCPOINT ROLLBACK FLAG
003600* EIBNODAT NO DATA FLAG
003700* EIBRESP ERROR CODE RESPONSE
003800* EIBRESP2 MORE ERROR CODES
003900* EIBRLDBK ROLLED BACK FLAG
004000*
004100 EIBTIME PICTURE S9(7) COMP-3.
004200 EIBDATE PICTURE S9(7) COMP-3.
004300 EIBTRNID PICTURE X(4).
004400 EIBTASKN PICTURE S9(7) COMP-3.
004500 EIBTRMID PICTURE X(4).
004600 EIBRSVD1 PICTURE XX.
004700 EIBCPOSN PICTURE S9(4) COMP-4.
004800 EIBCALEN PICTURE S9(4) COMP-4.
004900 EIBAID PICTURE X.
005000 EIBFN PICTURE X(2).
005100 EIBRCODE PICTURE X(6).
005200 EIBDS PICTURE X(8).
005300 EIBREQID PICTURE X(8).
005400 EIBRSRCE PICTURE X(8).
005500 EIBSYNC PICTURE X.
005600 EIBFREE PICTURE X.
005700 EIBRECV PICTURE X.
005800 EIBSEND PICTURE X.
005900 EIBATT PICTURE X.
006000 EIBEOC PICTURE X.
006100 EIBFMH PICTURE X.
006200 EIBCOMPL PICTURE X.
006300 EIBSIG PICTURE X.
006400 EIBCONF PICTURE X.
006500 EIBERR PICTURE X.
006600 EIBERRCD PICTURE X(4).
006700 EIBSYNRB PICTURE X.
006800 EIBNODAT PICTURE X.
006900 EIBRESP PICTURE 9(8) COMP-4.
007000 EIBRESP2 PICTURE 9(8) COMP-4.
007100 EIBRLDBK PICTURE X.
Manual de CICS Pag. 7 / 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 emulador CICS de
Realia:
000100* EXEC CICS RECEIVE
000200* MAP('MAPA1')
000300* MAPSET('GRMAP01')
000400* END-EXEC
000500*
000800 SET DFH0-CMD-RECEIVE-MAP TO TRUE
000900 MOVE 'MAPA1' TO DFH0-VAR-MAP
001000 SET DFH0-FLAG-MAPSET TO TRUE
001100 MOVE 'GRMAP01' TO DFH0-VAR-MAPSET
001200 SET DFH0-FLAG-INTO TO TRUE
001300 CALL 'MLI_GETADDR' USING MAPA1I DFH0-ADDR-INTO
001400 PERFORM DFH0-CALL-CICS
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. 8 / 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. 9 / 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 on-
line 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. 10 / 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. 11 / 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 excepcionais que no se explicitem, existe a
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.
Manual de CICS Pag. 12 / 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. 13 / 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. 14 / 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, empregando a
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 01 W-LONG PIC S9(4) COMP.
002800 01 W-COMM.
002900 03 W-OPCION PIC X.
003000 03 W-REG.
003100 05 W-CLAVE-AN PIC X(6).
003200 05 W-CLAVE REDEFINES W-CLAVE-AN.
003300 07 W-TALLER PIC 9.
003400 07 W-FAMILIA PIC 9.
003500 07 W-CODIGO PIC 9(4).
003600 05 W-DESC PIC X(20).
003700 05 W-PRECIO PIC 9(5).
003800 05 W-STOCK PIC 9(5).
003900 05 FILLER PIC X(44).
004000 03 BORRADO PIC X.
004010 ..................
004100 LINKAGE SECTION.
004200 01 DFHCOMMAREA PIC X(82).
a sequncia de uso seria:
< CARREGAR DADOS EM W-COMM >
MOVE 82 TO W-LONG
Manual de CICS Pag. 15 / 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. O programador no
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.
Manual de CICS Pag. 16 / 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. 17 / 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. 18 / 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 ) GENERIC ]
[ 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.
Condies excepcionais:
Manual de CICS Pag. 19 / 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 dentro do
ficheiro; a leitura sequencial ser movida dentro do dito entorno.
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. 20 / 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. 21 / 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. 22 / 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. 23 / 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 faz-se depois do controlo de umas
entidades de BMS chamadas mapas ( MAPS ).
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. 24 / 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 escrevem-
se 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. 25 / 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. 26 / 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. 27 / 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. 28 / 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 continua-
se 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. 29 / 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. 30 / 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 PIC S9(4) COMP.
02 CAMPO1F PIC X.
02 FILLER REDEFINES CAMPO1F.
03 CAMPO1A PIC X.
02 CAMPO1I PIC 9(5).
02 CAMPO2L PIC S9(4) COMP.
02 CAMPO2F PIC X.
02 FILLER REDEFINES CAMPO2F.
03 CAMPO2A PIC X.
02 CAMPO2I PIC X(20).
01 MAPA1O REDEFINES MAPA1I.
02 FILLER PIC X(12).
02 FILLER PIC X(3).
02 CAMPO1O PIC 9(5).
02 FILLER PIC X(3).
02 CAMPO2O PIC X(20).
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.
Manual de CICS Pag. 31 / 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. 32 / 52
Mediante tcnicas adequadas, o programador deve evitar a transmisso
desnecessria de dados.
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 ter sido melhor guardado em COMMAREA para o seu posterior
tratamento.
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. 33 / 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 o sufixo I, contm o dado
encolunado como arranjo natureza e/ou definio.
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. 34 / 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 o display invocando uma
transaco de servio do CICS com o comando:
EXEC CICS
SEND PAGE
END-EXEC
Manual de CICS Pag. 35 / 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. 36 / 52
Cor.
DFHDFCOL Cor por defeito
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.
Ferramentas Suplementares.
Filas de Registos.
As filas de registos empregam-se para a gesto de dados no CICS.
A sua utilizao supe uma anlise prvia da adequao da ferramenta s
necessidades traadas.
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. 37 / 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 armazenados em ficheiros VSAM ESDS e tm estas
caractersticas:
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. 38 / 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. 39 / 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 a longitude
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.-
Manual de CICS Pag. 40 / 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 memria. A alternativa e o defeito
AUXILIARY, que cria a lista em disco.
Condies excepcionais.-
Manual de CICS Pag. 41 / 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. 42 / 52
Um programa com:
LINKAGE SECTION.
01 AREA-1 PIC X(100).
daria lugar a que o montador gera-se uma lista com os elementos:
PIC S9(8) COMP. Ponto lista
PIC S9(8) COMP. Ponto AREA-1
e se modifica-se da seguinte forma:
LINKAGE SECTION.
01 BLL-CELLS.
02 FILLER PIC S9(8) COMP.
02 PUNT-AREA-1 PIC S9(8) COMP.
01 AREA-1 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 EIB
BLL2 COMMAREA
BLL3 FICTICIO1 aponta-se a si mesmo
BLL4 FICTICIO2
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. 43 / 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 casos, pode passar-se dados ao programa invocado utilizando a
COMMAREA.
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. 44 / 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 caso de que o programa invocante leve cdigo de transaco
associado.
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. 45 / 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. 46 / 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. 47 / 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 INTERVAL( hhmmss ) | INTERVAL( 0 ) | TIME( hhmmss )
REQID('nome')
END-EXEC
O significado dos parmetros o mesmo que para START.
Esta espera codifica-se depois de ter arrancado outra tarefa para parar a
actual.
A tarefa arrancada pode fazer terminar a espera da tarefa invocante com:
EXEC CICS
CANCEL REQID('nome')
[ TRANSID('cdigo_de_transaco') ]
END-EXEC
REQID
Comando a anular ( neste caso, DELAY ) e pode ter sido passado nos dados tarefa
arrancada.
TRANSID
Manual de CICS Pag. 48 / 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. 49 / 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 FIELD( campo )
[ LENGTH( n | identificador ) ]
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.
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. 50 / 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
.....
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. Se o cdigo se digita sem parmetros, vai
apresentando opes.
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 sido
desabilitados, retm o seu estado, ainda que se re-arranque o CICS.
So vlidas referncias do tipo:
Manual de CICS Pag. 51 / 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 execuo de cada comando CICS, permitindo mltiplas
funes, entre elas:
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.
03 FILLER PIC X(19) VALUE '** START WORKING **'.
03 CAMPO1 PIC ...
..............
Manual de CICS Pag. 52 / 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