Escolar Documentos
Profissional Documentos
Cultura Documentos
Cobol Cics
Cobol Cics
Manual de CICS
Pag. 1 / 52
GENERALIDADES.
A sigla CICS significa Customer Information
Controlo da Informao de Clientes.
Control
System,
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.
Manual de CICS
Pag. 2 / 52
os
nomes
de
todos
os
programas
que
se
podem
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
sua lgica de
de tal forma
dos programas
umas quantas
Manual de CICS
Pag. 3 / 52
Manual de CICS
Pag. 4 / 52
DFHEIBLK
EIBTIME
EIBDATE
EIBTRNID
Manual de CICS
REALCICS
TIME IN 0HHMMSS FORMAT
DATE IN 00YYDDD FORMAT
TRANSACTION IDENTIFIER
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
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
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
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
Manual de CICS
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.
Pag. 6 / 52
000200*
MAP('MAPA1')
000300*
MAPSET('GRMAP01')
000400*
emulador CICS de
END-EXEC
000500*
000800
000900
001000
001100
001200
001300
001400
PERFORM DFH0-CALL-CICS
Manual de CICS
Pag. 7 / 52
Manual de CICS
Pag. 8 / 52
Manual de CICS
Pag. 9 / 52
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 ).
excepcionais
que
no
se
explicitem,
existe
Manual de CICS
Pag. 11 / 52
Manual de CICS
Pag. 12 / 52
Manual de CICS
Pag. 13 / 52
empregando
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
TO W-LONG
Manual de CICS
Pag. 14 / 52
EXEC CICS
RETURN TRANSID(' XXXX' )
COMMAREA( W-COMM )
LENGTH( W-LONG )
END-EXEC
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
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 )
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. 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
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.
faz-se
depois
do
controlo
de
umas
Manual de CICS
Pag. 23 / 52
[ 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
MAPA EN MAPSET.
Define-se com a macro DFHMDI:
nommap
[ 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]
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
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
CTRL=( FRSET,FREEKB ),
DATA=FIELD,
TIOAPFX=YES
CAMPO1
LENGTH=5,
ATTRB=( UNPROT,NUM )
CAMPO2
LENGTH=20,
ATTRB=UNPROT
02 CAMPO1F
PIC X.
PIC X.
02 CAMPO1I
PIC 9(5).
02 CAMPO2L
02 CAMPO2F
PIC X.
PIC X.
PIC X(20).
PIC 9(5).
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. 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.
Manual de CICS
Pag. 31 / 52
Mediante
tcnicas
adequadas,
desnecessria de dados.
programador
deve
evitar
transmisso
ter
sido
melhor
guardado
em
COMMAREA
para
seu
posterior
) ]
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.
sufixo
I,
contm
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:
display
invocando
EXEC CICS
SEND PAGE
END-EXEC
Manual de CICS
Pag. 34 / 52
uma
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.
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
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
tm
estas
Condies excepcionais.
NOTOPEN
Lista no disponvel.
Manual de CICS
Pag. 37 / 52
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.
longitude
ITEM( n )
Recuperar o item nmero n.
NEXT
Recuperar o item seguinte ao ltimo lido.
Condies excepcionais.-
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.
memria.
alternativa
defeito
Condies excepcionais.-
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
Manual de CICS
Pag. 41 / 52
Um programa com:
LINKAGE SECTION.
01
AREA-1
PIC X(100).
Ponto lista
Ponto AREA-1
BLL-CELLS.
02
FILLER
02
PUNT-AREA-1
01
AREA-1
EIB
BLL2
COMMAREA
BLL3
FICTICIO1
BLL4
FICTICIO2
aponta-se a si mesmo
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.
casos,
pode
passar-se
dados
ao
programa
invocado
utilizando
END-EXEC
Enlace ao mesmo nvel.
EXEC CICS
Manual de CICS
Pag. 43 / 52
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
programa
invocante
leve
cdigo
de
transaco
Manual de CICS
Pag. 44 / 52
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
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
REQID('nome')
END-EXEC
O significado dos parmetros o mesmo que para START.
Esta espera
actual.
codifica-se
depois
de
ter
arrancado
outra
tarefa
para
parar
REQID('nome')
[ TRANSID('cdigo_de_transaco') ]
END-EXEC
REQID
Comando a anular ( neste caso, DELAY ) e pode ter sido passado nos dados
arrancada.
TRANSID
Manual de CICS
Pag. 47 / 52
tarefa
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
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.
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
CEMT
Executa mltiplas funes.
apresentando opes.
Se
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:
Manual de CICS
Pag. 50 / 52
sido
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
execuo
de
cada
comando
CICS,
permitindo
mltiplas
FILLER.
PIC ...
..............
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