Você está na página 1de 52

CICS

Manual de CICS

Pag. 1 / 52

GENERALIDADES.
A sigla CICS significa Customer Information
Controlo da Informao de Clientes.

Control

System,

Sistema

de

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

Os mdulos fundamentais do CICS so:


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

Manual de CICS

Pag. 2 / 52

Task Control Program o Controlador de Tarefas.


Encarrega-se da validao de acessos, da recuperao das peties de execuo,
da multiprogramao e divide as ordens de carga de programas.
Controla mediante uma tabela os cdigos de transaco que identificam programas
a executar por petio externa que, normalmente no so todos os programas
instalados.
FCP
File Control Program o Controlador de Ficheiros.
Encarrega-se da validao dos acessos a ficheiros e do intercmbio de dados com
estes.
Controla mediante uma tabela os nomes simblicos do ficheiro.
PCP
Program Control Program o Controlador de Programas.
Executa a carga de um programa na memria do CICS.
Controla mediante uma tabela
executar no ambiente CICS.

os

nomes

de

todos

os

programas

que

se

podem

BMS
Basic Mapping Support o Suporte do Formato do cran.
Encarrega-se dos intercmbios de informao com os crans, em conjuno com o
TCP.
O programa do utilizador utiliza os
processos de intercmbio da informao.

mdulos

de

servio

para

executar

os

Na fase de arranque, o CICS pe em linha todos os recursos da informao de que


dispe:
Programas
Ficheiros
Terminais
Impressoras
de forma que o programa do utilizador no abra nunca um recurso; limita-se a
utiliz-los.
PROGRAMAS EXECUTADOS DEPOIS DO CICS.
Generalidades
O programa estar orientado para o dilogo com o utilizador e a
execuo ser influenciada pelo desenvolvimento do dito dilogo,
que o programa quase nunca ser executado inteiro, como no caso
BATCH, mas, normalmente, cada passo do dilogo implicar s
instrues.

sua lgica de
de tal forma
dos programas
umas quantas

O grupo de instrues que se executa num passo de dilogo denomina-se TAREFA, e


a actuao do utilizador que a desencadeia uma TRANSACO.

Manual de CICS

Pag. 3 / 52

Assim, se um programa pede num determinado momento:


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

Manual de CICS

Pag. 4 / 52

Desde o momento em que o CICS, na fase de arranque, quem pe em linha todos os


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

DFHEIBLK
EIBTIME
EIBDATE
EIBTRNID

Manual de CICS

REALCICS
TIME IN 0HHMMSS FORMAT
DATE IN 00YYDDD FORMAT
TRANSACTION IDENTIFIER

Pag. 5 / 52

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

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

TASK NUMBER
TERMINAL IDENTIFIER
RESERVED
CURSOR POSITION
COMMAREA LENGTH
ATTENTION IDENTIFIER
FUNCTION CODE
RESPONSE CODE
DATASET NAME
REQUEST IDENTIFIER
RESOURCE NAME
SYNCPOINT REQUIRED
TERMINAL FREE REQUIRED
DATA RECEIVE REQUIRED
RESERVED
ATTACH DATA EXISTS
GOTTEN DATA IS COMPLETE
GOTTEN DATA CONTAINS FMH
RECEIVE COMPLETE FLAG
SIGNAL FLAG
CONFIRM FLAG
LU 6.2 ERROR FLAG
LU 6.2 ERROR CODE
SYNCPOINT ROLLBACK FLAG
NO DATA FLAG
ERROR CODE RESPONSE
MORE ERROR CODES
ROLLED BACK FLAG

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

PICTURE
PICTURE
PICTURE
PICTURE
PICTURE
PICTURE
PICTURE
PICTURE
PICTURE
PICTURE
PICTURE
PICTURE
PICTURE
PICTURE
PICTURE
PICTURE
PICTURE
PICTURE
PICTURE
PICTURE
PICTURE
PICTURE
PICTURE
PICTURE
PICTURE
PICTURE
PICTURE
PICTURE
PICTURE
PICTURE
PICTURE

Manual de CICS

S9(7) COMP-3.
S9(7) COMP-3.
X(4).
S9(7) COMP-3.
X(4).
XX.
S9(4) COMP-4.
S9(4) COMP-4.
X.
X(2).
X(6).
X(8).
X(8).
X(8).
X.
X.
X.
X.
X.
X.
X.
X.
X.
X.
X.
X(4).
X.
X.
9(8) COMP-4.
9(8) COMP-4.
X.

Pag. 6 / 52

Deteco de teclas de servio.


Atravs do EIB o programa pode controlar a tecla de servio (ENTER, CLEAR, PF)
com a que se terminou a transaco (campo EIBRCODE)
Manejo de cdigos de retorno.
O EIB tambm proporciona informao sobre o resultado da execuo de um comando
CICS (campo EIBAID).
Compilao.
Ao conter comandos, um programa CICS no se pode compilar como um compilador
normal, j que cada comando produziria um erro.
Os procedimentos da compilao antepem ao compilador um TRADUTOR que analisa os
comandos CICS e os transforma em instrues COBOL, se esto correctos.
O processo consiste em asteriscar os comandos e incluir numa nova fonte as
linhas de cdigo correspondentes; a nova fonte a que passa etapa de
compilao.
No exemplo seguinte mostra-se uma traduo executada pelo
Realia:
000100*

EXEC CICS RECEIVE

000200*

MAP('MAPA1')

000300*

MAPSET('GRMAP01')

000400*

emulador CICS de

END-EXEC

000500*
000800

SET DFH0-CMD-RECEIVE-MAP TO TRUE

000900

MOVE 'MAPA1' TO DFH0-VAR-MAP

001000

SET DFH0-FLAG-MAPSET TO TRUE

001100

MOVE 'GRMAP01' TO DFH0-VAR-MAPSET

001200

SET DFH0-FLAG-INTO TO TRUE

001300

CALL 'MLI_GETADDR' USING MAPA1I DFH0-ADDR-INTO

001400

PERFORM DFH0-CALL-CICS

Ao rever os resultados da compilao haver que procurar erros nas listas: na da


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

Manual de CICS

Pag. 7 / 52

Acesso ao CICS e execuo de programas


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

Manual de CICS

Pag. 8 / 52

Execuo de programas depois do controle do CICS


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

Manual de CICS

Pag. 9 / 52

escritos e no necessrio especific-los depois do comando cuja resposta se


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

Manual de CICS

Pag. 10 / 52

........
RESP(EIBRESP)
END-EXEC
IF EIBRESP NOT = 0
< ERROR >.
Notas no uso de HANDLE | IGNORE CONDITION.Toda a condio excepcional que se produza e no tenha sido explicitamente
HANDLEada ou IGNOREada, provocar uma terminao anormal da tarefa.
Para canalizar as condies
condio ERROR( PARAGRAFO ).

excepcionais

que

no

se

explicitem,

existe

Gesto de teclas de servio


O campo DFHAID do EIB contm um cdigo hexadecimal que se corresponde com a
tecla de funo que se empregou para terminar uma transaco. O programa pode
tomar decises na base do dito cdigo:
Por investigao directa.
Este mtodo requer, conhecer bem os cdigos correspondentes a cada tecla, ou
incluir bem no programa uma instruo COPY que inclua um ficheiro chamado
DFHAID, em que se tenha nomes simblicos para cada tecla:
DFHENTER
DFHCLEAR
DFHPF1 - DFHPF12
DFHPA1, DFHPA2
Por processo mediante comando.
Como no caso das anomalias, o CICS reconhece as teclas de funo por nomes
simblicos, e tem um comando que permite bifurcar a execuo do programa para um
pargrafo determinado, se se terminou a transaco que repele em programa com
uma delas:
EXEC CICS
HANDLE AID
ENTER(PARGRAFO1)
CLEAR(PARGRAFO2)
PF1(PARGRAFO3)
.....
PF12(PARGRAFO14)
PA1(PARGRAFO15)
PA2(PARGRAFO16)
END-EXEC
A filosofia de funcionamento a mesma que a do comando HANDLE CONDITION; a
bifurcao realiza-se tambm pelo mtodo GO TO.

Manual de CICS

Pag. 11 / 52

A tecla CLEAR, que apaga o cran, atribui-se normalmente funo de terminao


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

A soluo a este dilema consiste em no pr o comando de leitura de dados do


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

Manual de CICS

Pag. 12 / 52

Quando se cria um programa para este caso, deve ir um comando de leitura de


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

H, sem embargo uma diferena fundamental com o mtodo conversacional: quando o


utilizador completa a seguinte transaco, o CICS lana a execuo do programa
desde o incio, tal e como se o tivesse carregado de novo em memria: os dados
de WORKING perdem-se.
Programao Pseudo-conversacional e manuteno de dados de WORKING.

Manual de CICS

Pag. 13 / 52

O problema da perda de dados de WORKING inerente a esta tcnica de programao,


soluciona-se fazendo uso de outra facilidade que o CICS proporciona para guardar
dados.
Podem-se guardar dados em reas do CICS chamadas COMMAREAs,
formulao seguinte no comando de retorno pseudo-conversacional:

empregando

EXEC CICS
RETURN TRANSID('cdigo_de_transaco')
[ COMMAREA( identificativo )
[ LENGTH( n | longitude ) ] ]
END-EXEC
identificativo
O nome de um nvel em WORKING.
longitude
Um valor numrico | uma varivel em PIC S9(4) COMP.
O significado deste comando :
Voltar ao CICS at prxima transaco.
Guardar em COMMAREA longitude bytes a partir de identificativo.
Dado que o CICS est a relanar a execuo do programa desde o incio, como se o
houvesse carregado de novo, o comando de leitura de dados do cran dever ir nas
sequncias iniciais do programa e ser nico.
A devoluo dos dados, faz-se no CICS sobre uma rea chamada DFHCOMMAREA, que
espera encontrar na LINKAGE SECTION do programa e que dever ser codificada com
nvel 01 pelo programador com a longitude correspondente maior longitude que
empregue no programa.
002700
002800
002900
003000
003100
003200
003300
003400
003500
003600
003700
003800
003900
004000
004010
004100
004200

01
01

W-LONG PIC S9(4) COMP.


W-COMM.
03 W-OPCION
PIC X.
03 W-REG.
05 W-CLAVE-AN PIC X(6).
05 W-CLAVE REDEFINES W-CLAVE-AN.
07 W-TALLER
PIC 9.
07 W-FAMILIA PIC 9.
07 W-CODIGO
PIC 9(4).
05 W-DESC PIC X(20).
05 W-PRECIO
PIC 9(5).
05 W-STOCK
PIC 9(5).
05 FILLER PIC X(44).
03 BORRADO
PIC X.
..................
LINKAGE SECTION.
01 DFHCOMMAREA PIC X(82).

a sequncia de uso seria:


< CARREGAR DADOS EM W-COMM >
MOVE 82

TO W-LONG

Manual de CICS

Pag. 14 / 52

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

Notas no uso de COMMAREA


Os dados de DFHCOMMAREA devem mover-se para a WORKING, se interessa transmitir
todos ou alguns no prximo retorno ao CICS, j que o parmetro COMMAREA do
comando faz referncia a um item de WORKING.
Na COMMAREA guardaram-se no s dados numricos e alfanumricos, mas tambm
indicadores que possam servir para canalizar a execuo quando o CICS relance o
programa.
A COMMAREA especfica da sesso utilizador-programa.
necessita ter em conta o multiuso do programa.

programador

no

O parmetro LENGTH obrigatrio.


Em cada retorno ao CICS, pode variar-se a longitude dos dados a guardar da forma
que mais convenha.
O CICS devolve a longitude dos dados actualmente guardados no campo EIBCALEN do
EIB, quando relana o programa.
O valor deste campo zero a primeira vez que se executa o programa ou se em
RETURN TRANSID no se especifica COMMAREA.
A DFHCOMMAREA pode subdividir-se em nveis da forma que mais convenha.
Os nveis de identificativo e de longitude podem ser quaisquer, excepto 88.
O CICS interpreta a longitude dos dados a guardar em binrio. Uma longitude de
82 numa varivel PIC S9(4) COMP-3, pode originar resultados funestos na
execuo.
No comando
EXEC CICS
RETURN
END-EXEC
no se pode empregar o parmetro COMMAREA.
Ao especificar a longitude da COMMAREA, tenha-se em conta que o CICS no
reconhece que o item W-COMM tem 82 bytes de longitude; se neste caso se
especifica um nmero maior, enviar-se-o dados a guardar em reas prximas.

Manual de CICS

Pag. 15 / 52

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

Manual de CICS

Pag. 16 / 52

Envio de dados para o cran.


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

Manual de CICS

Pag. 17 / 52

Cada acesso a um ficheiro faz com que o CICS comprove que se refenrencia um dos
ficheiros da tabela do FCP e que o tipo de acesso um dos que tem registados.
O CICS s suporta ficheiros VSAM KSDS.
Leitura indexada.
EXEC CICS
READ DATASET( 'nome_do_ficheiro' | identificador )
INTO( W-REGISTRO )
[ LENGTH( W-LONG )

RIDFLD( W-CLAVE )
[ KEYLENGTH( n )

GENERIC ]

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

Condies excepcionais:

Manual de CICS

Pag. 18 / 52

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

dentro

do

O entorno BROWSE estabelece-se desde um determinado registo at ao final do


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

Manual de CICS

Pag. 19 / 52

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

Manual de CICS

Pag. 20 / 52

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

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

Manual de CICS

Pag. 21 / 52

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

Manual de CICS

Pag. 22 / 52

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

Intercmbios com o cran ( Formatado )


O envio e recepo de dados formatados
entidades de BMS chamadas mapas ( MAPS ).

faz-se

depois

do

controlo

de

umas

Um mapa um programa de controle que permite colocar displays sobre o cran


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

Manual de CICS

Pag. 23 / 52

Os mapas agrupam-se em grupos de mapas ou MAPSETS.


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

onde label uma etiqueta opcional e o carcter X (pode variar segundo o


sistema), na coluna 72 indica continuao da instruo na coluna 16 da seguinte
linha.
Os parmetros podem ver-se afectados por vrios valores; e nesse caso escrevemse entre parntesis e separados por vrgulas.
Descrio de mapas e grupos
MAPSET.
Define-se com a macro DFHMSD:
nomset

DFHMSD TYPE=DSECT | MAP | &SYSPARM,

[ STORAGE=AUTO, ]
[ CTRL=( FSET | FRSET,FREEKB ), ]
DATA=FIELD | BLOCK,
[ EXTATT=YES, ]
TIOAPFX=YES | NO,
MODE=IN | OUT | INOUT,
LANG=ASM | COBOL | PLI | RPG,
[ VALIDN=( MUSTFILL,MUSTENTER ) ]
nomset
Nome do MAPSET ( mximo 7 caracteres ) e deve estar registado nas tabelas do
CICS.
TYPE
Tipo de mapas a criar:

Manual de CICS

Pag. 24 / 52

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

Manual de CICS

Pag. 25 / 52

Deve especificar-se YES, se se deseja executar o intercmbio de dados at, e


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

MAPA EN MAPSET.
Define-se com a macro DFHMDI:
nommap

DFHMDI SIZE=( linhas,colunas) ,

[ LINE=linha,COLUMN=coluna, ]
[ CTRL=( FSET | FRSET,FREEKB ), ]
[ DATA=FIELD | BLOCK, ]
[ TIOAPFX=NO | YES, ]
[ VALIDN=( MUSTFILL,MUSTENTER ) ]
nommap
Nome do mapa ( mximo 7 caracteres ).

Manual de CICS

Pag. 26 / 52

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

ITEM EN MAPA.
Define-se com a macro DFHMDF:
[label]

DFHMDF POS=nmero | ( linha,coluna ),

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

Manual de CICS

Pag. 27 / 52

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

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

Manual de CICS

Pag. 28 / 52

Normalmente o campo define-se de modo que quepa inteiro numa linha.


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

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

Manual de CICS

Pag. 29 / 52

Macros BMS.
...........
MAPA1

DFHMDI SIZE=( 24,80 ) ,

CTRL=( FRSET,FREEKB ),
DATA=FIELD,
TIOAPFX=YES
CAMPO1

DFHMDF POS=( linha,coluna ),

LENGTH=5,
ATTRB=( UNPROT,NUM )
CAMPO2

DFHMDF POS=( linha,coluna ),

LENGTH=20,
ATTRB=UNPROT

Mapa lgico em WORKING.


01 MAPA1I.
02 FILLER PIC X(12).
02 CAMPO1L

PIC S9(4) COMP.

02 CAMPO1F

PIC X.

02 FILLER REDEFINES CAMPO1F.


03 CAMPO1A

PIC X.

02 CAMPO1I

PIC 9(5).

02 CAMPO2L

PIC S9(4) COMP.

02 CAMPO2F

PIC X.

02 FILLER REDEFINES CAMPO2F.


03 CAMPO2A
02 CAMPO2I
01

PIC X.

PIC X(20).

MAPA1O REDEFINES MAPA1I.

02 FILLER PIC X(12).


02 FILLER PIC X(3).
02 CAMPO1O

PIC 9(5).

02 FILLER PIC X(3).


02 CAMPO2O

PIC X(20).

FILLER
consequncia de TIPOAPFX=YES e contm informao de controlo necessria para
entregar os dados no mapa lgico.
CAMPOxL
Contir a longitude do campo em recepo.

Manual de CICS

Pag. 30 / 52

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

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

Transmisso de dados e MDT.


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

Manual de CICS

Pag. 31 / 52

Mediante
tcnicas
adequadas,
desnecessria de dados.

programador

deve

evitar

transmisso

Uma destas tcnicas consiste na gesto adequada de um indicador a nvel de campo


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

ter

sido

melhor

guardado

em

COMMAREA

para

seu

posterior

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

Recepo de dados do cran.


EXEC CICS
RECEIVE MAP( 'nome_do_mapa' | identificador )
[ MAPSET( 'nome_do_mapset' | identificador )
[ INTO( identificador

) ]

END-EXEC

Manual de CICS

Pag. 32 / 52

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

sufixo

I,

contm

dado

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

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

Manual de CICS

Pag. 33 / 52

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

display

invocando

EXEC CICS
SEND PAGE
END-EXEC

Manual de CICS

Pag. 34 / 52

uma

que habilita a paginao mediante teclas PF.


Condies excepcionais.
INVMPSZ
Tamanho de mapa incorrecto.
OVERFLOW
Produz-se na acumulao de mensagens.

Notas no uso de SEND MAP.


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

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

Atributos estendidos.

Manual de CICS

Pag. 35 / 52

Cor.
DFHDFCOL

Cor por defeito

DFHBLUE
DFHRED
DFHPINK
DFHGREEN
DFHTURQ
DFHYELLO
DFHNEUTR
Apresentao.
DFHDFHI

Brilhante

DFHBLINK Pestanejo
DFHREVRS Vdeo inverso
DFHUNDLN Sombreado
Caracteres de controle para sada no formatadas impressora.
DFHBMPNL New Line
DFHBMPEM Fim da mensagem.

Ferramentas Suplementares.
Filas de Registos.
As filas de registos empregam-se para a gesto de dados no CICS.
A sua utilizao supe
necessidades traadas.

uma

anlise

prvia

da

adequao

da

ferramenta

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


( TS )

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

Manual de CICS

Pag. 36 / 52

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

armazenados

em

ficheiros

VSAM

ESDS

tm

estas

O programador do sistema pode defini-las como reusveis ou no reusveis.


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

Condies excepcionais.
NOTOPEN
Lista no disponvel.

Manual de CICS

Pag. 37 / 52

O ficheiro que a suporta no est aberto.


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

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

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

TEMPORARY STORAGE ( TS ).

Manual de CICS

Pag. 38 / 52

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

longitude

ITEM( n )
Recuperar o item nmero n.
NEXT
Recuperar o item seguinte ao ltimo lido.
Condies excepcionais.-

Manual de CICS

Pag. 39 / 52

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

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

memria.

alternativa

defeito

Condies excepcionais.-

Manual de CICS

Pag. 40 / 52

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

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

Gesto de dados por pontos.


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

Block Locator for Linkage.


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

Manual de CICS

Pag. 41 / 52

Um programa com:
LINKAGE SECTION.
01

AREA-1

PIC X(100).

daria lugar a que o montador gera-se uma lista com os elementos:


PIC S9(8) COMP.

Ponto lista

PIC S9(8) COMP.

Ponto AREA-1

e se modifica-se da seguinte forma:


LINKAGE SECTION.
01

BLL-CELLS.

02

FILLER

02

PUNT-AREA-1

01

AREA-1

PIC S9(8) COMP.


PIC S9(8) COMP.
PIC X(100).

o item BLL-CELLS se superpondra lista do BLL geradas pelo montador, de modo


que carregando convenientemente PUNT-AREA-1 poder aceder-se rea AREA-1 do
programa invocante.
Na prtica, sem obstculo, isto no pode fazer-se desta forma to intuitiva,
pois o COBOL trabalha por referncia e no por valor, mas alguns entornos
operativos dispem-se da forma de entregar um valor em lugar de uma referncia.
Tal o caso do CICS, em que o traductor incorpora sempre uma LINKAGE SECTION
com quatro nveis 01, se o programador no o faz, de forma que d lugar a uma
lista:
BLL1

EIB

BLL2

COMMAREA

BLL3

FICTICIO1

BLL4

FICTICIO2

aponta-se a si mesmo

Se o programador codifica BLLs na LINKAGE SECTION do programa, far-o na forma


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

Manual de CICS

Pag. 42 / 52

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

Enlace com outros programas.


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

casos,

pode

passar-se

dados

ao

programa

invocado

utilizando

A referncia ao programa invocado faz-se directamente pelo seu nome e no pelo


seu cdigo de transaco; o controle faz-se atravs da tabela do PCP.
Enlace a nvel distinto.
EXEC CICS
LINK PROGRAM( 'nome_do_programa' )
[ COMMAREA( identificador )
[ LENGTH( n | identificador ) ]

END-EXEC
Enlace ao mesmo nvel.
EXEC CICS

Manual de CICS

Pag. 43 / 52

XCTL PROGRAM( 'nome_do_programa' )


[ COMMAREA( identificador )
[ LENGTH( n | identificador ) ]

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

caso

de

que

programa

invocante

leve

cdigo

de

transaco

Se um programa PROGTR03 com cdigo de transaco TR03 emite um comando LINK, e o


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

Arranque e Sincronizao de Tarefas.


Arranque de Tarefas.

Manual de CICS

Pag. 44 / 52

Uma tarefa pode iniciar outra ou outras diferentes, incluso em terminais


diferentes do actual, com planificao do tempo de arranque e passo de dados
tarefa iniciada atravs de uma lista TS.
O CICS planifica a informao da tarefa a iniciar num bloco de controle AID que
logo utilizar.
A tarefa inicia-se com o comando START. Os dados passam-se mediante uma lista TS
e recuperam-se na tarefa iniciada com o comando RETRIEVE.
EXEC CICS
START

INTERVAL( hhmmss ) | INTERVAL(0) | TIME( hhmmss )

TRANSID( 'cdigo_de_transaco_a_arrancar' )
[ TERMID( 'cdigo_de_terminal' ) ]
[ REQID( 'nome' ) ]
[ FROM( identificador )
[ LENGTH( n | identificador ) ]
QUEUE( 'nome_da_lista_TS' ) ]
[ RTRANSID( 'cdigo_da_transaco_origem' ) ]
[ RTERMID( 'cdigo_do_terminal_origem' ) ]
END-EXEC

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

Manual de CICS

Pag. 45 / 52

Nome de quatro caracteres com o que se caracteriza o sucesso da execuo deste


comando. til empreg-lo porque permite a cancelao do comando, se a tarefa
no foi arrancada ainda, fazendo referncia a ele num comando CANCEL.
FROM LENGTH
QUEUE
Parmetros para passar dados que se gravaram numa lista TS.
Se a lista no existe, cria-se. Neste caso muito interessante que o nome da
lista se forme de maneira que seja nica em todo o sistema.
RTERMID
RTRANSID
Identificam transaco e terminal desde que se arranca a tarefa.
Condies excepcionais.TERMIDERR
TRANSIDERR
No caso de que se passem dados e a tarefa arrancada esteja associada a um
terminal, podem emitir-se vrios comandos START sucessivos, para provocar
acumulao de dados na lista QUEUE, mas s o primeiro inicia a tarefa.
Se a tarefa arrancada no est associada a um terminal e se emitem vrios
comandos START, cada um deles arrancar uma nova tarefa e s poder passar-se um
dado de cada vez.
Em caso de que se passem dados, a tarefa arrancada dever executar o comando:
EXEC CICS
RETRIEVE

INTO( identificador )

[ LENGTH( identificador ) ]
[ QUEUE( identificador ) ]
[ RTRANSID( identificador ) ]
[ RTERMID( identificador ) ]
[ WAIT ]
END-EXEC
identificativos associados a QUEUE, RTRANSID, RTERMID
Neles entregam-se os nomes da lista e os cdigos de transaco e terminal
invocantes, se se codificaram os mesmos no comando START.
INTO
Aponta rea de recepo do dado.

Manual de CICS

Pag. 46 / 52

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

Condies excepcionais.
ENDDATA
Se a tarefa est associada a um terminal e se passaram dados acumulados, pode
emitir-se uma srie de comandos RETRIEVE, para recuperar todos os dados.
Sincronizao de Tarefas.
O arranque de uma tarea at outra, no implica que a tarefa invocante fique
detida.
S se a tarefa arrancada efectuar processos cujos resultados tenham de ser
processados pela tarefa invocante, esta ter de ser detida.
A deteno pode fazer-se:
Por espera de Tempo ( WAIT )
Por espera de Sucesso ( EVENT )
Por espera de Tempo.
Se especfica uma suspenso da tarefa por um tempo determinado.
EXEC CICS
DELAY

INTERVAL( hhmmss ) | INTERVAL( 0 ) | TIME( hhmmss )

REQID('nome')
END-EXEC
O significado dos parmetros o mesmo que para START.
Esta espera
actual.

codifica-se

depois

de

ter

arrancado

outra

tarefa

para

parar

A tarefa arrancada pode fazer terminar a espera da tarefa invocante com:


EXEC CICS
CANCEL

REQID('nome')

[ TRANSID('cdigo_de_transaco') ]
END-EXEC
REQID
Comando a anular ( neste caso, DELAY ) e pode ter sido passado nos dados
arrancada.
TRANSID

Manual de CICS

Pag. 47 / 52

tarefa

Identifica a transaco que deu o nome ao comando que se vai anular.


conveniente especificar ambos para identificar de forma unvoca o comando.

Por espera de Sucesso.


Esta funo suporta-se por meio de dois comandos:
POST
WAIT EVENT
EXEC CICS
POST

INTERVAL( hhmmss ) | INTERVAL( 0 ) | TIME( hhmmss )

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

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

Manual de CICS

Pag. 48 / 52

EXEC CICS
ABEND

ABCODE('cdigo')

END-EXEC
cdigo
Tira de quatro caracteres eleio do programador, que pode indicar o ponto do
programa em que se provoca a terminao anormal.
BIF DEEDIT
uma funo interna ( Build In Function) do CICS muito til quando se trabalha
com campos numricos editados em mapas de entrada/sada, que podem acarretar
problemas na recepo.
EXEC CICS
BIF DEEDIT

FIELD( campo )

[ LENGTH( n | identificador ) ]
END-EXEC
a actuao da funo :
Suprimem-se do campo os caracteres no numricos.
Os caracteres numricos escrevem-se juntos, da direita esquerda a partir do
final do campo.
As posies at ao incio do campo se reenchem com zeros.
Se no se especfica LENGTH, tratam-se todas as posies do campo.

Sadas impressas em CICS.


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

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

Manual de CICS

Pag. 49 / 52

Sadas impressas desde BMS.


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

Transaces de servio do CICS.CSSN


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

CEMT
Executa mltiplas funes.
apresentando opes.

Se

cdigo

se

digita

sem

parmetros,

vai

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

Manual de CICS

Pag. 50 / 52

sido

CEMT I PRO( PROG* )


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

CSMT
Teclando:
CSMT NEW,PGRMID=programa
d de alta a nova verso de programa.
Retorna ao CICS com F3.
CEDF
Depurador on-line.
Deve arrancar-se antes de comear a execuo do programa que se quer traar:
CEDF

o CICS responder: This terminal EDF-Mode on

continuao introduz-se o cdigo do programa a traar.


EDF apresenta um primeiro cran no qual aparecem as reas EIB e DFHCOMMAREA.
EDF detm-se antes da
funes, entre elas:

execuo

de

cada

comando

CICS,

permitindo

mltiplas

Modificar parmetros do comando


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

FILLER.

03 FILLER PIC X(19) VALUE '** START WORKING **'.


03 CAMPO1

PIC ...

..............

Manual de CICS

Pag. 51 / 52

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

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

CSSF
Desconexo do CICS:
CSSF LOGOFF

Manual de CICS

Pag. 52 / 52

Você também pode gostar