Académique Documents
Professionnel Documents
Culture Documents
Módulos de gerência:
Exemplos:
Tabelas do sistema:
São utilizadas pelo CICS para se definir os equipamentos que podem ser utilizados,
bem como os recursos que serão utilizados em termos de arquivos, programas,
transações, etc. São geradas pelo analista de sistemas responsável pelo
gerenciamento do CICS.
Em virtude dos equipamentos estarem pre-definidos em uma tabela, nao há a
necessidade da definição no programa de aplicação.
Exemplos:
FILE CONTROL TABLE ( FCT ) - definição dos arquivos utilizados por cada programa
de aplicação
TERMINAL CONTROL TABLE ( TCT ) - definição de cada terminal da rede
Blocos de controle:
são utilizados pelo CICS para acesso e atualização das informações modificáveis
(dinamicas), necessárias para a execução do programa de aplicação.
Exemplo:
Programas de aplicação:
Transação conversacional:
Transação pseudo-conversacional:
+------------------+
I INICIO I
+------------------+
I CONSISTENCIA I . Um programa grande
+------------------+ . Existe em memória código que
I TESTE DE CODIGOS I não é usado simultaneamente
+------------------+ ou seja, se for feito apenas
I MODULO PRINCIPAL I inclusão, todos os módulos,
+------------------+ mesmo os não utilizados, es-
I INCLUSAO I tarão residentes na memória
+------------------+
I EXCLUSAO I
+------------------+
I ATUALIZACAO I
+------------------+
I FIM I
+------------------+
+------------------+
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 INCLUSAO I I EXCLUSAO I I ALTERACAO I
I I +----------+ +----------+ +-----------+
I I
I I
I I . Pode ser composto por varios
I I programas
+------------------+ . Tamanhos pequenos e parecidos
I CONSISTENCIA I . Só está na memoria o neces-
+------------------+ sario, ou seja, se não for
feita nenhuma exclusão, o mó-
dulo de exclusão nao será
carregado
EXEC CICS
FUNCAO
OPCAO (ARG)
END-EXEC.
Onde:
Opção : É uma palavra chave que descreve recursos a disposição em cada função. algumas
opções são seguidas por um argumento entre parenteses.
END-EXEC: Delimitador para comandos para programas cobol. Indica o final de um comando
CICS.
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 não
existe tais comandos, antes de ser compilado ou montado, o programa de aplicação é
processado por um tradutor de comandos, que muda os comandos do CICS em comandos
MOVE e CALL que existem no COBOL.
Durante a execução do programa, estes comandos CALL chamam a rotina de interface do nível
de comando e passam os parâmetros apropriados para a rotina.
A rotina de interface então chama o módulo de gerencia do CICS que é indicado pela função do
comando no programa de aplicação.
O CICS registra este tipo de dados internos em áreas que o programa de aplicação nao tem
acesso direto.
Contudo, o CICS copia os dados num bloco de interface de execução (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 aplicação.
O EIB para uma tarefa armazena informações que o programa de aplicação pode então pesquisar
usando-se os nomes dos campos. segue os nomes de alguns campos e seus conteúdos.
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
EIBPOSN S9(004) Posição do cursor na tela na hora da última entrada. este campo
está no formato computational (COMP)
Para a atualização 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.
EXEC CICS
ASKTIME
END-EXEC.
Esta tela é definida pelo programador, utilizando os recursos oferecidos pelo BASIC MAPPING
SUPPORT ( BMS ), que tem a função de fazer o interface entre o programa de aplicação e o
'TERMINAL CONTROL PROGRAM ( TCP )'.
1 - Mapa físico ( MAPSET ) que é catalogado na CIL em formato de 'PHASE'. E' constituído por
caracteres de controle, constantes e dados variáveis do aplicativo.
2 - Mapa lógico ( MAP ) catalogado na SOURCE ( BIBLIOTECA DE DADOS ) em formato de 'BOOK'.
e' constituído somente pelos dados variáveis.
A definição de mapas físicos e lógicos é feita utilizando-se 'MACROS' que seguem a regra
'ASSEMBLER' para a sua codificação.
Para a codificação, 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 codificação das macros, apesar de
poder começar na coluna 2, costuma-se codificar começando na coluna 10. costuma-se, tambem,
codificar os parâmetros necessários para cada macro, a partir da coluna 16, exceto na primeira
linha onde comeca-se a definir na coluna 17.
A coluna 72 é reservada para ser usada quando deseja-se continuar a definição de uma macro em
uma outra linha, sendo que, a linha a ser continuada deve ter, na coluna 72, um caracter de
continuação diferente de branco e a linha de continuação deve ter a sua codificação iniciada na
coluna 16.
MACRO DFHMSD
....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
formato:
+----------------+
I LL I A I DADOS I
+----------------+
MACRO DFHMDI
....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
MACRO DFHMF
....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
1 2 3 4 5 6 7 8
1234567890123456789012345678901234567890123456789012345678901234567890123456780
01 MZ0001AI.
02 FILLER PIC X(012).
02 TRANSL COMP PIC S9(004).
02 TRANSF PIC X(001).
02 FILLER REDEFINES TRANSF.
03 TRANSA PIC X(001).
02 TRANSI PIC X(004).
02 SALVAL COMP PIC S9(004).
02 SALVAF PIC X(001).
02 FILLER REDEFINES SALVAF.
03 SALVAA PIC X(001).
02 SALVAI PIC X(004).
02 DATAL COMP PIC S9(004).
02 DATAF PIC X(001).
02 FILLER REDEFINES DATAF.
03 DATAA PIC X(001).
02 DATAI.
03 DIAI PIC X(002).
03 MESI PIC X(002).
03 ANOI PIC X(002).
02 CODALL COMP PIC S9(004).
02 CODALF PIC X(001).
02 FILLER REDEFINES CODALF.
03 CODALA PIC X(001).
02 CODALI PIC X(005).
02 NOMEALL COMP PIC S9(004).
02 NOMEALF PIC X(001).
02 FILLER REDEFINES NOMEALF.
03 NOMEALA PIC X(001).
02 NOMEALI PIC X(020).
02 NOTASD OCCURS 5 TIMES.
03 NOTASL COMP PIC S9(004).
03 NOTASF PIC X(001).
03 NOTASI PIC X(005).
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 opção 'MODE=IN' ou acrescido do sufixo 'O'
se for usada a opção 'MODE=OUT'.
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).
LABEL + SUFIXO F - Essa área é um byte de flag. Usado pelo CICS para
saber se o campo foi alterado ou nao.
1 2 3 4 5 6 7 8
1234567890123456789012345678901234567890123456789012345678901234567890123456780
01 DFHBMSCA.
02 DFHBMPEM PIC X(001) VALUE IS '.'.
02 DFHBMPNL PIC X(001) VALUE IS '.'.
02 DFHBMASK PIC X(001) VALUE IS '0'.
02 DFHBMUNP PIC X(001) VALUE IS ' '.
02 DFHBMUNN PIC X(001) VALUE IS '&'.
02 DFHBMPRO PIC X(001) VALUE IS '-'.
02 DFHBMBRY PIC X(001) VALUE IS 'H'.
02 DFHBMDAR PIC X(001) VALUE IS '<'.
02 DFHBMFSE PIC X(001) VALUE IS 'A'.
02 DFHBMPRF PIC X(001) VALUE IS '/'.
02 DFHBMASF PIC X(001) VALUE IS '1'.
02 DFHBMASB PIC X(001) VALUE IS '8'.
02 DFHBMEOF PIC X(001) VALUE IS '.'.
02 DFHBMDET PIC X(001) VALUE IS '.'.
02 DFHBMPSO PIC X(001) VALUE IS '.'.
02 DFHBMPSI PIC X(001) VALUE IS '.'.
02 DFHSA PIC X(001) VALUE IS '.'.
02 DFHCOLOR PIC X(001) VALUE IS '.'.
02 DFHPS PIC X(001) VALUE IS '.'.
02 DFHHLT PIC X(001) VALUE IS '.'.
02 DFH3270 PIC X(001) VALUE IS '.'.
02 DFHVAL PIC X(001) VALUE IS 'A'.
02 DFHOUTLN PIC X(001) VALUE IS 'B'.
02 DFHBKTRN PIC X(001) VALUE IS '.'.
02 DFHALL PIC X(001) VALUE IS '.'.
02 DFHERROR PIC X(001) VALUE IS '.'.
02 DFHDFT PIC X(001) VALUE IS '.'.
02 DFHDFCOL PIC X(001) VALUE IS '.'.
02 DFHBLUE PIC X(001) VALUE IS '1'.
02 DFHRED PIC X(001) VALUE IS '2'.
02 DFHPINK PIC X(001) VALUE IS '3'.
02 DFHGREEN PIC X(001) VALUE IS '4'.
02 DFHTURQ PIC X(001) VALUE IS '5'.
02 DFHYELLO PIC X(001) VALUE IS '6'.
02 DFHNEUTR PIC X(001) VALUE IS '7'.
02 DFHBASE PIC X(001) VALUE IS '.'.
02 DFHDFHI PIC X(001) VALUE IS '.'.
02 DFHBLINK PIC X(001) VALUE IS '1'.
02 DFHREVRS PIC X(001) VALUE IS '2'.
02 DFHUNDLN PIC X(001) VALUE IS '4'.
02 DFHMFIL PIC X(001) VALUE IS '.'.
02 DFHMENT PIC X(001) VALUE IS '.'.
02 DFHMFE PIC X(001) VALUE IS '.'.
02 DFHUNNOD PIC X(001) VALUE IS '('.
02 DFHUNIMD PIC X(001) VALUE IS 'I'.
02 DFHUNNUM PIC X(001) VALUE IS 'J'.
02 DFHUNINT PIC X(001) VALUE IS 'R'.
02 DFHUNNON PIC X(001) VALUE IS ')'.
02 DFHPROTI PIC X(001) VALUE IS 'Y'.
02 DFHPROTN PIC X(001) VALUE IS '%'.
02 DFHMT PIC X(001) VALUE IS '.'.
02 DFHMFT PIC X(001) VALUE IS '.'.
02 DFHMET PIC X(001) VALUE IS '.'.
02 DFHMFET PIC X(001) VALUE IS '.'.
02 DFHDFFR PIC X(001) VALUE IS '.'.
02 DFHLEFT PIC X(001) VALUE IS '.'.
02 DFHOVER PIC X(001) VALUE IS '.'.
02 DFHRIGHT PIC X(001) VALUE IS '.'.
02 DFHUNDER PIC X(001) VALUE IS '.'.
02 DFHBOX PIC X(001) VALUE IS '.'.
02 DFHSOSI PIC X(001) VALUE IS '.'.
02 DFHTRANS PIC X(001) VALUE IS '0'.
02 DFHOPAQ PIC X(001) VALUE IS '.'.
Formato do comando:
o comando acima é utilizado para especificar um parágrafo que receberá o controle caso uma
condição de exceção ( erro de leitura/gravação em um arquivo ) ocorra.
O tratamento de uma determinada exceção prevalece até que seja especificado outro 'HANDLE
CONDITION' para a mesma exceção, ou se for executado o comando que ignore esta condição de
exceção.
Existe uma condição especial que engloba todas as condições de exceção que podem ocorrer,
com exceção das condições de exceção que já foram especificadas no programa de aplicação,
estaá condicao é 'ERROR'.
Exemplo do comando:
EXEC CICS
HANDLE CONDITION LENGERR (0100-LENGERR)
DUPKEY (0200-DUPKEY)
ERROR (0300-ERROR)
END-EXEC.
Explicação do exemplo:
Caso ocorra algum erro de tamanho em alguma funcao do COMMAND LEVEL, o controle do
programa será desviado para o parágrafo '0100-LENGERR'.
Caso haja registro em duplicata, o controle do programa será desviado para o 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'.
Formato do comando:
O comando acima é utilizado para ignorar uma determinada condição de exceção. Caso ocorra a
condição de exceção especificada a execução do programa continuará na instrucao seguinte a
instrução que originou a condição de exceção.
Exemplo do comando:
EXEC CICS
IGNORE CONDITION LENGERR
END-EXEC.
Explicação do exemplo:
Caso ocorra algum erro de tamanho em alguma funcao do COMMAND LEVEL, apos a execução
deste comando, o CICS irá ignora-lo, ou seja, o programa continuará com sua execução
normalmente.
Observação:
Caso nao sejam codificados os comandos HANDLE e nem IGNORE CONDITION para uma
determinada condição de exceção e esta vier a ocorrer, o programa cancelará.
CICS - Controle de programas
Quando desenvolve-se programas de aplicação em COMMAND LEVEL,
normalmente necessitamos de transferir o controle para outro
programa de aplicação.
Comando LINK
Formato do comando:
COMMAREA
Especifica a área que contém os dados que
(WORK-
serão passados ao programa chamado.
COMMAREA)
Especifica o tamanho da área em que estão os
dados que estão sendo passados ao programa
LENGTH (+20)
chamado. Deve, obrigatoriamente ser usado,
quando for usado 'COMMAREA'.
Exemplo do comando:
Explicação do exemplo:
Condição de exceção:
Comando XCTL
Formato do comando:
COMMAREA
Especifica a área que contém os dados que
(WORK-
serão passados ao programa chamado.
COMMAREA)
Exemplo do comando:
Explicação do exemplo:
Condição de exceção:
Comando RETURN
Formato do comando:
EXEC CICS
Explicação do argumento
RETURN
COMMAREA
Especifica a área que contém os dados que
(WORK-
serão passados ao programa chamado.
COMMAREA)
Explicacão do exemplo:
Condição de exceção:
Observação:
caracteristicas do terminal
endereco para o cics
codigo do terminal
informacoes de controle ( ex.: se já existe uma transação
'ATACHADA AO TERMINAL').
Formato do comando:
Exemplo do comando:
Explicacao do exemplo:
Condição de exceção:
Formato do comando:
EXEC CICS
Explicação do argumento
RECEIVE
Exemplo do comando:
Explicação do exemplo:
Condição de exceção:
Formato do comando:
Este comando e' utilizado para 'ENVIAR' varios mapas para o terminal,
mapas estes 'ACUMULADOS' anteriormente através da opção 'ACCUM'
do comando 'SEND MAP'.
Exemplo do comando:
Explicação do exemplo:
Formato do comando:
Este comando deve ser utilizado sempre que ocorrer algum tipo de
erro que haja a necessidade de abandonar a paginação, tendo sido
emitido algum comando 'SEND MAP' com a opção 'ACCUM'. Exemplo
do comando:
Explicacao do exemplo:
Será deletado todas as páginas anteriormente 'ACUMULADAS' através
da opção 'ACCUM' do comando 'SEND MAP'.
Condição de exceção:
01 DFHAID.
02 DFHNULL PIC X(001) VALUE IS
'.'.
02 DFHENTER PIC X(001) VALUE IS
QUOTE.
02 DFHCLEAR PIC X(001) VALUE IS
'_'.
02 DFHCLRP PIC X(001) VALUE IS
'.'.
02 DFHPEN PIC X(001) VALUE IS
'='.
02 DFHOPID PIC X(001) VALUE IS
'W'.
02 DFHMSRE PIC X(001) VALUE IS
'X'.
02 DFHSTRF PIC X(001) VALUE IS
'H'.
02 DFHTRIG PIC X(001) VALUE IS
'''.
02 DFHPA1 PIC X(001) VALUE IS
'%'.
02 DFHPA2 PIC X(001) VALUE IS
'>'.
02 DFHPA3 PIC X(001) VALUE IS
','.
02 DFHPF1 PIC X(001) VALUE IS
'1'.
02 DFHPF2 PIC X(001) VALUE IS
'2'.
02 DFHPF3 PIC X(001) VALUE IS
'3'.
02 DFHPF4 PIC X(001) VALUE IS
'4'.
02 DFHPF5 PIC X(001) VALUE IS
'5'.
02 DFHPF6 PIC X(001) VALUE IS
'6'.
02 DFHPF7 PIC X(001) VALUE IS
'7'.
02 DFHPF8 PIC X(001) VALUE IS
'8'.
02 DFHPF9 PIC X(001) VALUE IS
'9'.
02 DFHPF10 PIC X(001) VALUE IS
':'.
02 DFHPF11 PIC X(001) VALUE IS
'#'.
02 DFHPF12 PIC X(001) VALUE IS
'@'.
02 DFHPF13 PIC X(001) VALUE IS
'A'.
02 DFHPF14 PIC X(001) VALUE IS
'B'.
02 DFHPF15 PIC X(001) VALUE IS
'C'.
02 DFHPF16 PIC X(001) VALUE IS
'D'.
02 DFHPF17 PIC X(001) VALUE IS
'E'.
02 DFHPF18 PIC X(001) VALUE IS
'F'.
02 DFHPF19 PIC X(001) VALUE IS
'G'.
02 DFHPF20 PIC X(001) VALUE IS
'H'.
02 DFHPF21 PIC X(001) VALUE IS
'I'.
02 DFHPF22 PIC X(001) VALUE IS
'-'.
02 DFHPF23 PIC X(001) VALUE IS
'.'.
02 DFHPF24 PIC X(001) VALUE IS
'<'.
Comando HANDLE AID
Formato do comando:
EXEC CICS
Explicação do argumento
HANDLE AID
Existe uma opção especial que engloba todas as PF'S, PA'S E CLEAR,
com exceço do ENTER. Caso seja digitado uma tecla que n~ao foi
especificada no programa de aplicação, o controle irá para o parágrafo
especificado nesta opção.
Exemplo do comando:
EXEC CICS
HANDLE AID PA1 (0100-PA1)
PA2 (0200-PA2)
ENTER (0300-ENTER)
ANYKEY (0400-ANYKEY)
END-EXEC.
Explicacao do exemplo:
Formato do comando:
EXEC CICS
Explicação do argumento
HANDLE ABEND
Exemplo do comando:
EXEC CICS
HANDLE ABEND PROGRAM ('ABENDLI')
END-EXEC.
Explicacao do exemplo:
Comando ABEND
Formato do comando:
EXEC CICS ABEND Explicação do argumento
Exemplo do comando:
Explicacao do exemplo:
Formato do comando:
DATASET ('nome
Especifica-se o nome do arquivo a acessar.
arquivo')
RIDFLD (WORK-
Especifica-se a chave do registro a ser lido.
CHAVE)
Exemplo do comando:
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.
Condição de exceção:
Comando WRITE
Formato do comando:
Explicacao do exemplo:
Condição de exceção:
Comando REWRITE
Formato do comando:
EXEC CICS
Explicação do argumento
REWRITE
Explicação do exemplo:
Condição de exceção:
INVREQ:
o Não existe, na 'FCT', previsão para a utilização deste
recurso.
o O registro a ser regravado não foi recuperado através
do comando 'READ' com a opção 'UPDATE'.
o A chave do registro a ser regravado foi alterada pelo
programa de aplicação.
Outros: DSIDERR, ILLOGIC, IOERR, LENGERR, NOTOPEN,
NOSPACE.
Comando DELETE
Formato do comando:
EXEC CICS
Explicação do argumento
DELETE
A opção 'GENERIC' não pode ser utilizada para arquivo com a opção
'LOG=YES' na 'FCT'.
Exemplo do comando:
Explicação do exemplo:
CONDICAO DE EXCECAO:
Comando UNLOCK
Formato do comando:
Exemplo do comando:
Explicação do exemplo:
Condição de exceção:
Comando STARTBR
Formato do comando:
EXEC CICS
Explicação do argumento
STARTBR
Exemplo do comando:
Explicação do exemplo:
Condição de exceção:
Comando READNEXT
Formato do comando:
EXEC CICS
Explicação do argumento
READNEXT
INTO (WORK-
Especifica-se a área que receberá o registro.
AREA)
Especifica-se a chave do registro a ser
RIDFLD (WORK-
posicionado. Deve ser o mesmo campo
CHAVE)
especificado no comando inicial STARTBR.
Exemplo do comando:>
Explicação do exemplo:
Condiçãoo de exceção:
Comando READPREV
Formato do comando:
EXEC CICS
Explicação do argumento
READNEXT
INTO (WORK-
Especifica-se a área que receberá o registro.
AREA)
Exemplo do comando:
Explicacao do exemplo:
Condição de exceção:
Comando RESETBR
Formato do comando:
EXEC CICS
Explicação do argumento
READNEXT
Exemplo do comando:
Explicação do exemplo:
Condição de exceção:
Comando ENDBR
Formato do comando:
EXEC CICS
Explicação do argumento
ENDBR
DATASET ('NOME Especifica-se o nome do arquivo que se deseja
ARQUIVO') acessar.
Explicação do exemplo:
Condição de exceção:
Comando WRITEQ TS
Formato do comando:
EXEC CICS
Explicação do argumento
WRITEQ TS
Exemplo do comando:
Explicação do exemplo:
Comando READQ TS
Formato do comando:
EXEC CICS
Explicação do argumento
READQ TS
Exemplo do comando:
Explicação do exemplo:
Condição de exceção:
Comando DELETEQ TS
Formato do comando:
EXEC CICS
Explicação do argumento
DELETEQ TS
Exemplo do comando:
END-EXEC.
Explicação do exemplo:
Comando WRITEQ TD
Formato do comando:
EXEC CICS
Explicação do argumento
WRITEQ TD
Exemplo do comando:
Explicação do exemplo:
Condição de exceção:
Comando READQ TD
Formato do comando:
EXEC CICS
Explicação do argumento
READQ TD
Explicação do exemplo:
Condicao de excecao:
Comando DELETEQ TD
Formato do comando:
EXEC CICS
Explicação do argumento
DELETEQ TD
Exemplo do comando:
Condiçao de exceção: