Você está na página 1de 21

NDICE

SEND................................................................................................................................................................2
RECEIVE.........................................................................................................................................................4
CONTROLE DE PROGRAMA........................................................................................................................6
LINK.................................................................................................................................................................6
XCTL................................................................................................................................................................8
RETURN........................................................................................................................................................10
ABEND..........................................................................................................................................................12
MEMRIA TEMPORRIA...........................................................................................................................13
WRITEQ TS...................................................................................................................................................13
READQ TS.....................................................................................................................................................16
DELETEQ TS.................................................................................................................................................18
CONTROLE DE MAPAS...............................................................................................................................19
SEND MAP....................................................................................................................................................19

Controle de terminal

SEND
SINTAXE
EXEC CICS SEND

FROM (<rea de dados>)


[LENGTH (<tam. rea de dados>)]
[WAIT]
[ERASE];

FUNO
Envia o contedo de <rea de dados> para o terminal ou uma unidade logica.
OPES
FROM (<rea de dados>)
Especifica o nome da rea de dados que contem o contedo a ser enviado
ao terminal ou unidade lgica.
LENGTH (<tam. rea de dados>)
Especifica o nome de uma varivel que contem o tamanho em bytes da
<rea de dados>.
O formato da rea de dados deve ser BIN FIXED(15).
WAIT
?
ERASE
Limpa o contudo existente na tela do terminal, antes de enviar a nova
<rea de dados>.
EXEMPLOS
DCL

AX_MENS

CHAR(11)

INIT(TREINAMENTO);

EXEC CICS SEND FROM(AX_MENS)


LENGTH(11)
ERASE;
DICAS

Se for codificado uma <rea de dados> maior que o <tam. rea de dados>, ser
truncado o contedo da rea de dados para o tamanho que estiver especificado no
LENGTH, no ativando a funo LENGERR.
Se o SEND...FROM for utilizado sem a clusula ERASE o contudo da <rea de
dados> ser mostrado a partir (inclusive) da posio em que o cursos estiver
posicionado no vdeo, sobrepondo somente o contedo das posies que sero
utilizadas pelo SEND..FROM.

RECEIVE
SINTAXE
EXEC CICS RECEIVE
INTO (<rea de dados>)
[LENGTH (<tam. rea de dados>)];
EXEC CICS RECEIVE
SET (<pointer>)
[LENGTH (<tam. rea de dados>)];
FUNO
Ler dados de um terminal ou uma unidade lgica.
OPES
INTO (<rea de dados>)
Especifica o nome da rea de dados que receber os dados capturados do
terminal.
SET

(<pointer>)
Especifica o POINTER, onde ser armazenado o endereco inicial da rea
que ter os dados capturados do terminal.

LENGTH (<tam. rea de dados>)


Especifica o nome de uma varivel que contem o tamanho em bytes da
<rea de dados>.
O Formato da <rea de dados> deve ser BIN FIXED(15).

EXEMPLOS
DCL

AX_MENS

CHAR(11)

EXEC CIS SEND RECEIVE

INIT( );
INTO (AX_MENS)
LENGTH(11);

O contedo que estiver na tela no momento do receive ser enviado a varivel


ax_mens.

DCL
DCL

AX_MENS
P

CHAR(11)
POINTER;

EXEC CIS SEND RECEIVE

BASE(P);

SET (P)
LENGTH(11);

DICAS
Se as informaes capturadas na tela tiverem um tamanho menor do que a <rea
de dados> o CICS colocar a mensagem na rea de dados e no alterar o
contedo dos bytes a direita restantes.
O <tam. rea de dados> ser alterada para o tamanho em bytes capturado na
tela.
Se as informaes capturadas na tela tiverem um tamanho maior do que a <rea
de dados> o CICS truncar o contedo. Os caracteres direita sero ignorados.
O <tam. rea de dados> ser alterada para o tamanho em bytes capturado na tela
e ser ativada a condio de erro (LENGERR erro de comprimento).
O LENGERR no ocorrer caso o RECEIVE esteja sendo usado com a opo SET
pois o SET ir somente enderear o rea (TIOA) onde encontra-se a informao
recebida pelo terminal, mas importante atentar para se a rea recebida for maior
ou menor que o esperedo pode causar um STORAGE VIOLATION
(invaso
de rea) podendo prejudicar outras aplicaes ou desativar o CICS.

Controle de Programa
LINK
SINTAXE
EXEC CICS LINK

PROGRAM (nome do programa)


[COMMAREA (<rea de dados>)]
[LENGTH
(<tam. rea de dados>)];

FUNO
Passa o controle de um programa de aplicao de nvel superior para um
programa
de nvel inferior.
OPES
PROGRAM

(<nome do programa>)

Especifica o nome do programa a ser chamado, o programa deve ter no


mximo 8 caracteres e estar cadastrado na PPT.
Pode ser uma constantes ou uma varivel contendo o nome do programa.
COMMAREA (<rea de dados>)
Especifica o nome de uma varivel que ter os dados a ser
enviado para outro programa.
LENGTH (<tam. rea de dados>)
Especifica o tamanho em bytes da <rea de dados>. Seu tamanho deve
formato dever ser um BIN FIXED(15). O valor mximo aceito para este
varivel 32.767 bytes.

EXEMPLOS
1. Programa chamador
DCL AX_TESTE

CHAR(3)

INIT(TRN);

EXEC CICS LINK PROGRAM (PROG);


COMMAREA(AX_TESTE)
LENGTH (3);

ID
A

IF .....
2. Programa chamado
PROGCH: PROC (PT) OPTIONS (MAIN);
VOLTA

DCL PT
POINTER;
DCL 1 AX_TESTE BASED (PT),
2 AX_T1
CHAR(3);
IF AX_TESTE = TRN THEN
...
...
EXEC CICS RETURN;
END PROGCH;

DICAS
Quando um programa emite uma chamado a outro programa o programa chamado
deve estar cadastrado na tabela do cics (PPT), caso contrrio ocorrer uma
condio de execo PGMIDERR.

do

Quando o programa chamado termino ou executado um EXEC CICS RETURN o


controle da execuo volta para a linha seguinte ao comando EXEC CICS LINK...
programa chamador.

XCTL
SINTAXE
EXEC CICS XCTL

PROGRAM (nome do programa)


[COMMAREA (<rea de dados>)]
[LENGTH
(<tam. rea de dados>)];

FUNO
Passa o controle de um programa de aplicao para outro definitivamente.
OPES
PROGRAM

(<nome do programa>)

Especifica o nome do programa a ser chamado, o programa deve ter no


mximo 8 caracteres e estar cadastrado na PPT.
Pode ser uma constantes ou uma varivel contendo o nome do programa.
COMMAREA (<rea de dados>)
Especifica o nome de uma varivel que ter os dados a ser
enviado para outro programa.

LENGTH (<tam. rea de dados>)


Especifica o tamanho em bytes da <rea de dados>. Seu tamanho deve
formato dever ser um BIN FIXED(15). O valor mximo aceito para este
varivel 32.767 bytes.

EXEMPLOS
2. Programa chamador
DCL AX_TESTE

CHAR(3)

INIT(TRN);

EXEC CICS XCTL PROGRAM (PROG);


COMMAREA(AX_TESTE)
LENGTH (3);

ID
A

2. Programa chamado
PROGCH: PROC (PT) OPTIONS (MAIN);
DCL PT
POINTER;
DCL 1 AX_TESTE BASED (PT),
2 AX_T1
CHAR(3);
IF AX_TESTE = TRN THEN
...
...
EXEC CICS RETURN;
END PROGCH;

DICAS
Quando um programa emite uma chamado a outro programa o programa chamado
deve estar cadastrado na tabela do cics (PPT), caso contrrio ocorrer uma
condio de execo PGMIDERR.
Quando o programa chamado termina ou executado um EXEC CICS RETURN o
controle da execuo volta para o programa de nvel superior ao programa
chamado, o programa chamador aps o XCTL pode ser suprimido da memria se
nenhum outro programa estiver chamando-o.

RETURN
SINTAXE
EXEC CICS RETURN
[TRANSID(<nome da transao>)]
[COMMAREA (<rea de dados>)]
[LENGTH
(<tam. rea de dados>)];
FUNO
Finaliza o programa em execuo e retorna o controle a um programa de nvel
superior ou para o prprio CICS.
OPES
TRANSID

(<nome da transao>)

Nome da transao a ser invocada, o nome da transao est associado a


um programa, deve ter no mximo 4 caracteres e deve estar cadastrada na
PCT.
Pode ser uma constantes ou uma varivel contendo o nome do programa.
COMMAREA (<rea de dados>)
Especifica o nome de uma varivel que ter os dados a ser enviado para
outro programa.
LENGTH (<tam. rea de dados>)
Especifica o tamanho em bytes da <rea de dados>. Seu tamanho deve
formato dever ser um BIN FIXED(15). O valor mximo aceito para este
varivel 32.767 bytes.

10

EXEMPLOS
Termino de programa.
EXEC CICS RETURN;
Termino de programa, chamando outro programa sem passar
parmetros.
EXEC CICS RETURN TRANSID(TRN1);
Termino de programa, e chamada ao mesmo passando parametro.
DCL AX_TESTE

CHAR(3)

BASED(P) ;

IF EIBCALEN = 0 THEN DO;


ALLOCA AX_TESTE;
AX_TESTE = TRN;
EXEC CICS RETURN TRANSID(TRN1)
COMMAREA(AX_TESTE)
LENGTH (3);
END;
IF AX_TESTE = TRN THEN
...

DICAS
A instruo RETURN com TRANSID devolve o controle de volta ao CICS. O PCP
analisa o parmetro TRANSID e armazena o codigo da transao, com outras
informaes sobre o terminal associado a tarefa. Aps o usurio teclar alguma PF,
PA ou Enter a tarefa associada ao terminal ser iniciada. Este processo
chamado de PSEUDO-CONVERSACIONAL.

11

ABEND
SINTAXE
EXEC CICS ABEND [ABCODE (<nome do abend>);
FUNO
Gera um trmino anormal da transao em execuo.
OPES
ABCODE

(<nome do abend>)

Especifica um nome que ser mostrado junto ao DUMP gerado pelo


comando ABEND, este nome deve ser uma constante ou um campo
alfanumrico que dever conter um nome de at quatro caracteres
alfanumricos.
EXEMPLOS
EXEC CICS ABEND(ZABD);

DICAS
Este comando substitui o CALL ABEND utilizado por aplicaes PL/1, pois o CALL
ABEND proibido utilzar em programas CICS.

12

Memria Temporria
WRITEQ TS
SINTAXE
EXEC CICS WRITEQ TS

QUEUE
FROM
[LENGTH
[ITEM
[Rewrite];

(nome da rea)
(<rea de dados>)]
(<tam. rea de dados>)]
(<nr. do item>)]

FUNO
Grava dados temporrios em uma QUEUE (fila) de memria, na memria principal
ou auxiliar.
OPES
QUEUE

(<nome da rea>)

Especifica o nome da QUEUE (fila), pode ser composto de at 8 caracteres


alfanumricos e deve ser nico no CICS.
FROM

(<rea de dados>)
Especifica o nome de uma varivel que ter os dados a ser enviado para a
fila de memria temporria.

LENGTH

(<tam. rea de dados>)

Especifica o tamanho em bytes da <rea de dados>. Seu tamanho deve


formato dever ser um BIN FIXED(15). O valor mximo aceito para este
varivel 32.767 bytes.
ITEM

(<nr. do item>>
Especifica um nmero seqncial do item(registro) que ser associado a
<rea de dados> gravada na QUEUE (fila).
Seu formato deve ser BIN FIXED (15).

13

REWRITE
Este comando ir sobrepor os dados atuais da memria temporria
(QUEUE) para os dados contidos na <rea de dados> com o mesmo
nmero de ITEM.
Se o REWRITE for especificado a opo ITEM deve ser obrigatriamente
especificada.
EXEMPLOS
1)
DCL

AX_NOME

CHAR(40);

AX_NOME = TREINAMENTO;
EXEC CICS WRITEQ TS

FROM(AX_NOME)
QUEUE (TRN1)
LENGTH (11);

.........

2)
DCL AX_NOME

CHAR(40)

DCL TAMANHO

BIN FIXED(15)

EXEC CICS WRITEQ TS

INIT(TREINAMENTO);
INIT(11);

FROM(AX_NOME)
QUEUE (TRN1)
LENGTH (TAMANHO);

......

3)
DCL AX_NOME

CHAR(40)

DCL TAMANHO

BIN FIXED(15)

INIT(TREINAMENTO);
INIT(11);

DCL AX_ITEM

BIN FIXED(15)

EXEC CICS WRITEQ TS

FROM (AX_NOME)
QUEUE (TRN1)
LENGTH (TAMANHO)
ITEM
(AX_ITEM);

DICAS

14

INIT(2);

Se a opo ITEM no for especificada os dados so gravados com um nmero de


ITEM gerado sequencialmente.
Se tentar gravar dados na TS com a opao ITEM contendo um nmero que no
segue a numerao sequencial definida, este numero ser ignorado e ser gerado
o nmero seguinte na TS.

15

READQ TS
SINTAXE
EXEC CICS READQ TS

QUEUE
INTO
[LENGTH
[ITEM

(nome da rea)
(<rea de dados>)
(<tam. rea de dados>)]
(<nr. do item>)] ou [NEXT];

FUNO
Ler dados gravados na TS.
OPES
QUEUE

(<nome da rea>)

Especifica o nome da QUEUE (fila), pode ser composto de at 8 caracteres


alfanumricos e deve ser nico no CICS.
INTO

(<rea de dados>)
Especifica o nome de uma varivel que receber os dados existentes na
TS.

LENGTH

(<tam. rea de dados>)

Especifica o tamanho em bytes da <rea de dados>. Seu formato dever


ser um BIN FIXED(15). O valor mximo aceito para este varivel 32.767
bytes.
ITEM

(<nr. do item>>
Especifica um nmero seqncial do item(registro) que ser recuperado da
TS. Seu formato deve ser BIN FIXED (15).

NEXT
Especifica que a leitura da TS dever ser feita em ordem sequencial de
gravao. Est a opo DEFAULT na falta da especificao do ITEM.

16

EXEMPLOS
1)
DCL

AX_NOME

CHAR(40);

EXEC CICS READQ TS

INTO(AX_NOME)
QUEUE (TRN1);
.........

2)
DCL AX_NOME

CHAR(40)

DCL TAMANHO

BIN FIXED(15)

EXEC CICS READQ TS

INIT(TREINAMENTO);
INIT(11);

INTO(AX_NOME)
QUEUE (TRN1)
LENGTH (TAMANHO);

......

3)
DCL AX_NOME

CHAR(40)

DCL TAMANHO

BIN FIXED(15)

INIT(TREINAMENTO);
INIT(11);

DCL AX_ITEM

BIN FIXED(15)

INIT(2);

EXEC CICS READQ TS

INTO
(AX_NOME)
QUEUE (TRN1)
LENGTH (TAMANHO)
ITEM
(AX_ITEM);

DICAS
Em uma leitura concorrente de um mesmo registro na TS por duas ou mais
aplicaes, o registro estar disponvel somente para uma nica aplicao, e os
outros tero acesso aos prximos registros na seqncia.

17

DELETEQ TS
SINTAXE
EXEC CICS DELETEQ TS

QUEUE

(nome da rea);

FUNO
Eliminar todos os dados temporrios associados com a QUEUE (fila).
OPES
QUEUE

(<nome da rea>)

Especifica o nome da QUEUE (fila), pode ser composto de at 8 caracteres


alfanumricos e deve ser nico no CICS.
EXEMPLOS
EXEC CICS DELETEQ TS QUEUE (TRN1);

18

Controle de Mapas
SEND MAP
SINTAXE
EXEC CICS WRITEQ TS

QUEUE
FROM
[LENGTH
[ITEM
[Rewrite];

(nome da rea)
(<rea de dados>)
(<tam. rea de dados>)]
(<nr. do item>)]

FUNO
Grava dados temporrios em uma QUEUE (fila) de memria, na memria principal
ou auxiliar.
OPES
QUEUE

(<nome da rea>)

Especifica o nome da QUEUE (fila), pode ser composto de at 8 caracteres


alfanumricos e deve ser nico no CICS.
FROM

(<rea de dados>)
Especifica o nome de uma varivel que ter os dados a ser enviado para a
fila de memria temporria.

LENGTH

(<tam. rea de dados>)

Especifica o tamanho em bytes da <rea de dados>. Seu tamanho deve


formato dever ser um BIN FIXED(15). O valor mximo aceito para este
varivel 32.767 bytes.
ITEM

(<nr. do item>>
Especifica um nmero seqncial do item(registro) que ser associado a
<rea de dados> gravada na QUEUE (fila).
Seu formato deve ser BIN FIXED (15).

19

REWRITE
Este comando ir sobrepor os dados atuais da memria temporria
(QUEUE) para os dados contidos na <rea de dados> com o mesmo
nmero de ITEM.
Se o REWRITE for especificado a opo ITEM deve ser obrigatriamente
especificada.
EXEMPLOS
1)
DCL

AX_NOME

CHAR(40);

AX_NOME = TREINAMENTO;
EXEC CICS WRITEQ TS

FROM(AX_NOME)
QUEUE (TRN1)
LENGTH (11);

.........

2)
DCL AX_NOME

CHAR(40)

DCL TAMANHO

BIN FIXED(15)

EXEC CICS WRITEQ TS

INIT(TREINAMENTO);
INIT(11);

FROM(AX_NOME)
QUEUE (TRN1)
LENGTH (TAMANHO);

......

3)
DCL AX_NOME

CHAR(40)

DCL TAMANHO

BIN FIXED(15)

INIT(TREINAMENTO);
INIT(11);

DCL AX_ITEM

BIN FIXED(15)

EXEC CICS WRITEQ TS

FROM (AX_NOME)
QUEUE (TRN1)
LENGTH (TAMANHO)
ITEM
(AX_ITEM);

DICAS

20

INIT(2);

Se a opo ITEM no for especificada os dados so gravados com um nmero de


ITEM gerado sequencialmente.
Se tentar gravar dados na TS com a opao ITEM contendo um nmero que no
segue a numerao sequencial definida, este numero ser ignorado e ser gerado
o nmero seguinte na TS.

21