Você está na página 1de 52

CICS - Componentes do CICS e suas funes

O Customer Information Control System (CICS) um produto IBM que


manuseia aplicacoes on-line.
Ele atua como uma interface entre o sistema operacional e seus
programas de aplicacao.
Para o sistema operacional, ele funciona como uma tarefa unica
sendo executada em uma particao.
O software CICS composto por:
Mdulos de gerncia:
So programas que gerenciam o ambiente on-line e fazem o
interface entre o sistema operacional e os programas de aplicao.
Cada mdulo de gerencia realiza uma funo especial.
Exemplos:
FILE CONTROL PROGRAM ( FCP ) - operaes de leitura e gravao
em arquivos
TERMINAL CONTROL PROGRAM ( TCP ) - operaes de envio e
recepo de dados ao terminal
Tabelas do sistema:
So utilizadas pelo CICS para se definir os equipamentos que
podem ser utilizados, bem como os recursos que sero utilizados
em termos de arquivos, programas, transaes, etc. So geradas
pelo analista de sistemas responsvel pelo gerenciamento do CICS.
Em virtude dos equipamentos estarem pre-definidos em uma tabela,
nao h a necessidade da definio no programa de aplicao.
Exemplos:
FILE CONTROL TABLE ( FCT ) - definio dos arquivos utilizados
por cada programa de aplicao
TERMINAL CONTROL TABLE ( TCT ) - definio de cada terminal da
rede
Blocos de controle:
so utilizados pelo CICS para acesso e atualizao das informaes
modificveis (dinamicas), necessrias para a execuo do programa
de aplicao.
Exemplo:
TASK CONTROL AREA ( TCA ) - contm indicadores de localizao
para o programa de aplicao e para a entrada do terminal na TCT
Todos os componentes acima ficam 'residentes' na memria real.
Programas de aplicao:

So os programas escritos pelos usurios para processamento online de um determinado tipo de servio.
No fica 'residente' na memria real.
CICS - Conceitos da execucao de uma tarefa em CICS
Pontos principais:
O CICS opera como programa principal
Os programas de aplicao operam sob o CICS
O fluxo de informaes entre o usurio e o programa controlado pelo CICS
Tipicamente, uma transao consiste numa entrada, processamento e uma resposta
imediata (REAL-TIME)
Normalmente, uma transacao e' composta de um programa pequeno e simples para
tratamento de um evento especifico e em tempo real
Os programas nao podem alterar instrues dinmicas (reentrantes) conforme
veremos adiante
A tarefa (TASK) recebe o controle do CICS e deve devolv-lo ao CICS

Transao conversacional:
A transao fica sempre ativa
Detem sempre o controle
Esta' sempre esperando interveno do operador
Muitos recursos ficam 'presos' pela transao
S devolve o controle ao cics quando o operador terminar o servio

Transao pseudo-conversacional:
A transao s est ativa quando est sendo executada
Recebe o controle do CICS e o devolve, apos sua execuo
No h interveno do operador na execuo
Prende muito pouco os recursos
A codificao de transaes conversacionais comprometem a eficincia e performance
do CICS, portanto a sua utilizao desaconselhada.

Tpico uso 'BATCH'


+------------------+
I
INICIO
I
+------------------+
I CONSISTENCIA
I
+------------------+
I TESTE DE CODIGOS I
+------------------+
I MODULO PRINCIPAL I
+------------------+
I
INCLUSAO
I
+------------------+
I
EXCLUSAO
I
+------------------+
I
ATUALIZACAO
I
+------------------+
I
FIM
I
+------------------+

.
.

Um programa grande
Existe em memria cdigo que
no usado simultaneamente
ou seja, se for feito apenas
incluso, todos os mdulos,
mesmo os no utilizados, estaro residentes na memria

Tpico uso 'REAL TIME'


+------------------+
I
I ____________________________________
I
I
I
I
I ______________________
I
I MODULO PRINCIPAL I
I
I
I
I _______
I
I
I
I
I
I
I
I
I
+----------+ +----------+ +----------+
I
+

+------------------+
I

I
I
I
I
I
I
I
I
+------------------+
I
CONSISTENCIA
I
+------------------+

I INCLUSAO I

I EXCLUSAO I

I ALTERACAO

+----------+

+----------+

+-----------

.
.
.

Pode ser composto por varios


programas
Tamanhos pequenos e parecidos
S est na memoria o necessario, ou seja, se no for
feita nenhuma excluso, o mdulo de excluso nao ser
carregado

CICS - Formato geral do comando CICS


O CICS possui o seu prprio formato de comando, como a seguir:
EXEC

CICS
FUNCAO
OPCAO (ARG)

END-EXEC.
Onde:

Funo : uma palavra-chave que descreve a operacao solicitada.


Exemplo: READ, SEND, HANDLE, ETC.
Opo : uma palavra chave que descreve recursos a disposio em
cada funo. algumas opes so seguidas por um argumento entre
parenteses.
END-EXEC: Delimitador para comandos para programas cobol. Indica
o final de um comando CICS.
Exemplo para programa COBOL:
EXEC

CICS
LINK PROGRAM (PROG01)
COMMAREA (WORK-COMMA)
LENGTH
(+150)

END-EXEC.

Como o programa codificado em CICS possui os comandos do CICS


e visto que em COBOL no existe tais comandos, antes de ser
compilado ou montado, o programa de aplicao processado por
um tradutor de comandos, que muda os comandos do CICS em
comandos MOVE e CALL que existem no COBOL.
Durante a execuo do programa, estes comandos CALL chamam a
rotina de interface do nvel de comando e passam os parmetros
apropriados para a rotina.
A rotina de interface ento chama o mdulo de gerencia do CICS que
indicado pela funo do comando no programa de aplicao.

CICS - Acesso as informaes do sistema


O CICS mantm acompanhamento de certos dados que o programa de aplicao pode
necessitar durante a execuo, dados tais como numero da tarefa, hora e data.
O CICS registra este tipo de dados internos em reas que o programa de aplicao nao
tem acesso direto.
Contudo, o CICS copia os dados num bloco de interface de execuo (EIB) que
criado na hora em que a tarefa iniciada. Existe um EIB por tarefa.
O tradutor de comandos automaticamente inclui uma copia do EIB no programa de
aplicao.
O EIB para uma tarefa armazena informaes que o programa de aplicao pode ento
pesquisar usando-se os nomes dos campos. segue os nomes de alguns campos e
seus contedos.
Campo

Tamanho

Explicao

EIBDATE

S9(007)

Data em que teve inicio a tarefa. Este campo est no


formato decimal compactado com o seguinte layout:
00AADDD

EIBTIME

S9(007)

Hora em que teve inicio a tarefa. Este campo est no


formato decimal compactado com o seguinte layout:
0HHMMSS

EIBTRNID

X(004)

Identificao da tarefa

EIBTRMID

X(004)

Identificao do terminal que est associado a tarefa

EIBAID

X(001)

Contm a ltima tecla de 'funo programada' digitada


pelo operador

EIBPOSN

S9(004)

Posio do cursor na tela na hora da ltima entrada. este


campo est no formato computational (COMP)

EIBCALEN

S9(004)

Contem o tamanho da area de comunicacao


(COMMAREA) passada para a TASK. Se nao foi passada
nenhuma COMMAREA, este campo ter o valor igual a
zeros. Este campo est no formato computational (COMP)

Para a atualizao da data e hora do sistema h o comando ASKTIME que atualiza os


campos EIBTIME e EIBDATE do EIB, com a data e a hora em que o comando
executado.
Exemplo para programa COBOL:
EXEC

CICS
ASKTIME

END-EXEC.

CICS - Definio de telas - BASIC MAPPING SUPPORT ( BMS )


Para a execuo de um programa on-line, normalmente h uma tela, onde o usuario
interage com o terminal.
Nesta tela ele digita os dados e recebe as informaes que necessita.
Esta tela definida pelo programador, utilizando os recursos oferecidos pelo BASIC
MAPPING SUPPORT ( BMS ), que tem a funo de fazer o interface entre o programa de
aplicao e o 'TERMINAL CONTROL PROGRAM ( TCP )'.
O BMS oferece algumas vantagens tais como, independncia de dispositivos e
independncia de formato de dados.
O BMS trabalha com dois tipos de mapas:
1 - Mapa fsico ( MAPSET ) que catalogado na CIL em formato de 'PHASE'. E'
constitudo por caracteres de controle, constantes e dados variveis do aplicativo.
2 - Mapa lgico ( MAP ) catalogado na SOURCE ( BIBLIOTECA DE DADOS ) em formato
de 'BOOK'. e' constitudo somente pelos dados variveis.
O BMS na entrada remove os caracteres de controle e transfere somente os dados para
o programa de aplicao. na saida, o BMS obtem os dados variveis do programa de
aplicao e intercala com os caracteres de controle mais as constantes do mapa.
A definio de mapas fsicos e lgicos feita utilizando-se 'MACROS' que seguem a
regra 'ASSEMBLER' para a sua codificao.
Para a codificao, deve-se respeitar algumas regras de sintaxe, as quais trancreve-se
abaixo:
O nome dos mapas e campos devem comecar na coluna 1 e a codificao das macros,
apesar de poder comear na coluna 2, costuma-se codificar comeando na coluna 10.
costuma-se, tambem, codificar os parmetros necessrios para cada macro, a partir da
coluna 16, exceto na primeira linha onde comeca-se a definir na coluna 17.
A codificaao pode ir at a coluna 71.
A coluna 72 reservada para ser usada quando deseja-se continuar a definio de uma
macro em uma outra linha, sendo que, a linha a ser continuada deve ter, na coluna 72,
um caracter de continuao diferente de branco e a linha de continuao deve ter a sua
codificao iniciada na coluna 16.
MACRO

DFHMSD

Esta macro utilizada para definir o conjunto de mapas

( MAPSET ).
Um MAPSET pode conter 'um ou mais' mapas.
....
+....1....+....2....+....3....+....4....+....5....+....6....+....7..
LABEL
*

DFHMSD TYPE=(MAP/DSECT/FINAL),
LANG=(ASM/COBOL/PL/I),

TIOAPFX=(YES/NO),

MODE=(IN/OUT/INOUT),

STORAGE=AUTO,

CTRL=OPCOES,

TERM=MODELO,

DATA=(FIELD/BLOCK)
Parmetros para a macro DFHMSD:

LABEL
: deve ser especificado o nome do MAPSET, com, no
mximo 7 caracteres
TYPE

: MAP
- criar mapa fsico.
DSECT - criar mapa lgico.
FINAL - encerra a definio do conjunto de

LANG

: ASM

mapas.
DEFAULT ).

- ser gerado o mapa lgico em ASSEMBLER (

COBOL - ser gerado o mapa lgico em COBOL.


PL/I - ser gerado o mapa lgico em PL/I.

TIOAPFX : YES
- indica que deve ser reservada uma rea
de 12 bytes no incio do mapa,
para o prefixo da TIOA ( TERMINAL
INPUT OUTPUT AREA ). Nesta rea
existem caracteres de controle que um
programa em COMMAND LEVEL no
pode utilizar.
NO
- sem bytes de controle ( DEFAULT ).
MODE
: indica o tipo de utilizao do MAPSET. Tambm
ser utilizado na gerao do
mapa lgico.
IN
- indica que qualquer mapa do MAPSET
somente poder ser recebido pelo
programa de aplicao.
OUT
- Indica que qualquer mapa do MAPSET
somente poder ser enviado
pelo
programa de aplicao.
INOUT - Indica que o programa de aplicao
poder receber e enviar qualquer
mapa do MAPSET.
STORAGE : AUTO - Ser alocada automaticamente uma rea
para cada mapa do MAPSET. Se

este parmetro nao for especificado, os


mapas dentro de um

MAPSET

serao 'redefinidos'.

CTRL
: Define as caracteristicas a serem aplicadas ao
terminal quando do envio de
qualquer mapa do MAPSET.
ALARM - emite o sinal sonoro ( alarme ) ao
enviar o mapa.
FREEKB - destrava o teclado logo apos o envio do
mapa para permitir ao operador entrar com os dados.
FRSET - restaura o MDT (MODIFIED DATA TAG) de
todos os campos variaveis do
mapa, ou seja, os dados variaveis do
mapa sempre serao transmitidos
para o programa de aplicacao, mesmo que
o operador nao tenha
'alterado' nenhum dado.
TERM
: MODELO - modelo do terminal (3270 / 3270-2 /
3270-4, etc)
DATA
: Especifica o formato dos dados FIELD
trabalho em formato de campos.

- area de

formato:
+----------------+
I LL I A I DADOS I
+----------------+
onde:
binarios - HALF -

WORD -

BLOCK
seu uso nao recomendado.

MACRO

LL - tamanho do campo ( 2 bytes

PIC S9(04) COMP.


A - byte de atributo do campo
- rea de trabalho em formato de bloco.

DFHMDI

Esta macro utilizada para definir um mapa dentro de um


conjunto de mapas.
....
+....1....+....2....+....3....+....4....+....5....+....6....+....7..
LABEL
*
*
*

DFHMDI SIZE=(LINHAS,COLUNAS),
LINE=LINHA,
COLUMN=COLUNA,
JUSTIFY=(LEFT/RIGHT,FIRST/LAST),

HEADER=YES/TRAILER=YES,
*

TIOAPFX=(YES/NO)
Parmetros para a macro DFHMDI:

LABEL
: Deve ser especificado o nome do mapa lgico,
com, no mximo 7 caracteres.
SIZE
linhas e colunas.

: Especifica as dimenses do mapa, e termos de


LINHAS - nmero mximo de linhas do mapa.
COLUNAS - nmero mximo de colunas do mapa.

LINE

: Especifica qual a linha inicial do mapa no

COLUMN

: Especifica qual a coluna inicial do mapa no

JUSTIFY

: Especifica qual o alinhamento do mapa:


LEFT
- O alinhamento do mapa ser a esquerda

terminal.
terminal.

( DEFAULT ).

RIGHT

- O alinhamento do mapa ser a direita.

FIRST
- Especifica que o mapa para ser
posicionado como o primeiro mapa de uma nova tela.
LAST
- Especifica que o mapa para ser
posicionado no final da tela que est sendo montada.
HEADER
: Especifica que o mapa um mapa de cabealho.
Deve ser usado em conjunto com a opo
'JUSTIFY=FIRST'. Usado em paginao.
TRAILER : Especifica que o mapa um mapa de rodap. Deve
ser usado em conjunto com a opo
'JUSTIFY=LAST'. Usado em paginao.
TIOAPFX : YES
- Indica que deve ser reservada uma rea
de 12 bytes no inicio do mapa, para o prefixo
da TIOA ( TERMINAL INPUT OUTPUT AREA ).
Nesta rea existem caracteres de controle que
um programa em COMMAND LEVEL no pode
utilizar.
NO
- Sem bytes de controle ( DEFAULT )

MACRO

DFHMF

Esta macro utilizada para definir os campos varives e as


constantes dentro do mapa.
....
+....1....+....2....+....3....+....4....+....5....+....6....+....7..
LABEL
*

DFHMDF POS=(LINHA,COLUNA),

LENGTH=TAMANHO,
*
*
*
*
*
*
*

ATTRB=LISTA DE ATRIBUTOS,
INITIAL='CONSTANTE',
JUSTIFY=(LEFT/RIGHT,BLANK/ZERO),
GRPNAME=ITEM DE GRUPO,
OCCURS=NNN,
PICIN='MASCARA',
PICOUT='MASCARA'
Parmetros para a macro DFHMDF:

LABEL
: Deve ser especificado o nome do campo, com, no
mximo 7 caracteres. Se o label for omitido,
o campo nao poder ser acessado pelo programa de
aplicao, ou seja, ser definido apenas
uma constante para o mapa.
POS
: Especifica a posio do atributo do campo em
relao ao mapa e no a posicao fisica. Em todas
as macros DFHMDF de um determinado mapa, as
posies dos campos devem estar definidos em uma
sequencia crescente, sendo definidos de cima
para baixo e da esquerda para a direita.
LENGTH
: Especifica o tamanho do campo ( nao considerar a
posio utilizada pelo atributo ). O tamanho
pode variar de 1 a 256 caracteres.
ATTRB
: Especifica as caracteristicas do campo. Somente
para terminais do tipo 3270-X. Para determinar
as caracteristicas do campo, os atributos podem
ser combinados
ASKIP
- Provoca um salto automtico do CURSOR,
ou seja, no possvel o operador entrar com
dados neste campo. Pode ser utilizado
para definir constantes. O campo fica protegido
e com brilho normal.
PROT
- O campo fica protegido.
UNPROT - O campo fica disponvel para a entrada
de dados. UTilizado para definir campos variveis.
O campofica desprotegido, com brilho
normal e alfanumerico.
NUM
- O campo fica disponvel para a entrada
de dados numricos e o hfen ( - ). utilizado em
conjunto com o atributo UNPROT. O
campo fica desprotegido, com brilho normal e numrico.
BRT
- O campo fica brilhante.
NORM
- O campo fica com brilho normal.
DRK
- Indica que embora o campo exista na
tela, no ser exibido, mesmo que existam dados.
utilizado, por exemplo para definir
campos onde ser digitada uma senha.
IC
- Indica que o CURSOR ficar posicionado
no campo aps o envio do
mapa. Caso haja mais de

um IC, o CURSOR ficar posicionado no


campo em que estiver o ultimo IC. Se este parmetro
for omitido, o CURSOR ser posicionado
na primeira linha e na primeira coluna.
FSET
- Liga o MDT, ou seja, o campo ser
transmitido no envio e na recepo do mapa, independente
se o campo foi ou nao alterado. O
DEFAULT o MDT desligado.
Observacao - Qualquer um dos atributos poder ser alterado
pelo programa de aplicao.
- Se o parmetro ATTRB for omitido, o campo ser
considerado com o atributo ASKIP.
- Se qualquer das opes de ATTRB for
codificada, o campo ter as opes de UNPROT e NORM em
acrscimo ao atributo especificado.
INITIAL

: Define um conteudo inicial para o campo.

JUSTIFY

: Define o alinhamento/preenchimento do campo


LEFT
- O alinhamento do campo ser a esquerda.
RIGHT - O alinhamento do campo ser a direita.
BLANK - O campo ser preenchido com brancos.
ZERO
- O campo ser preenchido com zeros.
Observao - O DEFAULT para JUSTIFY :
RIGHT, ZERO se o campo for numrico
LEFT, BLANK se o campo for alfanumrico
GRPNAME : Permite que um campo seja subdividido e
manipulado pelo programa de aplicao, ou seja, permite
que seja definido um item de grupo com itens
elementares. As caracterpisticas fsicas do item de
grupo so igualmente aplicveis a todos os itens
elementares. Todos os itens elementares do item
de grupo devem ter os mesmos parmetros, caso
isto no ocorra ser considerado as caractersticas
do primeiro item elementar deste item de grupo.
OCCURS
: Define n campos de uma s vez. Semelhante a
clusula OCCURS do COBOL. este parmetro no pode ser
utilizado em conjunto com o parmetro 'GRPNAME'
na mesma macro DFHMDF.
campo.

PICIN

: Define uma mscara de entrada de dados para o

PICOUT

: Define uma mscara de saida de dados para o

campo.
OBSERVACAO - Caso seja especificado os parmetros PICIN e
PICOUT para um mesmo campo, as mscaras devem ser do
mesmo tamanho quanto ao nmero de posies
ocupadas.

Exemplo de definicao de MAPSET


....
+....1....+....2....+....3....+....4....+....5....+....6....+....7..

10

XZ00001
*

DFHMSD TYPE=&SYSPARM,
LANG=COBOL,

CTRL=(FREEKB,FRSET,ALARM),

MODE=INOUT,

STORAGE=AUTO

*
MZ0001A
TRANS
*

DFHMDI SIZE=(22,80),LINE=1,COLUMN=1,JUSTIFY=(LEFT,FIRST)
DFHMDF POS=(01,01),LENGTH=04,ATTRB=(ASKIP,BRT,FSET),
INITIAL='CURS'
DFHMDF POS=(01,08),LENGTH=04,ATTRB=(ASKIP,DRK)
DFHMDF POS=(01,20),LENGTH=40,ATTRB=(ASKIP,BRT),

SALVA
*

INITIAL='*** EXEMPLO DE DEFINICAO DE MAPSET ***'


POS=(01,70),LENGTH=02,ATTRB=ASKIP,GRPNAME=DATA
POS=(01,72),LENGTH=02,GRPNAME=DATA
POS=(01,74),LENGTH=02,GRPNAME=DATA
POS=(05,01),LENGTH=10,ATTRB=ASKIP,INITIAL='COD.

DIA
MES
ANO

DFHMDF
DFHMDF
DFHMDF
DFHMDF

ALUNO'

DFHMDF POS=(05,15),LENGTH=13,ATTRB=ASKIP,

INITIAL='NOME DO ALUNO'
DFHMDF POS=(05,39),LENGTH=29,ATTRB=(ASKIP,BRT),

INITIAL='NOTA1 NOTA2 NOTA3 NOTA4 NOTA5'


POS=(07,01),LENGTH=05,ATTRB=(UNPROT,NUM)
POS=(07,07),LENGTH=01,ATTRB=ASKIP,INITIAL=' '
POS=(07,15),LENGTH=20,ATTRB=ASKIP
POS=(07,40),LENGTH=05,ATTRB=ASKIP,OCCURS=5,

CODAL

DFHMDF
DFHMDF
DFHMDF
DFHMDF

NOMEAL
NOTAS
*

PICOUT='ZZ9,9'
DFHMDF POS=(22,21),LENGTH=40,ATTRB=(PROT,BRT),
*

INITIAL='PF3

RETORNAR

PA2

SAIR'

DFHMSD TYPE=FINAL
END
BOOK retornado com a compilao do MAPSET

1
2
3
4
5
6
7
8
123456789012345678901234567890123456789012345678901234567890123456789
0123456780
01

MZ0001AI.
FILLER
TRANSL
COMP
TRANSF
FILLER
03 TRANSA
02
TRANSI
02
SALVAL
COMP
02
SALVAF
02
FILLER
02
02
02
02

PIC X(012).
PIC S9(004).
PIC X(001).
REDEFINES TRANSF.
PIC X(001).
PIC X(004).
PIC S9(004).
PIC X(001).
REDEFINES SALVAF.

11

03 SALVAA
SALVAI
DATAL
DATAF
FILLER
03 DATAA
02
DATAI.
03 DIAI
03 MESI
03 ANOI
02
CODALL
02
CODALF
02
FILLER
03 CODALA
02
CODALI
02
NOMEALL
02
NOMEALF
02
FILLER
03 NOMEALA
02
NOMEALI
02
NOTASD
03 NOTASL
03 NOTASF
03 NOTASI
02
02
02
02

01

02
02
02
02
02
02
02
03
03
03

02
02
02
02
02

03
03
03

MZ0001AO
FILLER
FILLER
TRANSO
FILLER
SALVAO
FILLER
DATAO.
DIAO
MESO
ANOO
FILLER
CODALO
FILLER
NOMEALO
DFHMS1
FILLER
NOTASA
NOTASO

COMP

COMP

COMP

COMP

PIC X(001).
PIC X(004).
PIC S9(004).
PIC X(001).
REDEFINES DATAF.
PIC X(001).
PIC X(002).
PIC X(002).
PIC X(002).
PIC S9(004).
PIC X(001).
REDEFINES CODALF.
PIC X(001).
PIC X(005).
PIC S9(004).
PIC X(001).
REDEFINES NOMEALF.
PIC X(001).
PIC X(020).
OCCURS 5 TIMES.
PIC S9(004).
PIC X(001).
PIC X(005).
REDEFINES MZ0001AI.
PIC X(012).
PIC X(003).
PIC X(004).
PIC X(003).
PIC X(004).
PIC X(003).
PIC X(002).
PIC X(002).
PIC X(002).
PIC X(003).
PIC X(005).
PIC X(003).
PIC X(020).
OCCURS 5 TIMES.
PIC X(002).
PIC X(001).
PIC ZZ9,9.
Explicao da gerao do mapa

lgico
Para cada macro DFHMDI codificada criado em COBOL, um NIVEL
01, com o label especificado na macro, acrescido
do sufixo 'I' se for usada a opo 'MODE=IN' ou acrescido do
sufixo 'O' se for usada a opo 'MODE=OUT'.
Para o MAPSET em que foi especificado 'MODE=INOUT', so gerados
DOIS NIVEIS 01, um com o sufixo 'I' e outro
com o sufixo 'O'. O segundo NIVEL 01 uma redefinio do
primeiro.
Para cada macro dfhmdf codificada so criados UM NIVEL 02 e UM
NIVEL 03 com o label especificado na macro

12

acrescido com sufixos especficos. Notar que o campo s ser


gerado caso seja codificado na macro um label.
No NIVEL 02 foi gerado um campo com o label especificado
acrescido do sufixo 'L' para identificar o tamanho do
campo. Foi tambem gerado um campo com o label especificado
acrescido do sufixo 'I' para recepo de dados do campo.
No NIVEL 03 foi gerado um campo com o label especificado
acrescido do sufixo 'A' para identificar o atributo
do campo.
A area MZ0001AO uma redefinio da rea MZ0001AI, por ter
sido especificado na macro DFHMSD o parmetro
'MODE=INOUT'.
Para cada macro DFHMDF que possui um label especificado, foi
gerado um campo de tamanho (SUFIXO L), um campo de
atributo (SUFIXO A) e um campo de dados (SUFIXO I E/OU O).
Observar que foi gerado o item de grupo 'DATAI' em virtude de
termos codificado o parmetro 'GRPNAME=DATA' na
macro DFHMDF dos campo DIA, MES E ANO.
Observar que foi gerado uma tabela 'NOTASD' em virtude de
termos codificado o parmetro 'OCCURS=5' no campo
'NOTAS'. Neste, o sufixo do item de grupo da tabela ser 'D' ao
inves de 'I'.

Para cada campo foram gerados:


LABEL + SUFIXO L - Nessa rea ser colocado pelo BMS, o
tamanho do campo ( LENGTH ), ou seja, quantas
posies foram tecladas pelo operador. O
campo com sufixo l tambm usado para o
posicionamento do CURSOR, bastando para
isso movimentar -1 ( menos um ) para o mesmo.
LABEL + SUFIXO F - Essa rea um byte de flag. Usado pelo
CICS para saber se o campo foi alterado ou nao.
LABEL + SUFIXO A - Essa area utilizada pelo programa de
aplicao para alterar o atributo do campo
( ATTRIBUTE ), isto , quando deseja-se
um atributo diferente do que foi especificado
na codificao da macro DFHMDF.
LABEL + SUFIXO I - Essa area utilizada pelo programa de
aplicao para trabalhar com os dados de entrada
( INPUT ).
LABEL + SUFIXO O - Essa area utilizada pelo programa de
aplicao para trabalhar com os dados de saida
( OUTPUT ), sendo esta area uma
redefinio da area de sufixo 'I'.

A seguir esto os atributos que pode-se mover para o campo

13

de sufixo 'A' pelo programa de aplicao.


Para ter estes campos no programa deve-se copiar o layout
catalogado 'DFHBMSCA'.
1
2
3
4
5
6
7
8
123456789012345678901234567890123456789012345678901234567890123456789
0123456780
01

02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02
02

DFHBMSCA.
DFHBMPEM
DFHBMPNL
DFHBMASK
DFHBMUNP
DFHBMUNN
DFHBMPRO
DFHBMBRY
DFHBMDAR
DFHBMFSE
DFHBMPRF
DFHBMASF
DFHBMASB
DFHBMEOF
DFHBMDET
DFHBMPSO
DFHBMPSI
DFHSA
DFHCOLOR
DFHPS
DFHHLT
DFH3270
DFHVAL
DFHOUTLN
DFHBKTRN
DFHALL
DFHERROR
DFHDFT
DFHDFCOL
DFHBLUE
DFHRED
DFHPINK
DFHGREEN
DFHTURQ
DFHYELLO
DFHNEUTR
DFHBASE
DFHDFHI
DFHBLINK
DFHREVRS
DFHUNDLN
DFHMFIL
DFHMENT
DFHMFE
DFHUNNOD
DFHUNIMD
DFHUNNUM
DFHUNINT
DFHUNNON
DFHPROTI
DFHPROTN
DFHMT

PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC

X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)

VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE

IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS

'.'.
'.'.
'0'.
' '.
'&'.
'-'.
'H'.
'<'.
'A'.
'/'.
'1'.
'8'.
'.'.
'.'.
'.'.
'.'.
'.'.
'.'.
'.'.
'.'.
'.'.
'A'.
'B'.
'.'.
'.'.
'.'.
'.'.
'.'.
'1'.
'2'.
'3'.
'4'.
'5'.
'6'.
'7'.
'.'.
'.'.
'1'.
'2'.
'4'.
'.'.
'.'.
'.'.
'('.
'I'.
'J'.
'R'.
')'.
'Y'.
'%'.
'.'.

14

02
02
02
02
02
02
02
02
02
02
02
02

DFHMFT
DFHMET
DFHMFET
DFHDFFR
DFHLEFT
DFHOVER
DFHRIGHT
DFHUNDER
DFHBOX
DFHSOSI
DFHTRANS
DFHOPAQ

PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC

X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)

VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE

IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS

'.'.
'.'.
'.'.
'.'.
'.'.
'.'.
'.'.
'.'.
'.'.
'.'.
'0'.
'.'.

CICS - Tratamento de condies de exceo


Comando HANDLE CONDITION
Formato do comando:
EXEC CICS HANDLE
CONDITION

Explicao do argumento
Especifica-se uma condio de erro, associando a ela um
pargrafo que receber o controle do programa caso a
condio de exceo ocorra.

Condio (pargrafo)

o comando acima utilizado para especificar um pargrafo que receber o controle


caso uma condio de exceo ( erro de leitura/gravao em um arquivo ) ocorra.
O tratamento de uma determinada exceo prevalece at que seja especificado outro
'HANDLE CONDITION' para a mesma exceo, ou se for executado o comando que
ignore esta condio de exceo.
A especificao de um 'HANDLE CONDITION' para uma exceo, no elimina o
tratamento de outras condies de exceo anteriormente especificadas.
Existe uma condio especial que engloba todas as condies de exceo que podem
ocorrer, com exceo das condies de exceo que j foram especificadas no
programa de aplicao, esta condicao 'ERROR'.
Exemplo do comando:
EXEC

CICS
HANDLE CONDITION LENGERR (0100-LENGERR)
DUPKEY (0200-DUPKEY)
ERROR
(0300-ERROR)

END-EXEC.

Explicao do exemplo:
Caso ocorra algum erro de tamanho em alguma funcao do COMMAND LEVEL, o
controle do programa ser desviado para o pargrafo '0100-LENGERR'.
Caso haja registro em duplicata, o controle do programa ser desviado para o

15

paragrafo '0200-DUPKEY'.
Caso ocorra algum outro tipo de erro que nao esteja previsto no comando, o controle
do programa ser desviado para o paragrafo '0300-ERROR'.
Comando IGNORE CONDITION
Formato do comando:
EXEC CICS IGNORE
CONDITION

Explicao do argumento
Pode ser especificado um label para cada condio de
exceo.

Condio

O comando acima utilizado para ignorar uma determinada condio de exceo.


Caso ocorra a condio de exceo especificada a execuo do programa continuar
na instrucao seguinte a instruo que originou a condio de exceo.
Exemplo do comando:
EXEC

CICS
IGNORE

CONDITION

LENGERR

END-EXEC.

Explicao do exemplo:
Caso ocorra algum erro de tamanho em alguma funcao do COMMAND LEVEL, apos a
execuo deste comando, o CICS ir ignora-lo, ou seja, o programa continuar com
sua execuo normalmente.
Observao:
Caso nao sejam codificados os comandos HANDLE e nem IGNORE CONDITION para
uma determinada condio de exceo e esta vier a ocorrer, o programa cancelar.

CICS - Controle de programas


Quando desenvolve-se programas de aplicao em COMMAND LEVEL, normalmente
necessitamos de transferir o controle para outro programa de aplicao.
Este servico feito pelo PROGRAM CONTROL PROGRAM ( PCP ), cuja principal
finalidade executar as funes de gerenciamento dos programas de aplicao, dando
acesso aos programas, mapas e tabelas de aplicao.
O PCP executa as seguintes funes:

localizao dos programas de aplicao

carga de uma tabela, programa de aplicao ou mapa

16

liberao de uma tabela ou programa de aplicao que foi anteriormente


carregado

carga do programa de aplicao, se necessrio, para execuo

transferencia de controle do CICS para o programa de aplicao e tambem


entre os programas de aplicao

passagem de dados entre programas de aplicao

trmino do programa de aplicao

O PCP contm a PROCESSING PROGRAM TABLE ( PPT ), que o local onde deve ser
cadastrado todo programa de aplicao para que o mesmo possa ser executado pelo
CICS.
A PPT Contm as seguintes informaes:

nome do programa

localizao na biblioteca

linguagem utilizada

contador de uso do programa

O PCP tambem contem a PROGRAM CONTROL TABLE ( PCT ), que a tabela utilizada
para associar o programa ao nome da tarefa que ser utilizada para invocar a sua
execuo.
A PCT contm as seguintes informaes:

nome do programa

nome da task que esta' associada ao programa

Comando LINK
Formato do comando:
EXEC CICS LINK

Explicao do argumento

PROGRAM ('NOME
PROGRAMA')

Especifica o nome do programa para o qual ser passado


o controle

COMMAREA (WORKCOMMAREA)

Especifica a rea que contm os dados que sero


passados ao programa chamado.

LENGTH (+20)

Especifica o tamanho da rea em que esto os dados que


esto sendo passados ao programa chamado. Deve,
obrigatoriamente ser usado, quando for usado
'COMMAREA'.

Este comando utilizado para passar o controle de um programa de aplicao para

17

outro. o programa chamado colocado hierarquicamente em nvel inferior ao que o


chamou, sendo que o programa que o chamou continua na memria e logo apos o
trmino da execuo do programa chamado, o programa que o chamou recebe o
controle e continua a sua execuo com a instruo seguinte ao comando 'LINK'.
Exemplo do comando:

EXEC

CICS

END-EXEC.

LINK PROGRAM ('P86851')


COMMAREA(WORK-COMMAREA)
LENGTH (+51)

Explicao do exemplo:
O controle da execuo ser passado ao programa P86851, os dados contidos em
WORK-COMMAREA sero passados ao programa com tamanho de 51 bytes. aps a
execuo do programa P86851 o controle volta e a execuo continua com a proxima
instruo.
Condio de exceo:
PGMIDERR: ocorre se o programa nao estiver cadastrado na PPT, ou se o programa
estiver em condio 'DISABLED', ou se o programa nao estiver catalogado.
Comando XCTL
Formato do comando:
EXEC CICS XCTL

Explicao do argumento

PROGRAM ('nome
programa')

Especifica o nome do programa para o qual ser passado


o controle.

COMMAREA (WORKCOMMAREA)

Especifica a rea que contm os dados que sero


passados ao programa chamado.

LENGTH (+20)

Especifica o tamanho da rea em que esto os dados que


esto sendo passados ao programa chamado. Deve,
obrigatoriamente ser usado, quando for usado
'COMMAREA'.

Este comando utilizado para passar o controle de um programa de aplicaao para


outro. o programa chamado colocado no mesmo nvel hierrquico do programa que o
chamou, sendo que o programa que o chamou nao continua na memria pois sua rea
liberada para o CICS, nao havendo, portanto, possibilidade de retorno apenas com o
trmino da execuo do programa chamado. Caso haja a necessidade de retorno ao
programa chamador deve-se usar o comando 'XCTL'.
Exemplo do comando:
EXEC

CICS

XCTL PROGRAM ('P86851')


COMMAREA(WORK-COMMAREA)
LENGTH (+51)

END-EXEC.

18

Explicao do exemplo:
O controle da execuo ser passado ao programa P86851, os dados contidos em
WORK-COMMAREA sero passados ao programa com tamanho de 51 bytes. Aps a
execuo do programa P86851 o controle nao volta e a execuco comecar na primeira
instruo do programa, se o programa chamado emitir um comando chamando este
programa.
Condio de exceo:
PGMIDERR: ocorre se o programa nao estiver cadastrado na PPT, ou se o programa
estiver em condio 'DISABLED', ou se o programa no estiver catalogado.
Comando RETURN
Formato do comando:
EXEC CICS RETURN

Explicao do argumento

TRANSID
('TRANSACAO')

Especifica o nome da transao para a qual ser passado


o controle e deve estar definido na PCT.

COMMAREA (WORKCOMMAREA)

Especifica a rea que contm os dados que sero


passados ao programa chamado.

LENGTH (+20)

Especifica o tamanho da rea em que esto os dados que


esto sendo passados ao programa chamado. Deve,
obrigatoriamente ser usado, quando for usado
'COMMAREA'.

Este comando utilizado para passar o controle de um programa de aplicao para


outro ou de um programa de aplicao para o CICS.
A emisso do comando acima sem nenhum argumento faz com que o controle seja
passado ao programa de nvel hierrquico superior que pode ser um programa de
aplicao ou o proprio CICAS.
Este comando o mais utilizado em virtude da otimizao que ele oferece pois a tarefa
( TASK ) s estar ativa quando o operador acionar alguma tecla de funo
programada ( PF ). Enquanto o operador no acionar alguma 'PF' a tarefa fica
'suspensa'. Isto possvel pois o cics possui a terminal control table ( TCT ) que
identifica a tarefa que est associada ao terminal. A 'TCT' ser vista com mais detalhes
adiante.
< comando: do Exemplo>

EXEC

CICS

RETURN TRANSID ('P851')


COMMAREA(WORK-COMMAREA)
LENGTH (+51)

END-EXEC.

Explicaco do exemplo:
O controle da execuo ser passado a transao P851, que deve ter sido definido na

19

'PCT', os dados contidos em WORK-COMMAREA sero passados a transao com


tamanho de 51 bytes. apos a execuo da transao 'P851', o controle no volta e a
execuo comear na primeira instrucao do programa, se o programa chamado emitir
um comando chamando este programa.
Condio de exceo:
INVREQ: ocorre se a opoo 'TRANSID' for utilizada para passar o controle para uma
TASK que executada sem estar associada a um terminal ( TASK ASSINCRONA ).
Observao:
Quando usa-se a opo 'TRANSID', o programa estara imediatamente debaixo do CICS.
rea de comunicao - COMMAREA
Se um programa de aplico receber o controle de um outro programa de aplicao
atravs dos comandos 'LINK', 'XCTL' ou 'RETURN' com a opo COMMAREA, a rea de
comunicao indicada estar disponivel para o programa chamado no inicio de sua
execuo. O tamanho da rea de comunicao estar disponvel no campo eibcalen.
Para receber e transmitir dados via COMMAREA, deve-se definir na linkage section a
DFHCOMMAREA em NIVEL 01 com o tamanho da maior area de dados que o programa
ira' receber.
Caso a 'DFHCOMMAREA' seja maior que o tamanho da rea recebida, deve-se tomar
cuidado pois para o CICS o tamanho da rea de comunicao o tamanho
especificado no EIBCALEN.
Caso a 'DFHCOMMAREA' seja menor, ocorrer truncagem de dados.
aconselhavel que no se trabalhe diretamente com a area de comunicao, ou seja,
deve-se mover a 'DFHCOMMAREA' para uma rea de WORKING e trabalhar com essa
area.

CICS - Transmisso de dados entre a tarefa e o terminal

20

A transmisso de dados entre a tarefa e o terminal feita pelo TERMINAL CONTROL


PROGRAM ( TCP ).
A principal finalidade do TCP a de efetuar a comunicao dos programas de
aplicao com os terminais. Enquanto no for terminada a tarefa, a mesma fica
'ATACHADA' com o terminal e sempre que aquele terminal for 'ACIONADO' ser
verificado se h alguma transao 'ATACHADA' e se houver, qual a transao que est
atachada ao mesmo.
Suas principais funes sao:

prover a insero e retirada dos caracteres de controle de transmisso


( protocolo )

requisitar o inicio de uma nova tarefa

transferir informaes do programa para o terminal atravs de interface com o


BMS

transferir informaes do terminal para o programa tambem atravs de


interface com o BMS

O TCP possui a TERMINAL CONTROL TABLE ( TCT ) que a tabela de controle de


terminais, onde todos os terminais (video, impressora) devem estar cadastrados.
A TCT contm as seguintes informaes:

caracteristicas do terminal

endereco para o cics

codigo do terminal

informacoes de controle ( ex.: se j existe uma transao 'ATACHADA AO


TERMINAL').

Comando SEND MAP


Formato do comando:
EXEC CICS SEND

Explicao do argumento

MAPSET ('MAPSET')

Especifica o nome do MAPSET em que se encontra o


mapa a ser enviado

MAP ('MAPA')

Especifica o nome do mapa que deseja-se enviar

FROM (MP8601AO)

Especifica a rea onde esto os dados a serem enviados.


Se este para metro for omitido, o BMS considera que os
dados esto na area de trabalho definida pelo mapa
simblico

MAPONLY

Ser enviado apenas o mapa, nenhum dado varivel ser


enviado, smente as constantes sero enviadas I

21

DATAONLY

Apenas os dados sero enviados. A opo 'FROM' deve


ser especificada

CURSOR (VALOR)

Especifica a posio absoluta do CURSOR na tela em


relao a zero. Esta opo pode ser utilizada quando
desejarmos alterar a posio do CURSOR daquela
definida na tela sendo que 'VALOR' deve ter a PIC S9(04)
COMP. Quando no especificado 'VALOR', o CURSOR
ser posicionado no primeiro campo da tela que recebeu
valor -1 (menos um)

ERASE

Limpa toda a tela do terminal antes do mapa ser enviado.


No aconselhavel usar esta opo juntamente com a
opo 'DATAONLY'

ERASEAUP

Limpa todos os campos desprotegidos antes do mapa ser


enviado

ALARM

Emite um alarme ao enviar o mapa ( usado somente se


no foi especificado 'CTRL=ALARM' no BMS

FREEKB

Destrava o terminal para digitao de informaes ( usado


somente se no foi especificado 'CTRL= FREEKB' no BMS

FRSET

Restaura o 'MDT'. Todos os campos sero transmitidos


( usado somente se no foi especificado 'CTRL=FRSET'
no BMS

PRINT

Envia para a impressora. Usado quando o terminal uma


impressora

TERMINAL

Envia para o terminal. Usado quando o terminal o vdeo


( DEFAULT )

ACCUM

'ACUMULA' mapas sem enviar ao terminal

PAGING

Os mapas sero guardados em 'TEMPORARY STORAGE' (


TS ). Esta opo usada em conjunto com a opo
'ACCUM' para enviar um conjunto de mapas ao terminal

Este comando utilizado para 'enviar' um mapa para o terminal.


Exemplo do comando:

EXEC

CICS SEND MAP


('MP8601A')
MAPSET ('XP86851')
ERASE
CURSOR

END-EXEC.

Explicacao do exemplo:
Ser enviado para o terminal o mapa MP8601A que pertence ao MAPSET XP86851 e o
cursor ficar posicionado no primeiro campo da tela que recebeu valor -1 ( menos
um ), sendo que os dados que haviam na tela sero 'REMOVIDOS' antes da exibio do
mapa MP8601A.

22

Condio de exceo:
INVPMSZ: ocorre se for enviado um mapa que nao cabe fsicamente no terminal. este
tipo de erro nao detectado quando da compilao do mapa fsico.
INVREQ: ocorre se aps termos enviado vrios mapas com as opes 'ACCUM' e
'PAGING', FOR feita uma tentativa de enviar mapa sem estas opes. Como veremos
adiante, todo o acmulo de mapas deve ser terminado pelo comando 'SEND PAGE'.
OUTROS: TSIOERR, RETPAGE
Comando RECEIVE MAP
Formato do comando:
EXEC CICS RECEIVE

Explicao do argumento

MAPSET ('MAPSET')

Especifica o nome do MAPSET em que se encontra o


mapa a ser recebido.

MAP ('MAPA')

Especifica o nome do mapa que deseja-se receber.

INTO (MP8601AI)

Especifica a rea onde o mapa lgico ser recebido. Se


este parametro for omitido, o 'BMS' considera que os
dados iro para a rea de trabalho definida pelo mapa
simblico.

Este comando utilizado para 'receber' dados do ltimo mapa exibido no terminal.
Pode ser codificado sem nenhum argumento, porm servir apenas para o tratamento
de funes programadas.
Exemplo do comando:

EXEC

CICS RECEIVE MAP ('MP8601A')


MAPSET ('XP86851')

END-EXEC.

Explicao do exemplo:
Ser recebido do terminal o mapa MP8601A que pertence ao MAPSET XP86851.
Condio de exceo:
MAPFAIL: ocorre se, ao executar o comando, o bms verificar que nao foi digitado
nenhum dado pelo operador na tela ( correspondente a tela vazia ).
Comando SEND PAGE
Formato do comando:
EXEC CICS SEND PAGE

Explicao do argumento

23

AUTOPAGE

As telas sero enviadas ao terminal logo que este esteja


disponvel sem interveno do operador. Usado para
impressora.

NOAUTOPAGE

As telas sero enviadas ao terminal, uma de cada vez, em


respostas aos comandos de paginao do operador.
Normalmente definida no sistema 'TECLAS
PROGRAMADAS' (PF's) para a paginao.

RELEASE

Transfere o controle para o nvel lgico mais alto (pode


ser um programa de aplicao ou o proprio CICS). a
opo mais utilizada e poder ser utilizada com a opo
'TRANSID'.

TRANSID
('TRANSACAO')

Transfere o controle para a transao indicada, logo aps


a operao se completar (pode ser codificado junto com a
opo 'RELEASE' para fazer com que o terminal coloquese na modalidade pseudo-conversacional, logo aps a
paginao se completar).

RETAIN

Indica que aps a paginao ser encerrada o controle


ser devolvido ao programa de aplicao e esta opo
no muito utilizada pois ela torna o programa
conversacional. No pode ser especificada juntamente
com a opo 'RELEASE' ou 'TRANSID'.

Este comando e' utilizado para 'ENVIAR' varios mapas para o terminal, mapas estes
'ACUMULADOS' anteriormente atravs da opo 'ACCUM' do comando 'SEND MAP'.
Exemplo do comando:

EXEC

CICS SEND

PAGE
NOAUTOPAGE
RELEASE
TRANSID ('P851')

END-EXEC.

Explicao do exemplo:
Ser enviado para o terminal o conjunto de mapas anteriormente 'acumulados' ficando
a disposio do usuario para pagin-las e aps o trmino da paginao, o controle
ser devolvido a transacao 'P851'.
<>br Condio de exceo: - INVREQ: ocorre se tentar emitir o comando sem que
tenha sido 'ACUMULADO' pginas atravs das opoes 'ACCUM' E 'PAGING'.
- OUTROS: TSIOERR, RETPAGE
Comando PURGE MESSAGE
Formato do comando:
EXEC CICS PURGE MESSAGE

No possui argumento

Este comando deleta todas as paginas anteriormente 'ACUMULADAS' atraves da


opcao 'ACCUM' do comando 'SEND MAP'.

24

Este comando deve ser utilizado sempre que ocorrer algum tipo de erro que haja a
necessidade de abandonar a paginao, tendo sido emitido algum comando 'SEND
MAP' com a opo 'ACCUM'. Exemplo do comando:

EXEC
CICS PURGE MESSAGE
END-EXEC.

Explicacao do exemplo:
Ser deletado todas as pginas anteriormente 'ACUMULADAS' atravs da opo
'ACCUM' do comando 'SEND MAP'.
Condio de exceo:
TSIOERR: erro de entrada/saida na memria tempraria.
Observaes sobre a transmisso de dados
Caso j esteja no vdeo do operador o mapa que ir enviar bastando smente limpar os
campos digitados, use a opcao 'ERASEAUP'. neste caso 'NO SERAO TRANSMITIDOS'
as constantes e nem os dados dos mapas, obtendo-se assim uma melhor performance
da transmisso do mapa.
Caso j esteja no vdeo do operador o mapa que ir enviar bastando smente trocar os
dados da tela, mantendo o mesmo mapa, use a opo 'DATAONLY'. Neste caso sero
transmitidos apenas os dados variveis do mapa.
Se no for especificado as opes 'DATAONLY' ou 'MAPONLY' no comando 'SEND
MAP', ser assumido as duas.
Se no for especificado as opes 'AUTOPAGE' ou 'NOAUTOPAGE' no comando 'SEND
PAGE', a paginao obedecer as condies especificadas para o terminal quando da
gerao do sistema.
Consideraes sobre paginao
Por paginao entende-se a aao de acumular uma determinada quantidade de linhas
que varia a cada execuco da tarefa.
Em cada tela haver um mapa de cabealho que dever ser definido no 'BMS' com as
opes 'HEADER=YES' e 'JUSTIFY=FIRST'.
Em cada tela haver tambem um mapa de rodap que dever ser definido no 'BMS'
com as opes 'TRAILER=YES' e 'JUSTIFY=LAST'.
As linhas restantes sero 'FLUTUANTES', ou seja sero usadas para acumular os
dados que devem ser exibidos. Deve ser definido um mapa contendo apenas uma linha
e esta linha que ser acumulada. Ser acumulado para uma tela a quantidade mxima
de linhas que couber entre o cabealho e o rodap.
Caso a quantidade de linhas a serem acumuladas ultrapasse a quantidade mxima
permitida para uma tela, no momento em que estiver sendo tentado acumular a linha
que ultrapassa a quantidade mxima permitida para a tela, ocorrer a condicao de
exceo 'OVERFLOW'.

25

Ao ocorrer a condio de exceo 'OVERFLOW', deve-se terminar a construo da


pgina atual e iniciar a construo de nova pgina, ficando construindo pginas at
terminar os dados a serem exibidos.
Aps a construo da ltima pgina, deve-se emitir o comando 'SEND PAGE' para o
trmino da paginao.
Apos a emisso do comando 'SEND PAGE', os dados ficaro 'ACUMULADOS' para o
operador manusea-los.
Para o manuseio dos dados acumulados existem algumas funces programadas que
executam tal tarefa. tais PF's no precisam ser especificadas no programa que
acumulou os dados.
Procedimentos necessrios para acumular pginas.

1 - Emite-se o comando 'SEND MAP' com a opo 'ERASE' para acumular o


cabealho.

2 - Pesquisa-se os dados a serem exibidos e se existir, move-los para a linha


que deseja-se acumular.

3 - Emite-se o comando 'SEND MAP' para acumular a linha montada no item 2.

4 - Se no ocorrer a condio de exceo 'OVERFLOW' voltar para item 2.

5 - Ocorrendo a condio de exceo 'OVERFLOW', emite-se o comando 'SEND


MAP' sem a opo 'ERASE' Para acumular o rodap e tambem emite-se o
comando 'SEND MAP' com a opo 'ERASE' para acumular o cabealho para o
inicio da construo de uma nova pgina. Em virtude de termos uma linha no
acumulada ( a que provocou o OVERFLOW ) volta-se para o item 3.

6 - Quando no existir mais dados a serem acumulados emite-se o comando


'SEND MAP' sem a opo 'ERASE' para acumular o rodap e o comando'SEND
PAGE' para indicar o trmino de construo de pginas.

Obs: Todos os comandos 'SEND MAP' devero ser emitidos com as opes 'PAGING' e
'ACCUM'.
Tratamento de teclas programadas ( PF'S )
Para verificar qual a tecla programada ( PF ) que foi digitada pelo operador existem
duas maneiras:
1 - O campo do EIB - 'EIBAID'
2 - O comando - 'HANDLE AID'
O EIBAID atualizado toda vez que acionada alguma funo programada.
Existe um book catalogado que contem os campos a serem comparados com o EIBAID
para a checagem da PF que foi digitada pelo operador. Este book o DFHAID e pode
ser copiado atraves do comando COPY no programa de aplicacao.

26

01

DFHAID.
02 DFHNULL
02 DFHENTER
02 DFHCLEAR
02 DFHCLRP
02 DFHPEN
02 DFHOPID
02 DFHMSRE
02 DFHSTRF
02 DFHTRIG
02 DFHPA1
02 DFHPA2
02 DFHPA3
02 DFHPF1
02 DFHPF2
02 DFHPF3
02 DFHPF4
02 DFHPF5
02 DFHPF6
02 DFHPF7
02 DFHPF8
02 DFHPF9
02 DFHPF10
02 DFHPF11
02 DFHPF12
02 DFHPF13
02 DFHPF14
02 DFHPF15
02 DFHPF16
02 DFHPF17
02 DFHPF18
02 DFHPF19
02 DFHPF20
02 DFHPF21
02 DFHPF22
02 DFHPF23
02 DFHPF24
Comando HANDLE AID

PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC

X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)
X(001)

VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE

IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS
IS

'.'.
QUOTE.
'_'.
'.'.
'='.
'W'.
'X'.
'H'.
'''.
'%'.
'>'.
','.
'1'.
'2'.
'3'.
'4'.
'5'.
'6'.
'7'.
'8'.
'9'.
':'.
'#'.
'@'.
'A'.
'B'.
'C'.
'D'.
'E'.
'F'.
'G'.
'H'.
'I'.
'-'.
'.'.
'<'.

Formato do comando:
EXEC CICS HANDLE
AID
OPTION (PARAGRAFO)

Explicao do argumento
Especifica-se uma opo (tecla), associando-se a ela um
pargrafo que receber o controle do programa caso a
tecla seja digitada.

O comando acima utilizado para especificar um pargrafo que receber o controle


caso seja digitada a tecla especificada na opo.
Existe uma opo especial que engloba todas as PF'S, PA'S E CLEAR, com exceo do
ENTER. Caso seja digitado uma tecla que n~ao foi especificada no programa de
aplicao, o controle ir para o pargrafo especificado nesta opo.
Esta opo o ANYKEY.
Uma vez estabelecidas as condies de manipulacao de funes programadas, elas s
sero acionadas quando for executado o comando RECEIVE.

27

Exemplo do comando:
EXEC

CICS
HANDLE AID PA1
PA2
ENTER
ANYKEY

END-EXEC.

(0100-PA1)
(0200-PA2)
(0300-ENTER)
(0400-ANYKEY)

Explicacao do exemplo:

caso seja digitado a tecla PA1, o controle do programa ser desviado para o
pargrafo 0100-PA1,

caso seja digitado a tecla PA2, o controle do programa ser desviado para o
pargrafo 0200-PA2,

caso seja digitado a tecla ENTER, o controle do programa ser desviado para o
pargrafo 0300-ENTER e

caso seja digitado qualquer outra tecla, o controle do programa ser desviado
para o pargrafo 0400-ANYKEY.

CICS - Interrupo de processamento


Comando HANDLE ABEND
Formato do comando:
EXEC CICS HANDLE
ABEND

Explicao do argumento

PROGRAM ('nome
programa')

Especifica-se o nome do programa que receber o


controle caso um ABEND venha a ocorrer.

LABEL (paragrafo)

Especifica-se o nome de um pargrafo que receber o


controle do programa caso acorra um ABEND.

CANCEL

Esta opo cancela a tarefa porm no gera DUMP


(default)

RESET

Esta opo faz com que um cancelamento seja ignorado.

O comando acima utilizado para cancelar uma tarefa, ignorar um cancelamento ou


passar o controle do programa para um pargrafo do programa ou para outro
programa.
Todas as opces deste comando sao mutuamente exclusivas.
Este comando somente ter validade para ABEND'S no previstos em um comando
'HANDLE CONDITION'.
Exemplo do comando:

EXEC

CICS
HANDLE ABEND PROGRAM ('ABENDLI')

28

END-EXEC.

Explicacao do exemplo:
Caso ocorra algum tipo de abend nao previsto no programa de aplicao, o controle
ser passado ao programa 'ABENDLI'.
Comando ABEND
Formato do comando:
EXEC CICS ABEND

Explicao do argumento

ABCODE (WORKNOME)

Indica que para gerar um DUMP da tarefa e a rea


indicada comtm o nome para o 'DUMP' ser identificado.

CANCEL

Fora o cancelamento de todos os nveis hierrquicos


que esto ligados a tarefa.

O comando acima utilizado para cancelar voluntariamente uma tarefa.


Exemplo do comando:

EXEC
CICS ABEND
END-EXEC.

ABCODE ('XXYY')

Explicacao do exemplo:
Caso este comando seja executado, a tarefa ser cancelada e ser gerado um DUMP
com a identificacao 'XXYY'.

CICS - Tratamento de arquivos VSAM


Para o manuseio dos arquivos no CICS, existe um modulo chamado FILE CONTROL
PROGRAM ( FCP ), sendo que ele controla todos os acessos aos arquivos.
O 'FCP' possui a FILE CONTROL TABLE ( FCT ) que o local onde esto contidas
todas as informaes referentes as funes de servio (READ, WRITE, REWRITE,
DELETE, ETC), previstas para um determinado arquivo e contm tambm todas as
informaes descritivas referente ao arquivo, portanto no h a necessidade de
definio do arquivo pelo programa de aplicao.
O 'FCP' possui as seguintes funes:

abrir e fechar arquivos

controle exclusivo

29

recuperao de arquivos

ler para simples consulta

ler para posterior atualizao

atualizao

deletar registros

adicionar registros

liberar o controle exclusivo

acessar o arquivo sequencialmente

No manuseio de um arquivo pelo programa de aplicao, ocorrendo um erro por estar


efetuando algo que o VSAM no suporta, ocorrer a condio de exceo 'ILLOGIC'.
Comando READ
Formato do comando:
EXEC CICS READ

Explicao do argumento

DATASET ('nome
arquivo')

Especifica-se o nome do arquivo a acessar.

INTO (WORK-AREA)

Especifica-se a rea onde dever ser colocadoo registro


lido.

RIDFLD (WORKCHAVE)

Especifica-se a chave do registro a ser lido.

LENGTH (+100)

Especifica-se o tamanho do registro a ser lido. opcional


se for registro fixo.

UPDATE

Informa que o registro a ser lido sofrer posterior


atualizao.

GENERIC

Indica que a chave informada parcial, ou seja, no est


sendo informada toda a chave.

KEYLENGTH (+10)

Especifica-se o tamanho da chave genrica. Este


argumento usado em conjunto com a opo 'GENERIC'
e s pode ser usada para arquivos KSDS.

GTEQ

O CICS tentar ler um registro com chave maior ou igual a


chave informada.

EQUAL

O CICS tentar ler um registro com chave igual a chave


informada ( DEFAULT ).

RBA

Para arquivos ESDS, indica que a area especificada em


'RIDFLD' contem um RBA e nao a chave do registro. Neste
caso, a area especificada em 'RIDFLD' deve estar definida

30

PIC S9(008) COMP.


Este comando utilizado para uma leitura randmica em um arquivo
Exemplo do comando:
EXEC

CICS

READ

DATASET
INTO
RIDFLD
LENGTH

('D02TAB')
(WORK-TAB)
(WORK-CHAVE)
(+130)

END-EXEC.

Explicacao do exemplo:
O CICS tentar ler um registro no arquivo 'D02TAB' com chave igual ao conteudo de
'WORK-CHAVE', o registro ser colocado em 'WORK-TAB' e seu tamanho de 130
bytes.
Condio de exceo:

DSIDERR: o arquivo informado no consta na 'FCT'.

NOTOPEN: o arquivo informado est fechado.

NOTFND: o registro requisitado no existe.

DUPKEY: o arquivo informado um ndice alternado e existe mais de um


registro com a mesma chave alternada

INVREQ: no existe, na 'FCT', previso para a utilizao deste recurso

OUTROS: ILLOGIC, IOERR, LENGERR.

Comando WRITE
Formato do comando:
EXEC CICS WRITE

Explicao do argumento

DATASET ('NOME
ARQUIVO')

Especifica-se o nome do arquivo que se deseja acessar.

FROM (WORK-AREA)

Especifica-se a rea onde se encontra o registro a ser


gravado.

RIDFLD (WORKCHAVE)

Especifica-se a chave do registro a ser gravado. Deve ser


igual a chave da rea de dados indicada na opo 'FROM'.

LENGTH (+100)

Especifica-se o tamanho do registro a ser gravado.


Opcional se for registro fixo.

RBA

Para arquivos ESDS, indica que a rea especificada em


'RIDFLD' contem um RBA e no a chave do registro. Neste
caso, a rea especificada em 'RIDFLD' deve estar definida

31

PIC S9(008) COMP.


Insero em massa de registros. As chaves devem ser
ascendentes. Esta operao deve ser terminada por um
'UNLOCK' para um posterior acesso ao arquivo.

MASSINSERT

Este comando utilizado para fazer adio de registros em um arquivo


A opo 'MASSINSERT' permite a incluso sequencial de registros no VSAM, sendo
que a partir da incluso do primeiro registro, o CICS determinar o controle exclusivo
para o programa, que dever ser liberado quando no houver mais registros a incluir,
atravs do comando 'UNLOCK'
Exemplo do comando:
EXEC

CICS WRITE

DATASET
FROM
RIDFLD
LENGTH

('D02TAB')
(WORK-TAB)
(WORK-CHAVE)
(+130)

END-EXEC.

Explicacao do exemplo:
O CICS tentar incluir um registro no arquivo 'D02TAB' com chave igual ao contedo
de 'WORK-CHAVE', O registro ser retirado de 'WORK-TAB' e seu tamanho de 130
bytes.
Condio de exceo:

DUPREC: o registro informado j existe no arquivo

NOSPACE: no existe mais espao no arquivo para a adio de registros.

INVREQ:

no existe, na 'FCT', previso para a utilizao deste recurso

o arquivo est definido na 'FCT' como ESDS e

o comando no possui a opo RBA

o arquivo est definido na 'FCT' como KSDS e

o comando possui a opo RBA

Outros: DSIDERR, ILLOGIC, IOERR, LENGERR, NOTOPEN.

Comando REWRITE
Formato do comando:
EXEC CICS REWRITE

Explicao do argumento

32

DATASET ('NOME
ARQUIVO')

Especifica-se o nome do arquivo que se deseja acessar.

FROM (WORK-AREA)

Especifica-se a rea onde se encontra o registro a ser


gravado.

LENGTH (+100)

Especifica-se o tamanho do registro a ser gravado.


Opcional se for registro fixo.

Este comando utilizado para regravar um registro em um arquivo. o registro deve ter
sido anteriormente recuperado atravs do comando 'READ' com a opo 'UPDATE'.
Aps a leitura, seu campo chave no poder ser alterado.
Exemplo do comando:
EXEC

CICS

REWRITE

DATASET
FROM
RIDFLD
LENGTH

('D02TAB')
(WORK-TAB)
(WORK-CHAVE)
(+130)

END-EXEC.

Explicao do exemplo:
O CICS tentar regravar um registro no arquivo 'D02TAB' com chave igual ao contedo
de 'WORK-CHAVE', o registro ser' retirado de 'WORK-TAB' e seu tamanho de 130
bytes.
Condio de exceo:

INVREQ:
o

No existe, na 'FCT', previso para a utilizao deste recurso.

O registro a ser regravado no foi recuperado atravs do comando


'READ' com a opo 'UPDATE'.

A chave do registro a ser regravado foi alterada pelo programa de


aplicao.

Outros: DSIDERR, ILLOGIC, IOERR, LENGERR, NOTOPEN, NOSPACE.

Comando DELETE
Formato do comando:
EXEC CICS DELETE

Explicao do argumento

DATASET ('NOME
ARQUIVO')

Especifica-se o nome do arquivo que se deseja acessar.

RIDFLD (WORKCHAVE)

Especifica-se a chave do registro a ser deletado.


Obrigatrio quando usado a opo 'GENERIC'

GENERIC

Indica que a chave informada parcial, ou seja, nao est

33

sendo informada a chave completa. todos os registros


que possuam esta chave parcial serao deletados.
KEYLENGTH (+10)

Especifica-se o tamanho da chave genrica. este


argumento usado em conjunto com a opo 'GENERIC'
e smente pode ser usada para arquivos KSDS.

NUMREC (WORK-QTD)

O CICS COLOCARA' NESTE CAMPO O NUMERO DE


REGISTROS QUE O VSAM DELETOU. ESTE ARGUMENTO
SO' PODE SER USADO EM CONJUNTO COM A OPCAO
'GENERIC'. O CAMPO DEVE SER DEFINIDO COMO PIC
S9(004) COMP.

RBA

Para arquivos ESDS, indica que a area especificada em


'RIDFLD' contem um RBA e nao a chave do registro. Neste
caso, a area especificada em 'RIDFLD' deve estar definida
PIC S9(008) COMP.

Este comando utilizado para deletar um registro ou, se especificada uma chave
genrica, um grupo de registros.
Caso um registro tenha sido lido com a opo 'UPDATE', este comando pode ser
utilizado para deleta-lo. Neste caso as opces 'RIDFLD', 'KEYLENGTH', 'GENERIC' e
'NUMREC' no podem ser utilizadas.
A opo 'GENERIC' no pode ser utilizada para arquivo com a opo 'LOG=YES' na
'FCT'.
Exemplo do comando:
EXEC

CICS

END-EXEC.

DELETE DATASET ('D02TAB')


RIDFLD (WORK-CHAVE)
KEYLENGTH (+10)
GENERIC
NUMREC (WORK-QTD)

Explicao do exemplo:
O CICS tentar deletar todos os registros que possuam em seu campo chave as 10
primeiras posies iguais as 10 primeiras posies do campo 'WORK-CHAVE'. Aps
efetuada a deleo, o CICS colocar em 'WORK-QTD' o nmero de registros que o
VSAM deletou.
CONDICAO DE EXCECAO:

NOTFND: O registro indicado no existe no arquivo. Tal condio de exceo


s acontecer se o registro nao foi lido com a opo 'UPDATE'.

Outros: DSIDERR, ILLOGIC, INVREQ, IOERR, NOTOPEN.

Comando UNLOCK
Formato do comando:

34

EXEC CICS UNLOCK


DATASET ('NOME
ARQUIVO')

Explicao do argumento
Especifica-se o nome do arquivo que se deseja acessar.

Este comando utilizado para liberar o controle exclusivo obtido atravs do comando
READ com opo 'UPDATE' ou atravs de uma operao de insero em massa de
registros (MASSINSERT).
utilizado quando um registro foi lido para ser atualizado, porem determinou-se que a
atualizao nao ir ocorrer.
O controle exclusivo feito em todo o 'CONTROL INTERVAL' a que pertence o registro.
Exemplo do comando:
EXEC
CICS
END-EXEC.

UNLOCK

DATASET ('D02TAB')

Explicao do exemplo:
O CICS liberar o controle exclusivo sobre os registros recuperados atravs do
comando 'READ' com a opo 'UPDATE' no arquivo 'D02TAB'.
Condio de exceo:

NOTOPEN: O arquivo informado est fechado.

Outros: DSIDERR, ILLOGIC, INVREQ, IOERR.

CICS - Pesquisa sequencial de arquivos - BROWSE

35

O BROWSE uma ferramenta que permite acessar qualquer tipo de arquivo


sequencialmente.
Comando STARTBR
Formato do comando:
EXEC CICS STARTBR

Explicao do argumento

DATASET ('NOME
ARQUIVO')

Especifica-se o nome do arquivo que se deseja acessar.

RIDFLD (WORKCHAVE)

Especifica-se a chave do registro a ser posicionado.

GENERIC

Indica que a chave informada parcial, ou seja, no est


sendo informada a chave toda.

KEYLENGTH (+10)

Especifica-se o tamanho da chave genrica. Este


arqgumento usado em conjunto com a opo
'GRENERIC' e s pode ser usada para arquivos KSDS.

GTEQ

O CICS tentar posicionar em registro com chave maior


ou igual a chave informada.

EQUAL

O CICS tentar posicionar em um registro com chave


igual a chave informada (DEFAULT)

RBA

Para arquivos ESDS, indica que a rea especificada em


'RIDFLD' contm um RBA e no a chave do registro. Neste
caso, a rea especificada em 'RIDFLD' deve estar definida
PIC S9(008) COMP.

Este comando utilizado para especificar o registro em um arquivo, no qual a


pesquisa sequencial ter incio. Observar que nenhum registro recuperado, apenas o
'POINTER' posicionado no registro indicado no comando.
Exemplo do comando:
EXEC
END-EXEC.

CICS

STARTBR

DATASET ('D02TAB')
RIDFLD (WORK-CHAVE)
GTEQ

Explicao do exemplo:
O 'POINTER' do arquivo ser posicionado no registro que possua o campo chave
maior ou igual ao campo 'WORK-CHAVE'.
Condio de exceo:
NOTFND: o registro informado no existe no arquivo.
Outros: DSIDERR, NOTOPEN, INVREQ, ILLOGIC, IOERR.
Comando READNEXT

36

Formato do comando:
EXEC CICS READNEXT

Explicao do argumento

DATASET ('NOME
ARQUIVO')

Especifica-se o nome do arquivo que se deseja acessar.

INTO (WORK-AREA)

Especifica-se a rea que receber o registro.

RIDFLD (WORKCHAVE)

Especifica-se a chave do registro a ser posicionado. Deve


ser o mesmo campo especificado no comando inicial
STARTBR.

KEYLENGTH (+10)

Especifica-se o tamanho da chave 'GENERICA'. Apesar de


nao possuir a opcao 'GENERIC' ao se especificar um
tamanho menor do que o tamanho da chave tem-se uma
pesquisa generica.

LENGTH (+100)

Especifica-se o tamanho do registro a ser lido. Opcional


se for registro fixo.

Este comando utilizado para leitura do prximo registro do arquivo em ordem


sequencial.
Exemplo do comando:>
EXEC

CICS

END-EXEC.

READNEXT

DATASET ('D02TAB')
INTO
(WORK-TAB)
RIDFLD (WORK-CHAVE)

Explicao do exemplo:
O cics ir recuperar o prximo registro do arquivo que possua o campo chave igual ao
campo 'WORK-CHAVE' e o registro recuperado ser colocado na rea 'WORK-TAB'.
Condioo de exceo:
ENDFILE: ocorre quando for encontrado final de arquivo.
Outros: DSIDERR, NOTOPEN, INVREQ, ILLOGIC, IOERR, LENGERR, DUPKEY.
Comando READPREV
Formato do comando:
EXEC CICS READNEXT

Explicao do argumento

DATASET ('NOME
ARQUIVO')

Especifica-se o nome do arquivo que se deseja acessar.

INTO (WORK-AREA)

Especifica-se a rea que receber o registro.

RIDFLD (WORKCHAVE)

Especifica-se a chave do registro a ser posicionado. Deve


ser o mesmo campo especificado no comando inicial

37

STARTBR.
KEYLENGTH (+10)

Especifica-se o tamanho total da chave, pois no


possivel usar a opo 'GENERIC' para este comando.
Opcional.

LENGTH (+100)

Especifica-se o tamanho do registro a ser lido. Opcional


se for registro fixo.

Este comando utilizado para leitura do registro anterior do arquivo em ordem


sequencial. Usado apenas em arquivos VSAM.
Exemplo do comando:
EXEC

CICS

END-EXEC.

READPREV

DATASET ('D02TAB')
INTO
(WORK-TAB)
RIDFLD (WORK-CHAVE)

Explicacao do exemplo:
O CICS ir recuperar o registro anterior do arquivo que possua o campo chave igual ao
campo 'WORK-CHAVE' e o registro recuperado ser colocado na area 'WORK-TAB'.
Condio de exceo:
ENDFILE: ocorre quando for encontrado final logico do arquivo, uma vez que foi
encontrado o inicio fisico do arquivo.
Outros: DSIDERR, NOTOPEN, INVREQ, ILLOGIC, IOERR, LENGERR, DUPKEY.
Comando RESETBR
Formato do comando:
EXEC CICS READNEXT

Explicao do argumento

DATASET ('NOME
ARQUIVO')

Especifica-se o nome do arquivo que se deseja acessar.

RIDFLD (WORKCHAVE)

Especifica-se a chave do registro a ser reposicionado.

GENERIC

Indica que a chave informada parcial, ou seja, nao est


sendo informada a chave completa.

KEYLENGTH (+10)

Especifica-se o tamanho da chave genrica. Este


argumento usado em conjunto com a opo 'GENERIC'
e smente pode ser usada para arquivos KSDS.

GTEQ

O CICS tentar posicionar em registro com chave maior


ou igual a chave informada.

EQUAL

O CICS tentar posicionar em um registro com chave


igual a chave informada ( DEFAULT ).

38

Para arquivos ESDS, indica que a rea especificada em


'RIDFLD' contm um RBA e no a chave do registro. Neste
caso, a rea especificada em 'RIDFLD' deve estar definida
PIC S9(008) COMP

RBA

Este comando utilizado para reposicionamento de um registro no arquivo para


posterior leitura. Observar que nenhum registro recuperado, apenas o 'POINTER'
posicionado no registro indicado no comando.
Este comando s pode ser executado se tiver sido executado anteriormente com
sucesso o comando 'STARTBR'. A opo 'RIDFLD' deve especificar a mesma rea de
dados especificada na opo 'RIDFLD' do comando 'STARTBR' correspondente, porm
o contedo desta rea pode ser diferente.
Exemplo do comando:
EXEC

CICS

RESETBR

DATASET ('D02TAB')
RIDFLD (WORK-CHAVE)

END-EXEC.

Explicao do exemplo:
O 'POINTER' do arquivo ser reposicionado no registro que possua o campo chave
igual ao campo 'WORK-CHAVE'. Notar que 'EQUAL' assumido no exemplo do
comando acima.
Condio de exceo:
NOTFND: o registro informado no existe no arquivo.
Outros: DSIDERR, NOTOPEN, INVREQ, ILLOGIC, IOERR.
Comando ENDBR
Formato do comando:
EXEC CICS ENDBR
DATASET ('NOME
ARQUIVO')

Explicao do argumento
Especifica-se o nome do arquivo que se deseja acessar.

Este comando utilizado para terminar o BROWSE em um arquivo.


Este comando obrigatorio quando for efetivada uma pesquisa sequencial pois se tal
fato no ocorrer, o BROWSE no terminar, ficar suspenso. Exemplo do comando:
EXEC
CICS
END-EXEC.

ENDBR

DATASET ('D02TAB')

Explicao do exemplo:
O CICS terminar o BROWSE no arquivo 'D02TAB'.

39

Condio de exceo:
INVREQ: ocorre se o comando for executado sem que tenha sido executado um
comando 'STARTBR' com sucesso.
Outros: DSIDERR, ILLOGIC, NOTOPEN.
Consideracao final sobre a pesquisa sequencial
Se a condio de exceo NOTFND ocorrer durante a pesquisa sequencial, h a
necessidade de codificar o comando RESETBR para reposicionar em um registro para
posterior leitura ou codificar o comando ENDBR para terminara pesquisa sequencial

CICS - Memria temporria ( T S )


usada para o armazenamento de dados intermedirios do CICS.
gerada e acessada apenas pelo CICS.
Pode ser acessada por varias tarefas.
Fica armazenado em memria principal ou em memria auxiliar ( DISCO ), at que seja
deletada ou o CICS pare de funcionar.
No necessrio constar em nenhuma tabela.
Cada registro a ser gravado deve possuir um nome. O nome pode variar em extenso
de 1 a 8 caracteres. Deve-se tomar o cuidado de atribuir uma identificao nica para o
registro.
Pode ser gravado um ou mais registros com o mesmo nome e dentro de um conjunto
de registros com o mesmo nome, um registro especfico poder ser acessado.
Comando WRITEQ TS
Formato do comando:
EXEC CICS WRITEQ TS
QUEUE
NOME')

('WORK-

FROM
AREA)

(WORK-

Explicao do argumento
Especifica-se o nome de dados atribuido ao registro.
Pode ser um literal ou uma rea de dados contendo o
nome a ser atribuido ao registro.
Especifica-se a rea onde se encontra o registro a ser
gravado

LENGTH (+100)

Especifica-se o tamanho da rea de dados a ser gravada.

ITEM

Se estiver sendo includo registros, o CICS coloca neste


campo o nmero do registro gravado. Se estiver sendo
feito atualizao, deve-se informar o nmero do registro a
ser alterado atravs deste campo.
O formato deste campo PIC S9(004) COMP.

REWRITE

(WORK-POSI)

Especifica-se que o regstro cujo nmero est sendo

40

informado na opo 'ITEM' para ser atualizado.

MAIN

Indica que o registro para ser armazenado na memria


principal. salvo em raras ocasies e para pequenas
quantidades de registros, esta opo no deve ser
utilizada

AUXILIARY

Indica que o registro para ser armazenado na memria


auxiliar. Esta opo o default.

Este comando utilizado para gravar registros em memria temporria ( TEMPORARY


STORAGE - TS )
Exemplo do comando:

EXEC

CICS

WRITEQ

TS

QUEUE ('WORK-NOME')
FROM
(WORK-AREA)
LENGTH (+100)

END-EXEC.

Explicao do exemplo:
O CICS gravar o registro em memoria temporaria ( TS ) com o nome especificado em
'WORK-NOME', os dados que esto em 'WORK-AREA' com o tamanho de 100 bytes.
Condio de exceo:

NOSPACE: ocorre se nao houver mais espao em memria para a gravao do


registro. A ao padro do CICS suspender a tarefa at existir espao. Caso
nao queira que tal fato ocorra, deve ser codificado um 'HANDLE CONDITION'
para tal exceo.

ITEMERR: ocorre se o nmero especificado em item for diferente dos nmeros


de registros existentes na fila 'TS', caso use-se a opo 'REWRITE'.

QIDERR: no existe nenhuma fila 'TS' com o nome especificado na memria


temporria.

INVREQ: o tamanho do registro a ser gravado zero.

LENGERR: o tamanho do registro lido maior do que o tamanho especificado


na opcao 'LENGTH'.

Outros: dsiderr, illogic, notopen.

Comando READQ TS
Formato do comando:
EXEC CICS READQ TS
QUEUE

('WORK-

Explicao do argumento
Especifica-se o nome de dados do registro que se deseja

41

acessar. Pode ser um literal ou uma area de dados


contendo o nome do registro a ser lido.

NOME')
INTO

(WORK-AREA)

Especifica-se a rea onde dever ser colocado o registro


lido.

LENGTH (+100)

Especifica-se o tamanho do registro a ser lido.

ITEM (WORK-POSI)

Especifica-se o numero do registro a ser lido. Esta


opo deve ser usada se for necessrio acessar o registro
diretamente.
O formato deste campo PIC S9(004) COMP.

NEXT

Especifica que o prximo registro da fila dever ser


acessado. Esta opo deve ser usada se for necessrio
acessar o registro sequencialmente. Esta opo o
DEFAULT.

Este comando utilizado para ler registros em memria temporria ( TEMPORARY


STORAGE - TS )
Exemplo do comando:

EXEC

CICS

READQ

TS

QUEUE ('WORK-NOME')
INTO
(WORK-AREA)
LENGTH (+100)

END-EXEC.

Explicao do exemplo:
O CICS ler o prximo registro em memria temporria ( TS ) com o nome especificado
em 'WORK-NOME'. OS dados ficaro em 'WORK-AREA' com o tamanho de 100 bytes.
Condio de exceo:

ITEMERR: ocorre se o nmero especificado em item for diferente dos numeros


de registros existentes na fila 'TS' ou chegou-se ao final da fila

Outros: INVREQ, IOERR, LENGERR, QIDERR.

Comando DELETEQ TS
Formato do comando:
EXEC CICS DELETEQ
TS
QUEUE
NOME')

('WORK-

Explicao do argumento
Especifica-se o nome da fila de dados que se deseja
deletar. Pode ser um literal ou uma rea de dados
contendo o nome da fila a ser deletada.

Este comando utilizado para deletar registros em memria temporria ( TEMPORARY


STORAGE - TS )

42

Exemplo do comando:

EXEC

CICS

DELETEQ

TS

QUEUE

('WORK-NOME')

END-EXEC.

Explicao do exemplo:
O CICS deletar a fila de dados em memria temporria ( TS ), ou seja, deletar todos
os registros pertencentes fila especificada.
Deve-se sempre lembrar que o espao ocupado pelos dados na memria temporria
no automaticamente liberado apos os dados serem usados. Consequentemente,
quando no necessitar mais dos dados na memria temporria, deve-se liberar o
espao ocupado emitindo o comando acima.
Condio de exceo:
QIDERR: ocorre se no existir nenhuma fila de TS com o nome especificado na opo
'QUEUE'.

CICS - Dados transitrios ( T D )


usada para o armazenamento de dados transitrios do CICS.
Os dados so disponveis para processamento 'SEQUENCIAL' para qualquer tarefa que
desejar acessar.
Cada registro a ser gravado deve possuir um nome. O nome pode variar em extenso
de 1 a 4 caracteres.
Deve-se tomar o cuidado de atribuir uma identificao nica para o registro.
Deve ser definido na DESTINATION CONTROL TABLE ( DCT ) o nome dos dados
transitorios. Deve-se, tambem, definir se os dados sao 'INTRA-PARTITION' ou 'EXTRAPARTITION'.
Os dados gravados em INTRA-PARTITION possuem as seguintes caracteristicas:

sao gerados e acessados somente pelo cics

podem ser gravados por tarefas diferentes

pode ser lido apenas uma vez

pode ser definido pelo programador de aplicaao para ser deletado logo aps a
leitura

so gerados registros sequenciais de tamanho variavel

43

ficam armazenados em dispositivos de acesso direto

Os dados gravados em EXTRA-PARTITION possuem as seguintes caracteristicas:

pode ser gerado no 'CICS' e acessado via 'BATCH'

pode ser gerado em 'BATCH' e acessado via 'CICS'

podem ser gravados por tarefas diferentes

deve ser definido na 'DCT' como entrada ou saida

pode ser lido apenas uma vez

sao gerados registros sequenciais de tamanho fixo ou variavel

podem ficar armazenados em disco, fita ou impressora

Comando WRITEQ TD
Formato do comando:
EXEC CICS WRITEQ TD

Explicao do argumento

Especifica-se o nome de dados atribuido ao registro.


QUEUE ('WORK-NOME') Pode ser um literal ou uma area de dados contendo o
nome a ser atribuido ao registro.
FROM (WORK-AREA)

Especifica-se a area onde se encontra o registro a ser


gravado.

LENGTH (+100)

Especifica-se o tamanho da rea de dados a ser gravada.

Este comando utilizado para gravar registros de dados transitrios ( TRANSIENT


DATA - TD )
A opo 'LENGTH' somente precisa ser especificada caso os registros sejam gravados
em outro dispositivo que no seja disco.
Exemplo do comando:
EXEC
END-EXEC.

CICS

WRITEQ

TD

QUEUE ('WORK-NOME')
FROM
(WORK-AREA)
LENGTH (+100)

Explicao do exemplo:
O CICS gravar o registro como dados transitrios (TD) com o nome especificado em
'WORK-NOME', os dados que esto em 'WORK-AREA' com o tamanho de 100 bytes.

44

Condio de exceo:

NOSPACE: ocorre se no houver mais espao na fila de TD para a gravao do


registro. Esta condio s ocorre quando se processam destinos de
intrapartio.

NOTOPEN: ocorre se o destino estiver fechado. Esta condio s ocorre


quando se processam destinos de extrapartio. Estes destinos podem ser
abertos e fechados pelo administrador do CICS.

QIDERR: no existe nenhuma fila 'TD', definido na 'DCT' com o nome


especificado na opo 'QUEUE'.

LENGERR: o tamanho do registro lido maior do que o tamanho mximo da


fila definido na 'DCT'. Ocorre tambm se for especificado um tamanho errado
para registros de tamanho fixo. Ocorre tambm se no for codificada a opo
'LENGTH' e a fila de destino no for disco.

Outros: ioerr.

Comando READQ TD
Formato do comando:
EXEC CICS READQ TD

Explicao do argumento

Especifica-se o nome de dados do registro que se deseja


QUEUE ('WORK-NOME') acessar. Pode ser um literal ou uma area de dados
contendo o nome do registro a ser lido.
INTO (WORK-AREA)

Especifica-se a rea onde dever ser colocado o registro


lido.

LENGTH (+100)

Especifica-se o tamanho do registro a ser lido. No pode


ser maior que o tamanho especificado na 'DCT'.

Este comando utilizado para ler registros de dados transitrios ( TRANSIENT DATA TD ) Exemplo do comando:

EXEC
END-EXEC.

CICS

READQ

TD

QUEUE ('WORK-NOME')
INTO
(WORK-AREA)
LENGTH (+100)

Explicao do exemplo:
O CICS lera' o proximo registro de dados transitorios ( TD ) com o nome especificado
em 'WORK-NOME'. Os dados ficarao em 'WORK-AREA' com o tamanho de 100 bytes.
Condicao de excecao:

LENGERR: o tamanho do registro lido maior do que o tamanho maximo da fila

45

definido na 'DCT'. Ocorre tambm se for especificado um tamanho errado para


registros de tamanho fixo. Ocorre tambm se nao for codificada a opcao
'LENGTH' e a fila de destino nao for disco. Ocorre tambm se nao for codificada
a opcao 'LENGTH' e o registro for de tamanho varivel. O tamanho do registro
lido maior do que o tamanho especificado na opo 'LENGTH'. Neste caso, a
area indicada na opo ser atualizado com o valor real do tamanho do
registro.

NOTOPEN: ocorre se o destino estiver fechado.

QIDERR: no existe nenhuma fila 'TD', definido na'DCT' com o nome


especificado na opo 'QUEUE'

QZERO: no existe nenhum registro armazenado na fila de dados transitrios


( td )

Outros: INVREQ, IOERR, LENGERR, QIDERR.

Comando DELETEQ TD
Formato do comando:
EXEC CICS DELETEQ
TD

Explicao do argumento

Especifica-se o nome da fila de dados que se deseja


QUEUE ('WORK-NOME') deletar. Pode ser um literal ou uma area de dados
contendo o nome da fila a ser deletada.
Este comando utilizado para deletar registros de uma fila de dados transitrios
( TRANSIENT DATA - TD )
Este comando ser utilizado se a rea em que foi gravado o registro de dado
transitrio for no-reutilizavel.
Exemplo do comando:
EXEC

CICS

DELETEQ

TD

QUEUE ('WORK-NOME')
END-EXEC.

Explicao do exemplo: O CICS deletar a fila de dados transitrios ( TD ), ou seja,


deletar todos os registros pertencentes a fila especificada.
Condiao de exceo:
QIDERR: ocorre se nao existir nenhuma fila de TD com o nome especificado na opcao
'QUEUE'.

46

CICS - Quadro comparativo entre 'TS' e 'TD' (INTRA-PARTITION)


Item comparado

INTRA TD

TS

Queue ('NAME')

4 bytes

8 bytes

Dispositivo

Disco

Memria ou disco

Nmero de vezes que Apenas uma vez


o dado pode ser lido

Quantas vezes for


necessaria

Inicia nova tarefa

No

Sim

Comandos (DEFAULT WRITEQ TD


TS)
READQ TD
DELETEQ TD

WRITEQ TS
READQ TS
DELETEQ TS

Processamento

Em 'BATCH' e
Em 'CICS'

Somente no 'CICS"

Acesso

Sequencial

Direto ou sequencial

Atualizao

No

Sim

Exemplo de
utilizao

Estatsticas, fazer
interface com o
'BATCH"

Auxilia o
Desenvolvedor na
confeco de
programas

CICS - Usando o DL/I com o CICS


Quando trabalhamos com o CICS, pode haver a necessidade de acessarmos um banco
de dados hierarquico usando o DL/I.
O CICS prove a facilidade de acessarmos o DL/I, utilizando todos os conceitos
aprendidos com o uso do DL/I.
O PSB que ir ser acessado dever estar definido em uma tabela propria denominada
'DLZACT'.
EM um programa CICS usando DL/I tambem necessrio a checagem do STATUS apos
cada comando de acesso ao banco de dados.
O compilador inclui um item de grupo denominado 'DLZDIB' onde contem o campo
'DIBSTAT' que o local onde o CICS coloca o status retornado aps cada execucao de
comando DL/I.
Aps cada comando de acesso DL/I deve-se checar o status retornado atravs do
campo 'DIBSTAT'.
Os codigos retornados no 'DIBSTAT' so os cdigos padres do DL/I.
Comando SCHEDULE
Formato do comando:

47

EXEC DLI SCHEDULE


PSB ('NOME PSB')

Explicao do argumento
Especifica-se o nome do PSB que deseja-se tornar
disponvel para o acesso do programa em CICS.

Este comando utilizado para 'assinalar' um PSB para acesso do programa em CICS.
Este comando ser utilizado somente quando houver necessidade de acesso a um
banco de dados.
Exemplo do comando:

EXEC
DLI
END-EXEC.

SCHEDULE

PSB

('PS06001')

Explicao do exemplo:
O CICS, atravs do DL/I tornar disponvel o PSB especificado para o acesso do
programa.
Condicao de excecao:
As condies de exceo deste comando so tratadas pelo programa 'ABENDLI'.
portanto deve-se codificar o comando 'HANDLE ABEND' especificando o programa
'ABENDLI'.
Comando TERMINATE
Formato do comando:
EXEC DLI TERMINATE

No possui argumentos

Este comando utilizado para terminar o acesso ao DL/I pelo programa em CICS.
Este comando ser utilizado sempre que no mais houver necessidade de acesso ao
banco de dados.
Exemplo do comando:

EXEC
DLI
END-EXEC.

TERMINATE

Explicao do exemplo:
O CICS, atravs do DL/I terminar o acesso ao banco de dados atraves do PSB
'SCHEDULADO' anteriormente.
Condio de exceo:
As condies de exceo deste comando so tratadas pelo programa 'ABENDLI'.
Portanto deve-se codificar o comando 'HANDLE ABEND' especificando o programa

48

'ABENDLI'.
Comando SYNCPOINT
Formato do comando:
EXEC CICS SYNCPOINT

Explicao do argumento
Especifica-se que as alteraes efetuadas devem ser
ignoradas.

ROLLBACK

Este comando utilizado para ignorar as atualizaes efetuadas no banco de dados


durante a execuo da tarefa.
Este comando ser utilizado sempre que ocorrer algum problema na atualizao do
banco de dados.
A execuo do comando sem a opo 'ROLLBACK' efetiva as atualizaes at ento
efetuadas pela tarefa.
Exemplo do comando:

EXEC
CICS
END-EXEC.

SYNCPOINT

ROLLBACK

Explicao do exemplo:
O CICS ir ignorar todas as atualizaes efetuadas no banco de dados pelo programa
de aplicao. aps a execuo deste comando, o banco de dados ficar com os dados
inalterados.
Condio de exceo:
As condies de exceo deste comando so tratadas pelo programa 'ABENDLI'.
Portanto deve-se codificar o comando 'HANDLE ABEND' especificando o programa
'ABENDLI'. Comandos de acesso e atualizao do banco de dados.
Os comandos de acesso ao banco de dados seguem ao formato abaixo:

EXEC

END-EXEC.

DLI

CODIGO

USING

PCB (NR PCB)


WHERE
(CONDICAO)
FIELDLENGTH (TAMANHO)
SEGMENT (NOME SGTO)
FROM/INTO (AREA DADOS)
SEGLENGTH (TAMANHO)

Onde:

CODIGO: o codigo de funcao que deseja-se executar que pode ser GU, GN,

49

GNP, REPL, ISRT e DLET.

PCB: especifica-se o numero do PCB no PSB correspondente. Varia de 1 a


quantidade de PCB'S no PSB.

WHERE: Especifica-se o campo chave do segmento e a condicao de


comparacao. equivale a usar um SSA qualificado.

FIELDLENGTH: Especifica-se o tamanho do campo chave

SEGMENT: Especifica-se o nome do segmento que deseja acessar.

FROM: Especifica-se a area de dados de onde o dl/i pegar os dados, se estiver


alterando o banco de dados.

INTO: Especifica-se a area de dados onde o segmento acessado ser


armazenado, se estiver lendo o banco de dados.

SEGLENGTH: Especifica-se o tamanho da area especificada na opo


'SEGMENT'.

END-EXEC: Delimitador para comandos para programas COBOL. Indica o final


de um comando CICS.

Exemplo para programa COBOL de um comando com SSA qualificado:


EXEC

DLI

GU

USING

PCB (1)
SEGMENT (SG0801)
WHERE (FL080101 =
WORK-CARGO-DB08)
FIELDLENGTH (7)
INTO (SG0801)
SEGLENGTH (+100)

END-EXEC.

Explicao do exemplo:

O CICS, atraves do DL/I, recuperar o SG0801 que satisfaa a condio


especificada no parametro 'WHERE'.

O tamanho do campo chave do segmento 7 bytes e o tamanho do segmento


100 bytes.

Os dados do segmento aps o acesso sero colocados na rea de dados


SG0801.

Foi utlizado o primeiro PCB do PSB especificado na tabela "DLZACT" para


acesso deste programa.

Exemplo para programa COBOL de um comando coM SSA nao qualificado:

50

EXEC

DLI

GNP

USING

END-EXEC.

PCB (5)
SEGMENT (SG0602)
INTO (SG0602)
SEGLENGTH (+162)

Explicao do exemplo:
O CICS, atravs do DL/I, recuperar o prximo SG0602 que esteja subordinado a um
pai especifico estabelecido atravs de um 'GU' ou 'GN'. O tamanho do segmento 162
bytes. Os dados do segmento aps o acesso sero colocados na rea de dados
SG0602. Foi utilizado o quinto PCB do PSB especificado na tabela "DLZACT" para
acesso deste programa.
Observao:
Lembrar que apos cada comando de acesso ao banco de dados deve ser checado o
campo 'DIBSTAT' tomando as providncias necessrias para cada caso.

CICS - Cdigos EIBRESP


Esta pgina contm os cdigos CICS EIBRESP produzidos a partir de chamadas de E/S.
Esta lista pode ser encontrada nos livros da IBM:
Bookshelf: CICS Transaction Server (Pesquisar bookshelves)
Book:

CICS Application Programming Reference (Pesquisar books)

Cdigos:
C
C
C
C
C
C
Condi
Condi
Condi
Condi
Condi
Condi
dig
dig
dig
dig
dig
dig
o
o
o
o
o
o
o
o
o
o
o
o
00

NORMA
L

06 EOC

01 ERROR

02 RDATT

07 INBFMH

08

03 WRBRK 04 EOF

ENDINP
NONVA
09
T
L

10

NOSTA
RT

05 EODS
11

TERMI
DERR

12

FILENO
INVRE
13 NOTFND 14 DUPREC 15 DUPKEY 16
TFOUND
Q

17 IOERR

18

NOSPAC
NOTOPE
19
E
N

23 QZERO

24 SIGNAL

25 QBUSY

20

ENDFIL
E

26

ITEMER
PGMIDE
TRANSI
ENDDA
27
28
29
R
RR
DERR
TA

21

ILLOGI
C

LENGE
RR

31

EXPIRE
D

32

RETPAG
E

33 RTEFAIL 34

37

INVERR
TERM

38

INVMPS
Z

39

IGREQI
D

44 QIDERR

45

NOJBUF
SELNE
46 DSSTAT 47
SP
RR

NOPASS
BKRD

51

NOPASS
SYSIDE
ISCINV
ENQBU
53
54
55
BKWR
RR
REQ
SY

43 JIDERR
49

UNEXPI
N

50

40

RTESO
ME

22

35

TSIOER
MAPFAI
36
R
L

OVERFL
41 INVLDC 42 NOSTG
OW
48

FUNCE
RR

51

56

ENVDEF
IGREQC
57
ERR
D

62

CBIDER
R

70

NOTAUT
SUPPRE
72
H
SSED

80

NOSPO
OL

84

DISABL
ED

86

STRELE
OPENER
SPOLB
87
88
RR
R
USY

90

DSNNO
NODEID
TASKIDE
TCIDER
91
92
93 TFOUN
ERR
RR
R
D

94

96

OUTDES
PARTNE
97
CRERR
RIDERR

10 LOCKE
0 D

10 RECOR
1 DBUSY

PROCE
10
SSBUS
6
Y

ACTIVI
10
TYBUS
7
Y

63

85

58

SESSIO
SYSBUS
SESSB
59
60
NERR
Y
USY

61

NOTALL
OC

INVEXIT
INVPAR
INVPAR
PARTNF
USERI
64
65
66
69
REQ
TNSET
TN
AIL
DERR

ALLOCE
RR

98

TERMER
ROLLE
82
83 END
R
DBACK

PROFIL
NETNA
99
EIDERR
MERR

UOWLN
10 UOWNO 10
10 LINKAB
OTFOUN
2 TFOUND 3
4 END
D
10 PROCES 10 ACTIVIT
8 SERR
9 YERR

81

10 CHANG
5 ED

LOADI
NG

11 CONTAI 11 EVENTE 11 TOKEN


0 NERERR 1 RR
2 ERR

11 POOLER 11 TIMERER 11 SYMBO


4 R
5 R
6 LERR

11 TEMPLA 12 RESUN
7 TERR
1 AVAIL

89

SPOLE
RR

95

MODEL
IDERR

11 NOTFIN
3 ISHED
12 CHANN
2 ELERR

12 CCSIDE
3 RR

52

Você também pode gostar