Você está na página 1de 79

CICS

Introduo

NOV/2004

SUMRIO
1 O que o CICS....................................................................................................................................4
2 Ambiente Cics/Mainframe em micros................................................................................................4
3 Programas e seus tipos.......................................................................................................................5
3.1 Quanto ao dilogo com o operador (programas on-line) ....................................................................5
3.2 Quanto ao reuso..........................................................................................................................................5
3.3 Transaes X Programas X Processos X Task (Tarefas) X Threads ......................................................6

4 O CICS, o sistema operacional, e outros softwares...........................................................................7


5 LOCKS ...............................................................................................................................................8
6 Processamento Batch X On-Line(Real Time) considerando o CICS ...........................................9
7 Uso do CICS......................................................................................................................................10
................................................................................................................................................................10
8 - CICS em um programa COBOL ......................................................................................................11
9 CICS em um programa COBOL que tambm usa DB2..................................................................12
10 - Interao entre os diversos softwares envolvidos ..........................................................................13
11 - Exemplo programa COBOL / CICS e respectivo mapa ................................................................14
11.1 Programa COBOL / CICS .....................................................................................................................14
11.2 MAPA FSICO........................................................................................................................................18
11.3 MAPA LGICO.....................................................................................................................................18

12 Alguns componentes do CICS........................................................................................................20


PROGRAMAS (Rotinas)................................................................................................................................20
AREAS.............................................................................................................................................................20
TABELAS .......................................................................................................................................................20

13 - Diferenas entre o terminal normal e o emulado em um PC :..................................................21


14 A famlia 3270 de terminais............................................................................................................22
15 Teclas de entrada de um terminal : ...............................................................................................23
16 - Campos de tela.................................................................................................................................24
COMPRAS .............................................................................................................................................24
CLIENTE

123445...............................................................................................................................24

NOME

JUCA SILVA.......................................................................................................................24

VALOR

123,42..................................................................................................................................24

17 - Atributos de um campo....................................................................................................................25
2

18 - O stream de sada da aplicao para o terminal (construdo pelo BMS)......................................26


19 - O stream de entrada do terminal para a aplicao (construdo pelo BMS)..................................29
20 BMS..................................................................................................................................................30
DFHMDF : definir campos.............................................................................................................................31
DFHMDI : definir mapas...............................................................................................................................37
DFHMSD : definir mapsets............................................................................................................................42

21 TS e TD............................................................................................................................................47
TRANSIENT DATA.......................................................................................................................................48
TEMPORARY STORAGE ...........................................................................................................................50

22 Entrada no CICS e sada do CICS ................................................................................................52


..................................................................................54
23 Cics provided transactions..............................................................................................................55
CESN = para efetuar o signon .......................................................................................................................55
CESF = para efetuar o signoff........................................................................................................................55
CSSF = para efetuar o signoff........................................................................................................................55
CEBR (Temporary Storage Browse).............................................................................................................56
CECI e CECS (Command Interpreter e Check Syntax)..............................................................................57
CEDF (Cics Execution Display Facility)........................................................................................................62
Execuo de uma transao COM o EDF.........................................................................................................................65
Recursos adicionais do EDF..............................................................................................................................................73

CEMT (Cics Environment runtime resource ManagemenT)......................................................................75


CMAC (Cics MAnual and Codes)..................................................................................................................78

1 O que o CICS
. Customer Information Control System
. Nasceu pois o(s) sistema(s) operacional(is) IBM so batch-oriented
. um programa de controle para aplicativos on-line
. Gerencia os recursos do sistema demandados por esses aplicativos
. Plataformas que dispem de CICS :
mainframes,
micros*,
servidores* (OS/2, AIX, Windows NT, AS/400, HP-UX, Sun Solaris, etc),
clientes* (DOS, OS/2, AIX, Sun, Apple Mac, and Windows)
* = SEM emulao
. Existem emuladores que funcionam em baixa plataforma
. Suporta SAM, VSAM, DB2, ORACLE, SQL/DS, DL/I, IMS/DB ...
. (IMS/DC)

2 Ambiente Cics/Mainframe em micros


Cobol Realia
CSP (transao CICS)
Visual Age

3 Programas e seus tipos


3.1 Quanto ao dilogo com o operador (programas on-line)
NO CONVERSACIONAIS :
No existe interao entre o usurio e o terminal. O programa disparado, executa os processos
e termina, sem exibir nada ao usurio nem receber dele nenhum dado.
CONVERSACIONAIS :
Existe interao entre o usurio e o terminal. O programa disparado, exibe dados para o
operador, recebe dados do operador, e termina. Enquanto o operador no digitar e der ENTER
(ou assemelhado) o programa fica parado, e os recursos que ele utiliza ficam em lock.
PSEUDO-CONVERSACIONAIS :
O efeito, para o usurio, igual execuo de programas conversacionais, ou seja, PARECE
que existe o dilogo usurio X aplicativo.
Porm, a cada tela de dados que o programa exibe, ele encerrado, havendo uma identificao
de pendncia para uma (provvel) volta.
Aps o usurio enviar dados para o programa, ele reiniciado a partir da instruo subsequente
ao envio de dados.
Dessa forma, os recursos no ficam em lock.
Os programas, normalmente, tem uma estrutura central baseada num loop (lao).
Um programa em CICS pseudo-convrsacional no tem essa estrutura baseada num loop.

3.2 Quanto ao reuso


REUSVEIS por recarga
variveis tem seu contedo restaurado pela recarga do programa na memria.
SERIALMENTE REUSVEIS
variveis so restauradas pelo programa.
QUASE-REENTRANTES
1 cpia do cdigo e n cpias das variveis.
REENTRANTES
1 cpia do cdigo e n cpias das variveis.

3.3 Transaes X Programas X Processos X Task (Tarefas) X Threads


Unidades de manipulao para atribuio de fatias de tempo de CPU e todos os controles associados.
O gerenciamento pode ser efetuado pelo sistema operacional ou por outros softwares.
Transao : conjunto de programas; controlada pelo CICS; chamada pelo usurio no terminal
Programa : controlado pelo CICS; chamado pelo CICS : o nome da transao tem associado a ele o
nome do primeiro programa (aquele que deve ser chamado inicialmente quando o
usurio chama a transao na verdade ele chama esse programa);
Task ou Tarefa : tarefa (a ser) executada e que tem algum componente responsvel por ela. Quando o
programa inicial de uma transao chamado, uma tarefa iniciada. Tarefas iniciadas
dessa forma so controladas (tempo, recursos, etc) pelo CICS (lembrar que o CICS
uma - ou mais tarefas que o sistema operacional tem sob sua responsabilidade); se
diversos usurios chamarem a mesma transao, cada um ter iniciado uma task ;
Processo : conjunto de programas; controlada pelo CICS; chamada pelo usurio no terminal que talvez
o esperado
Thread : conjunto de programas; controlada pelo CICS; chamada pelo usurio no terminal que talvez o
esperado
Multi-tasking means that the OS allows more than one task to run (be executed) concurrently,
regardless of whether the task use the same program or different programs. Multi-threading is the
system environment, where multiple tasks share the same program under the multi-tasking
environment. Programs are shared by several tasks, and for each task the program work as if it
executes the instructions only for that task.

4 O CICS, o sistema operacional, e outros softwares


Terminais e outros
objetos remotos

Base DB2

Arq Vsam

Sistema Operacional

Ncleo

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

VTAM
DB2
VSAM

Transaes
Job
batch

Job
batch

Aplicaes batch (background)

CICS

Aplicaes realtime (foreground)

5 LOCKS
Recurso utilizado para determinar utilizao exclusiva ou compartilhada de um objeto.
Exemplos de objetos :
Arquivos
Registros
Campos de registros
Tabelas, colunas
Perifrico
Controle : pode ser efetuado tanto pelo sistema operacional ou outros componentes
(mtodos de acesso, SGBDs, CICS, aplicativos).
Ex.:
DISP=OLD ou DISP=SHR

Resultado de pedido de LOCK :


OK
= lock obtido, processamento continua normalmente
No OK
= no obtido (recurso no disponvel); alternativas de ao :
a- task espera a disponibilizao do recurso e no prossegue enquanto ele no
estiver disponvel
b- task termina
c- task efetua controle baseado no clock e, de tempos em tempos re-verifica a
disponibilidade do recurso
DEAD LOCK
Evento que determina o travamento de duas tasks.
Task A pede lock de recurso 1 e consegue
Task B pede lock de recurso 2 e consegue
Task B pede lock de recurso 1 e no consegue; espera
Task A pede lock de recurso 2 e no consegue; espera

6 Processamento Batch X On-Line(Real Time) considerando o CICS


BATCH
Demanda pode ser (e ) programada
Programa, se executado numa mesma
hora em address spaces distintos
(jobs), tem uma cpia em cada address
space
Programa abre e fecha os arquivos
utilizados
Programa o nico ocupante do
address space
Mais acesso sequencial a arquivos,
menos acesso direto (randmico /
aleatrio)
Relatrios podem ser analticos ou
sintticos

ON-LINE
Demanda aleatria
Programa tem uma nica cpia da
parte de cdigo (Procedure Division) e
n cpias da parte de reas (WorkingStorage Section)
Arquivos abertos e fechados
MANUALMENTE (sob certo
aspecto) ou automaticamente pelo
CICS (sob outro aspecto)
Programas todos compartilham O
address space do CICS
Obs.: normalmente existem diversos
address spaces com diversos CICS
Mais acesso direto, menos acesso
sequencial

Relatrios, SE HOUVER, DEVEM


ser sintticos
(na prtica, usa-se mais o print screen
do micro)
Processa vrios (centenas, milhares,
Processa, em geral, UM NICO (no
milhes) registros em cada execuo / mximo ALGUNS) registro por
rodada
execuo
Arquivos muitas vezes so de uso
Arquivos so praticamente sempre
exclusivo do programa durante sua
compartilhados TODO o tempo
execuo (ou entre o OPEN e o
CLOSE)
Tempo de execuo : segundos,
Tempo de resposta : < 1 segundo
minutos, (horas)
PORTANTO : preocupao com
performance, alm do resultado
Impacto de recuperao pequeno
Impacto de recuperao grande :
indisponibilidade do aplicativo

7 Uso do CICS
COBOL = programao COMMAND LEVEL
(CSP) / (Visual Age)
Assembler = programao MACRO LEVEL
Para desenvolver um programa / aplicao :
Avisar responsveis pela manuteno das tabelas do CICS o nome da nova
transao e respectivo programa (inicial)
Avisar responsveis pela manuteno das tabelas do CICS o nome dos arquivos
novos (se houver) que o programa ir usar
Preparar e catalogar os mapas
Preparar e catalogar o programa
Testar o programa, provavelmente usando as transaes CEMT, CEDF, CECI

10

8 - CICS em um programa COBOL


FONTE COBOL COM COMANDOS CICS
EMBEDDED
(delimitados por
EXEC CICS / END-EXEC)

(PR-COMPILADOR)

Mensagens
(erros / resultados da
anlise dos comandos)

FONTE COBOL COM COMANDOS CICS


TRANSFORMADOS EM COMANDOS
CALL do COBOL

COMPILADOR COBOL
NORMAL

Mensagens
(erros / resultados da
compilao)

PROGRAMA OBJETO

LINKEDITOR

Mensagens
(erros / resultados da
linkedio)

PROGRAMA EXECUTVEL

11

9 CICS em um programa COBOL que tambm usa DB2


FONTE COBOL COM
Comandos CICS EMBEDDED
(delimitados por EXEC CICS / END-EXEC) e
Comandos DB2 EMBEDDED
(delimitados por EXEC SQL / END-EXEC)

(PR-COMPILADOR) CICS

Mensagens
(erros / resultados da
anlise dos comandos)

FONTE COBOL COM COMANDOS CICS


TRANSFORMADOS EM COMANDOS
CALL do COBOL

(PR-COMPILADOR) DB2

Mensagens
(erros / resultados da
anlise dos comandos)

FONTE COBOL COM COMANDOS DB2


TRANSFORMADOS EM COMANDOS
CALL do COBOL

COMPILADOR COBOL NORMAL

Mensagens
(erros / resultados da
compilao)

PROGRAMA OBJETO

LINKEDITOR

Mensagens
(erros / resultados da
linkedio)

PROGRAMA EXECUTVEL

12

10 - Interao entre os diversos softwares envolvidos

Programa 1
Execute Interface Program
(EIP)
Programa 2

Sistema
Operacional

......
Programa n

Servios
Resultados

Servios
Resultados

Servios
Resultados

Servios
Resultados

13

11 - Exemplo programa COBOL / CICS e respectivo mapa


11.1 Programa COBOL / CICS
IDENTIFICATION DIVISION.
PROGRAM-ID.
DCNESAMP.
AUTHOR.
IMA GATOR.
INSTALLATION. UF-NERDC, GAINESVILLE, FL.
DATE-WRITTEN. 01/22/90.
DATE-COMPILED.
SECURITY.
NON-CONFIDENTIAL.
*REMARKS.
*
IBM VS COBOL II USING CICS COMMAND LEVEL INTERFACE
*
PURPOSE:
*
THIS TRANSACTION DISPLAYS SYSTEM INFORMATION AND
*
LISTS THE LAST PFKEY THAT WAS ENTERED. IT IS A
*
FUNCTIONAL REPLACEMENT FOR CUKY.
*
INPUT:
*
TRANSACTION IDENTIFIER OF "NESA".
*
OUTPUT:
*
TERMINAL I/0.
*
INPUT/OUTPUT:
*
TERMINAL I/O.
*
LOGIC:
*
PSEUDO-CONVERSATIONAL.
*
NOTE: WS-COMMAREA LENGTH MUST CORRESPOND EXACTLY TO
*
DFHCOMMAREA LENGTH.
ENVIRONMENT DIVISION.
EJECT
DATA DIVISION.
WORKING-STORAGE SECTION.
01

01
01

01

WS-CONSTANTS.
05 WS-PROGRAM-ID
05 WS-TRANS-ID
05 WS-MAP-NAME
05 WS-MAPSET-NAME
05 WS-COMMAREA-LENGTH
05 WS-MESSAGE-LENGTH
05 WS-ERRMSG
VALUE 'NESA TRANSACTION
05 WS-ENDMSG
VALUE 'NESA TRANSACTION
WS-COMMAREA.
05 WS-CA-PGMID
WS-SWITCHES.
05 WS-FIRST-TIME-SW
88 FIRST-TIME
88 NOT-FIRST-TIME
05 WS-RETURN-TO-TRAN-SW
88 RETURN-TO-TRAN
88 END-TRAN
WS-HOLD-AREAS.

PIC X(08)
PIC X(04)
PIC X(08)
PIC X(08)
PIC S9(04)
PIC S9(04)
PIC X(40)
TERMINATED
PIC X(22)
ENDED'.

VALUE 'DCNESAMP'.
VALUE 'NESA'.
VALUE 'DCNESAM '.
VALUE 'DCNESAS '.
COMP VALUE +8 .
COMP VALUE +79.

PIC X(08)

VALUE SPACES.

PIC X(01)

VALUE
VALUE
VALUE
VALUE
VALUE
VALUE

PIC X(01)

DUE TO ERROR'.

'Y'.
'Y'.
'N'.
'Y'.
'Y'.
'N'.
14

05 WS-MESSAGE
05 WS-ABSTIME
05 WS-SYSDATE
05 WS-SYSTIME
05 WS-EIBDATE
05 WS-RESP
EJECT
COPY DFHAID.
EJECT
COPY DCNESASD.
EJECT
LINKAGE SECTION.

PIC
PIC
PIC
PIC
PIC
PIC

X(79)
S9(16)
X(08)
X(08)
9(05)
S9(08)

VALUE SPACES.
COMP.
VALUE SPACES.
VALUE SPACES.
VALUE ZERO.
COMP VALUE ZERO.

01 DFHCOMMAREA
PIC X(08).
EJECT
PROCEDURE DIVISION.
0000-PROGRAM-DCNESAMP.
PERFORM 1000-INITIALIZE.
IF NOT-FIRST-TIME
PERFORM 2000-RECEIVE-MAP.
PERFORM 3000-SEND-MAP.
IF RETURN-TO-TRAN
PERFORM 8000-RETURN
ELSE
PERFORM 9000-END-TRANSACTION.
GOBACK.
1000-INITIALIZE.
EXEC CICS HANDLE CONDITION
ERROR(9200-HANDLE-ERROR)
END-EXEC.
IF EIBCALEN = 0
MOVE LOW-VALUES TO DCNESAMO
MOVE WS-PROGRAM-ID TO WS-CA-PGMID
ELSE
IF EIBCALEN = WS-COMMAREA-LENGTH
MOVE 'N' TO WS-FIRST-TIME-SW
MOVE DFHCOMMAREA TO WS-COMMAREA
ELSE
PERFORM 9200-HANDLE-ERROR.
EJECT
2000-RECEIVE-MAP.
MOVE LOW-VALUES TO DCNESAMI.
EXEC CICS RECEIVE MAP(WS-MAP-NAME)
MAPSET(WS-MAPSET-NAME)
INTO(DCNESAMI)
RESP(WS-RESP)
END-EXEC.
IF ENDI = 'END' OR 'end'
MOVE 'N' TO WS-RETURN-TO-TRAN-SW.
3000-SEND-MAP.
PERFORM 3100-PROCESS-EIBAID.
EXEC CICS ASKTIME
ABSTIME(WS-ABSTIME)
RESP(WS-RESP)
15

END-EXEC.
EXEC CICS FORMATTIME
ABSTIME(WS-ABSTIME)
MMDDYY(WS-SYSDATE)
DATESEP('/')
TIME(WS-SYSTIME)
TIMESEP(':')
RESP(WS-RESP)
END-EXEC.
MOVE WS-SYSDATE TO DATEO.
MOVE WS-SYSTIME TO TIMEO.
MOVE EIBDATE TO WS-EIBDATE.
MOVE WS-EIBDATE TO DATEJO.
MOVE EIBTRMID TO TERMIDO.
IF FIRST-TIME OR EIBAID = DFHCLEAR OR DFHCLRP
EXEC CICS SEND MAP(WS-MAP-NAME)
MAPSET(WS-MAPSET-NAME)
FROM(DCNESAMO)
ERASE FREEKB
END-EXEC
ELSE
EXEC CICS SEND MAP(WS-MAP-NAME)
MAPSET(WS-MAPSET-NAME)
FROM(DCNESAMO)
ERASEAUP FREEKB DATAONLY
END-EXEC.
EJECT
3100-PROCESS-EIBAID.
IF EIBAID = DFHNULL MOVE 'NULL ' TO KEYO
ELSE IF EIBAID = DFHENTER MOVE 'ENTER' TO KEYO
ELSE IF EIBAID = DFHCLEAR MOVE 'CLEAR' TO KEYO
ELSE IF EIBAID = DFHCLRP MOVE 'CLRP ' TO KEYO
ELSE IF EIBAID = DFHPEN
MOVE 'PEN ' TO KEYO
ELSE IF EIBAID = DFHOPID MOVE 'OPID ' TO KEYO
ELSE IF EIBAID = DFHMSRE MOVE 'MSRE ' TO KEYO
ELSE IF EIBAID = DFHSTRF MOVE 'STRF ' TO KEYO
ELSE IF EIBAID = DFHTRIG MOVE 'TRIG ' TO KEYO
ELSE IF EIBAID = DFHPA1
MOVE 'PA1 ' TO KEYO
ELSE IF EIBAID = DFHPA2
MOVE 'PA2 ' TO KEYO
ELSE IF EIBAID = DFHPA3
MOVE 'PA3 ' TO KEYO
ELSE IF EIBAID = DFHPF1
MOVE 'PF1 ' TO KEYO
ELSE IF EIBAID = DFHPF2
MOVE 'PF2 ' TO KEYO
ELSE IF EIBAID = DFHPF3
MOVE 'PF3 ' TO KEYO
ELSE IF EIBAID = DFHPF4
MOVE 'PF4 ' TO KEYO
ELSE IF EIBAID = DFHPF5
MOVE 'PF5 ' TO KEYO
ELSE IF EIBAID = DFHPF6
MOVE 'PF6 ' TO KEYO
ELSE IF EIBAID = DFHPF7
MOVE 'PF7 ' TO KEYO
ELSE IF EIBAID = DFHPF8
MOVE 'PF8 ' TO KEYO
ELSE IF EIBAID = DFHPF9
MOVE 'PF9 ' TO KEYO
ELSE IF EIBAID = DFHPF10 MOVE 'PF10 ' TO KEYO
ELSE IF EIBAID = DFHPF11 MOVE 'PF11 ' TO KEYO
ELSE IF EIBAID = DFHPF12 MOVE 'PF12 ' TO KEYO
ELSE IF EIBAID = DFHPF13 MOVE 'PF13 ' TO KEYO
ELSE IF EIBAID = DFHPF14 MOVE 'PF14 ' TO KEYO
ELSE IF EIBAID = DFHPF15 MOVE 'PF15 ' TO KEYO
ELSE IF EIBAID = DFHPF16 MOVE 'PF16 ' TO KEYO
16

ELSE IF EIBAID = DFHPF17 MOVE 'PF17


ELSE IF EIBAID = DFHPF18 MOVE 'PF18
ELSE IF EIBAID = DFHPF19 MOVE 'PF19
ELSE IF EIBAID = DFHPF20 MOVE 'PF20
ELSE IF EIBAID = DFHPF21 MOVE 'PF21
ELSE IF EIBAID = DFHPF22 MOVE 'PF22
ELSE IF EIBAID = DFHPF23 MOVE 'PF23
ELSE IF EIBAID = DFHPF24 MOVE 'PF24
ELSE MOVE '?????' TO KEYO.
EJECT
8000-RETURN.
EXEC CICS RETURN
TRANSID(WS-TRANS-ID)
COMMAREA(WS-COMMAREA)
LENGTH(WS-COMMAREA-LENGTH)
END-EXEC.

'
'
'
'
'
'
'
'

TO
TO
TO
TO
TO
TO
TO
TO

KEYO
KEYO
KEYO
KEYO
KEYO
KEYO
KEYO
KEYO

9000-END-TRANSACTION.
MOVE WS-ENDMSG TO WS-MESSAGE.
PERFORM 9900-TERMINATE.
9200-HANDLE-ERROR.
MOVE WS-ERRMSG TO WS-MESSAGE.
PERFORM 9900-TERMINATE.
9900-TERMINATE.
EXEC CICS SEND
FROM(WS-MESSAGE)
LENGTH(WS-MESSAGE-LENGTH)
ERASE
END-EXEC.
EXEC CICS SEND CONTROL
FREEKB
END-EXEC.
EXEC CICS RETURN
END-EXEC.

17

11.2 MAPA FSICO


*
NESA MAP. USED IN PROGRAM DCNESAMP.
DCNESAS DFHMSD TYPE=MAP,MODE=INOUT,LANG=COBOL,
TIOAPFX=YES,STORAGE=AUTO
DCNESAM DFHMDI SIZE=(24,80),CTRL=(FREEKB,PRINT)
END
DFHMDF POS=(1,1),ATTRB=(UNPROT,NORM,IC),LENGTH=3
DFHMDF POS=(1,5),ATTRB=(ASKIP,DRK),LENGTH=1
DFHMDF POS=(1,25),ATTRB=(ASKIP,NORM),LENGTH=22,
INITIAL='NERDC NESA Transaction'
DFHMDF POS=(5,7),ATTRB=(ASKIP,NORM),LENGTH=5,
INITIAL='Date:'
DATE
DFHMDF POS=(5,20),ATTRB=(ASKIP,NORM),LENGTH=8
DATEJ
DFHMDF POS=(6,20),ATTRB=(ASKIP,NORM),LENGTH=5
DFHMDF POS=(7,7),ATTRB=(ASKIP,NORM),LENGTH=5,
INITIAL='Time:'
TIME
DFHMDF POS=(7,20),ATTRB=(ASKIP,NORM),LENGTH=8
DFHMDF POS=(8,7),ATTRB=(ASKIP,NORM),LENGTH=7,
INITIAL='Termid:'
TERMID DFHMDF POS=(8,20),ATTRB=(ASKIP,NORM),LENGTH=4
DFHMDF POS=(9,7),ATTRB=(ASKIP,NORM),LENGTH=9,
INITIAL='Last Key:'
KEY
DFHMDF POS=(9,20),ATTRB=(ASKIP,NORM),LENGTH=5
DFHMDF POS=(22,1),ATTRB=(ASKIP,NORM),LENGTH=22,
INITIAL='Enter END to Terminate'
DFHMSD TYPE=FINAL
END

+
+

+
+
+
+

11.3 MAPA LGICO


*
NESA MAP. USED IN PROGRAM DCNESAMP.
DCNESAS DFHMSD TYPE=DSECT,MAP,MODE=INOUT,LANG=COBOL,
TIOAPFX=YES,STORAGE=AUTO
DCNESAM DFHMDI SIZE=(24,80),CTRL=(FREEKB,PRINT)
END
DFHMDF POS=(1,1),ATTRB=(UNPROT,NORM,IC),LENGTH=3
DFHMDF POS=(1,5),ATTRB=(ASKIP,DRK),LENGTH=1
DFHMDF POS=(1,25),ATTRB=(ASKIP,NORM),LENGTH=22,
INITIAL='NERDC NESA Transaction'
DFHMDF POS=(5,7),ATTRB=(ASKIP,NORM),LENGTH=5,
INITIAL='Date:'
DATE
DFHMDF POS=(5,20),ATTRB=(ASKIP,NORM),LENGTH=8
DATEJ
DFHMDF POS=(6,20),ATTRB=(ASKIP,NORM),LENGTH=5
DFHMDF POS=(7,7),ATTRB=(ASKIP,NORM),LENGTH=5,
INITIAL='Time:'
TIME
DFHMDF POS=(7,20),ATTRB=(ASKIP,NORM),LENGTH=8
DFHMDF POS=(8,7),ATTRB=(ASKIP,NORM),LENGTH=7,
INITIAL='Termid:'
TERMID DFHMDF POS=(8,20),ATTRB=(ASKIP,NORM),LENGTH=4
DFHMDF POS=(9,7),ATTRB=(ASKIP,NORM),LENGTH=9,
INITIAL='Last Key:'
KEY
DFHMDF POS=(9,20),ATTRB=(ASKIP,NORM),LENGTH=5
DFHMDF POS=(22,1),ATTRB=(ASKIP,NORM),LENGTH=22,
INITIAL='Enter END to Terminate'
DFHMSD TYPE=FINAL
END

+
+

+
+
+
+

18

*
1
2
3
4
5
6
7
8
12345678901234567890123456789012345678901234567890123456789012345678901234567890
01
02
03
04
05
Date:
06
07
Time:
08
Termid:
09
Last Key:
10
11
12
13
14
15
16
17
18
19
20
21
22 Enter END to Terminate
23
24

NERDC NESA Transaction

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

12345678901234567890123456789012345678901234567890123456789012345678901234567890
*
1
2
3
4
5
6
7
8

19

12 Alguns componentes do CICS


PROGRAMAS (Rotinas)

TCP (Terminal Control Program)


KCP (Task Control Program)
PCP (Program Control Program)
FCP (File Control Program)
SCP (Storage Control Program)
TSP (Temporary Storage Program)
SNP (Sign-On Program)

AREAS

TCA (Terminal Control Area)


TWA (Transaction Work Area)

TABELAS

Programas / transaes :
PCT (Program Control Table) = tem a relao das transaes vlidas; para cada transao tem como par o nome do
programa associado , que deve ser carregado quando a transao for chamada
PPT (Processing Program Table) = tem a relao de todos os programas e mapas BMS; usada pelo CICS para controlar
o que est carregado na memria ou no, o que precisa de newcopy, etc
Arquivos arquivos utilizados pelos aplicativos :
FCT (File Control Table) = contm a relao de todos os arquivos que so usados pelo (ou sob CICS) , por todas as
transaes / programas; ela indica quais as operaes vlidas (READ ONLY, DELETE, UPDATE, etc)
Terminais utilizados pelos aplicativos :
TCT (Terminal Control Table)
Recursos Transient Data :
DCT (Destination Control Table)

20

13 - Diferenas entre o terminal normal e o emulado em um PC :

No PC, todos os pixels (picture elements) so endereveis : numa configurao


640 x 480 = 307.200 pontos que podem ser configurados vontade;
No terminal tipo 3270, os pontos endereveis constituem um vetor de
(basicamente) 24 x 80 = 1920 pontos que podem receber um conjunto limitado de
contedos (basicamente 190 caracteres oriundos das 256 configuraes EBCDIC);
No PC existe processador, memria e software, o que possibilita que uma parte do
tratamento dos dados para comunicao com um host seja feita localmente; no
terminal existe apenas um buffer (memria) capaz de conter informaes limitadas
ao tamanho da tela..

Obs.: A exata (ou no) utilizao dos recursos 3270 no PC depende do emulador e do
teclado utilizado.

21

14 A famlia 3270 de terminais


Composta de terminais de vdeo e impressores, e de controladoras, com
caractersticas comuns, e que utilizam o mesmo padro de comunicao com o
processador.
Este padro denominado 3270 data stream.
Nasceu com (e influenciou) o crescimento e desenvolvimento de aplicaes on-line, e,
por decorrncia, o sistema transacional CICS.
Baseados inicialmente na arquitetura mquina de escrever, os terminais de vdeo
(CRT Cathod Ray Tube) dispunham inicialmente de recursos bsicos para texto, e
esta famlia de terminais nasceu e desenvolveu-se incrementando recursos de
visualizao e de processamento.

22

15 Teclas de entrada de um terminal :


Data Keys = So as teclas normais : letras, algarismos, caracteres especiais.
Pressiona-las simplesmente causa a mudana do buffer (e, por eco, da tela) para
o contedo da tecla pressionada. O cursor , aps isso, fica posicionado na
posio em que o prximo caracter teclado ser colocado, pulando as posies
necessrias (ex.: autoskip).
Control Keys = So as teclas de controle, como por exemplo erase field. O pedido
executado pelo prprio terminal, sem envio de dados aplicao no host.
Attention Keys = Neste caso, a informao transmitida ao host para processamento.
So as teclas de controle, como por exemplo erase field. O pedido executado
pelo prprio terminal, sem envio de dados aplicao no host. As attention keys
so :
ENTER (transmite os dados se foi dado READ Modified)
PFs (Program Function) (transmite os dados se foi dado READ Modified)
CLEAR (seta o buffer para nulls)
PAs (Program Attention)
CNCL (cancel; presente somente em alguns modelos)
Obs.: Attention Identifier (AID) = O 3270 permite que o aplicativo saiba qual foi a
tecla pressionada atravs de um valor colocado no buffer e que ser
transmitido para o host. Este valor o AID.

23

16 - Campos de tela
Conceito introduzido pela famlia 3270.
Cada campo tem uma posio inicial e atributos, tais como intensidade, cor,
possibilidade de receber dados digitados ou no. Exemplo :

COMPRAS

CLIENTE

123445

NOME

JUCA SILVA

VALOR

123,42

Cada texto um campo.


Os campos esquerda foram exibidos pelo programa.
Os campos direita foram digitados pelo operador.

Objetivos de organizar a tela em campos :


Facilitar a visualizao, utilizando diferentes caractersticas;
Possibilidade de utilizar tab keys para passar mais rapidamente de um campo para
outro
Possibilidade de apagar campos individualmente
Reduo dos streams de envio de dados do host para o terminal (enviar somente
os campos com contedo)
Reduo dos stream de envio de dados do terminal para o host (enviar somente os
campos que foram efetivamente digitados / modificados)

24

17 - Atributos de um campo
O atributo de um campo indica caractersticas de proteo, modificao e intensidade,
e o primeiro byte do campo.
Gasta 1 byte, mas no tem contedo para exibio.
Proteo (usa 2 bits)
Unprotected
O operador pode digitar qualquer dados no campo.
Numeric-only
O operador pode digitar 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ponto (separador
decimal), hfen (negativo) ou DUP key. Caso contrrio, o teclado trava
(keyboard locked).
Protected
O teclado trava (keyboard locked) se o operador tentar teclar qualquer
coisa.
Autoskip
O operador tambm no pode teclar nada. A diferena (em relao ao
protected) no comportamento do cursor.
Sempre que o cursor est sendo avanado para o prximo campo (seja
porque o campo anterior foi digitado at o fim e seu tamanho esgotou-se,
ou porque foi pressionado o field advance (TAB), o cursor pula o(s)
campo(s) com atributo de autoskip, em direo ao prximo campo; ele
fica posicionado no primeiro campo que encontrar com atributo
unprotected ou numeric-only.
Modificao (usa 1 bit)
Bit denominado MDT (Modified Data Tag).
Indica se o campo foi modificado ou no.
Setado automaticamente pelo hardware (do terminal) se o operador teclar algo no
campo.
Importante para o READ : em geral, se o campo foi modificado, faz parte do stream
enviado ao host. Se no foi modificado, no enviado.
Pode ser setado pelo programa antes do SEND : se for, vai ser enviado do terminal
para o programa, mesmo que no tenha sido modificado.
Intensidade (usa 2 bits)
Normal intensity = Brilho normal.
Bright = Brilho maior (highlight).
Nondisplay = O campo no exibido, mesmo que tenha dados (no buffer).

25

18 - O stream de sada da aplicao para o terminal (construdo pelo BMS)


1 byte para o write command
write = s manda os dados para o buffer (para exibir)
erase / write = limpa o buffer e depois manda os dados para o buffer
erase / write alternate = idem ao anterior, indicando o tamanho da tela (alternate
screen size; ex.: 24 x 132)
erase all unprotected fields = limpa os campos no protegidos (que podem
receber dados do operador)
write structured fields = para campos estruturados
1 byte para carter de controle (WCC) - contedo varia de acordo com opes do
SEND
sound alarm = ativa o alarme (BMS = ALARM)
unlock keyboard = destrava o teclado (BMS = FREEKB)
turn off the modified data tags =
begin printing = para terminal impressor (BMS = PRINT)
reset structured fields = para campos estruturados
reset inbound reply mode =
SBA (Set Buffer Address)
Se o prximo campo a ser transmitido NO for o prximo identificado por um
SF, deve-se montar o string colocando um SBA indicando o prximo campo a
transmitir (campo de 2 bytes indicando coluna e linha).
11

C1

F0

Buffer Address : linha 2 coluna 33


SBA
SA (Set Attribute)
Para indicar o atributo de um nico caracter. Por exemplo, para indicar que um
caracter deve ser exibido piscando :
28

41

F1

Blinking
Atributo : extended highlighting
SA

string de n bytes com os dados a exibir = indicao de :


como exibir os dados (atributos e pedidos)
qual o seu contedo
localizao na tela

26

STRING = Inicia-se sempre pela indicao de SF (Start Field) ou SFE (Start Field
Extended) ; exemplo :
1D

F0

D4
M

C5
E

D5
N

E4
U

Dados : palavra MENU


Field attributes : autoskip, normal intensity, MDT off
SF
Exemplo :
__________________________________________________________________________
|
|
|
Dados Auto
|
| Empregado : ______
Chapa : ________
U.F. : __
|
|
|
|__________________________________________________________________________|

Existem 8 campos nesta tela :


1. Ttulo da tela : "Dados Auto", linha 1, coluna 26
2. Identificao da informao (que deve ser digitada direita) para o usurio : "Empregado :" (linha
3, coluna 1)
3. Campo para entrada de dados (cdigo do funcionario) : linha 3, coluna 14, com 6 bytes
4. Identificao da informao (que deve ser digitada direita) para o usurio : "Chapa :", linha 3,
coluna 21
5. Campo para entrada de dados (cdigo da placa do carro) na linha 3, coluna 31, com 8 bytes
6. Identificao da informao (que deve ser digitada direita) para o usurio : "U.F. :", na linha 3,
coluna 40
7. Campo para entrada de dados (sigla do estado do carro), na linha 3, coluna 49,com 2 bytes
8. Um campo para marcar o fim do campo anterior, na linha 3, coluna 52

27

O data stream para exibio da tela, neste caso, :


Bytes Contents
1
X'F5'
2
X'C2'

Notes
erase/write.
WCC (destrava o teclado, no soa alarme, no reseta os MDTs.

3
4-5

X'11'
X'40D6'

SBA para posicionar o primeiro campo em ...


Linha 1 , coluna 23 (tela de 24x80), usando endereamento de 12-bit

6
7
8-17

X'1D'
X'F8'
'Dados Auto'

SF para iniciar a definio do primeiro campo


Byte com atributos do campo ; indica um campo com autoskip e bright, com o MDT iniciando cem ON
Contedo (a ser exibido) do campo

18-20
21
22
23-34

X'11C260'
X'1D'
X'F0'
'Empregado :'

SBA para indicar buffer position na linha 3 coluna 1 para o segundo campo
SF para iniciar a definio do segundo campo
Byte com atributos do segundo campo : autoskip, intensidade normal, MDT off.
Contedo (a ser exibido) do campo

35
X'29'
36
37
38
39

X'02'
X'41'
X'F4'
X'C0'

40

X'50'

41

X'13'

SFE para iniciar quarto campo (precisa SFE ao invs de SF para poder especificar atributos
estendidos) .
Este campo comea imediatamente aps o anterior; por isso no necessrio um SBA
Quantidade de tipos de atributo especificados (2 : field outlining and field attributes).
Indica tipo de atributo estendido highlighting.
Valor de highlighting que indica sublinhado
Indica tipo de atributo de atributos de campo
Valor de atributos de campo que indica numeric-only, normal intensity, MDT off. Se houvesse contedo
inicial para este campo, ele apareceria em seguida (mas no h contedo inicial neste caso)
Insert cursor (IC) : lndica ao 3270 para colocar o cursor na posio corrente do cursor. Como se deseja
que ele fique sobre o incio do primeiro campo que o operador deve preencher (e ele est nessa
posio), indica-se o insert cursor.

42-44 X'11C2F4'

SBA para posicionar na linha 3 coluna 21, para deixar as 6 posies necessrias para o cdigo do
empregado. O incio da constante "Chapa " indica o final do campo de cdigo do empregado; portanto,
o usurio ser alertado caso tente digitar alm desse limite.

45
X'1D'
46
X'F0'
47-55 ' Chapa :'

SF para o quinto campo


Byte de atributos do campo : autoskip, normal intensity, MDT off.
Dados a exibir (com 2 brancos iniciais para maior espao entre os campos

56
57
58-59
60-61

SFE (o prximo campo outro campo de entrada, where we want field outlining, so we use SFE again).
Indicador de quantidade de tipos de atributo
Indica extended highlighting + underscoring.
Indica unprotected, normal intensity, MDT off.

X'29'
X'02'
X'41F4'
X'C040'

62-64 X'11C3C7'

SBA para reposicionar no linha 3 coluna 40, deixando 8 posies para chapa.

65
X'1D'
66
X'F0'
67-74 ' U.F. :'

SF para o novo campo


Indica: autoskip, normal intensity, MDT off.
Dados (com 2 brancos iniciais para maior separao)

X'290241F4C0
SFE para campo de UF (atributos idnticos aos do campo de chapa)
40'
Contedo inicial do campo de UF. Poderia ser omitido, mas seria necessrio um SBA para posicionar
81-82 X'0000'
no fim do campo.
75-80

83

X'1D'

84

X'F0'

SF. ltimo campo; indica fim do anterior para que no seja possvel digitar mais de 2 posies no
campo de UF. Sem contedo inicial, somente com atributo, para servir de (campo) indicador de fim de
campos.
Indica atributos de autoskip, normal intensity, MDT off.

28

19 - O stream de entrada do terminal para a aplicao (construdo pelo


BMS)
O stream sempre inicia com um campo de 3 bytes (read header) com :
AID (1 byte)
Cursor Address (2 bytes)
Estas informaes so colocadas numa rea denominada EIB (Exec Interface Block) ,
respectivamente nas variveis EIBAID e EIBCPOSN, e ficam disponveis para o
aplicativo aps o RECEIVE.
Comandos
READ BUFFER : traz o buffer inteiro, aps o read header. Basicamente serve para
diagnsticos e outras finalidades especiais.
READ MODIFIED : para CLEAR, CNCL e para as PAs, s traz o read header. Para
ENTER e PFs traz somente os campos que foram alterados. Este processo objetiva
diminuir a quantidade de dados transmitidos (MDT on). Cada campo modificado vem
com :
SBA
Endereo (2 bytes) da primeira posio dos dados do campo
SF
Contedo
Exemplo :
__________________________________________________________________________
|
|
|
Car Record
|
| Employee No: ______
Tag No: ________
State: __
|
|
|
|__________________________________________________________________________|

O data stream obtido reflete :


"123456" que foi digitado no campo employee no
"ABC987" que foi digitado no campo tag number
Pressionado ENTER, sem preencher o campo state
Bytes
1
2-3
4
5-6
7-12
13-15
16
17-22

Contents
X'7D'
X'C3C5'
X'11'
X'C26E'
'123456'
X'11C3D1'
X'1D'
'ABC987'

Notes
AID (neste caso = ENTER key)
Endereo do Cursor : linha 3, coluna 38 (posio do cursor aps digitado o ltimo dado)
SBA, indicando que a seguir vem um buffer address
Endereo da linha 3, coluna 15 (posio inicial do prximo campo employee no)
Campo de employee no, onde foi digitado 123456
SBA indicando buffer address da linha 3, coluna 32
SF, indicando outro campo de entrada (o de plate no nro placa a seguir)
Campo de tag no, onde foi digitado ABC987 (o campo tem 8 bytes, mas foram
digitados somente 6)
O terceiro campo (state) no aparece pois no foi digitado nada nele
29

20 BMS
BMS = Basic Mapping Support
Mapa BMS
Declarao dos dados que compem as telas.
Ele preparado separadamente do programa, o que permite que haja independncia da aplicao em
relao ao formato da tela.
Existem dois tipos de mapas :
MAPA FSICO
Programa Assembler , catalogado em uma load library.
Contm os dados que vo ser enviados do programa para a tela e da tela para o programa (imagem de
buffer) .
MAPA SIMBLICO ou LGICO
Descrio / declarao de variveis a serem usadas nos programas.
Se for em Cobol, tem um conjunto de declaraes em Cobol, para que possam ser usadas via COPY
quando o programa for compilado.
Denomina-se MAPSET a um grupo de mapas fsicos, linkeditados em conjunto.
Os mapas podem ser criados atravs de :
BMS = Programa (com macros) Assembler
Outros softwares, que geram o mesmo que o BMS gera. Ex.: SDF II (Screen Definition
Facility II)
As 3 macros Assembler do BMS so :
DFHMDF (Data Facility Hierarchical Map Data Field): Define um campo (individualmente) na tela.
DFHMDI (Data Facility Hierarchical Map Definition Information): Define um mapa como um
conjunto de campos.
DFHMSD (Data Facility Hierarchical Map Set Definition): Agrupa um conjunto de mapas como um
MAPSET.

30

DFHMDF : definir campos


Atravs dela, indica-se :
Posio do campo na tela
Tamanho do campo
Contedo default (a no ser que seja colocado sempre pelo programa)
Atributos do campo
Nome atravs do qual o campo ser referenciado no programa
Regras para a formao dos nomes (para mapas usados em programas Cobol):
Caracteres vlidos:
letras de A a Z
algarismos de 0 a 9
hfen (desde que o Assembler utilizado suporte)
number sign (#)
cifro ($)
O primeiro caracter deve ser alfabetico
Tamanho mximo de 29 caracteres
Exemplos :
.........1.........2.........3.........4.........5.........6.........7..
.........0.........0.........0.........0.........0.........0.........0..
DFHMDF POS=(1,1),LENGTH=3,ATTRB=(ASKIP,BRT),INITIAL='QCK'
DFHMDF POS=(1,26),LENGTH=28,ATTRB=(ASKIP,NORM),
X
INITIAL='Quick Customer Account Check'
DFHMDF POS=(3,1),LENGTH=8,ATTRB=(ASKIP,NORM),INITIAL='Account'
ACCTNO
DFHMDF POS=(3,13),LENGTH=7,ATTRB=(ASKIP,NORM)
DFHMDF POS=(4,1),LENGTH=5,ATTRB=(ASKIP,NORM),INITIAL='Name:'
SURNAME DFHMDF POS=(4,13),LENGTH=15,ATTRB=(ASKIP,NORM)
FNAME
DFHMDF POS=(4,30),LENGTH=10,ATTRB=(ASKIP,NORM)
DFHMDF POS=(5,1),LENGTH=11,ATTRB=(ASKIP,NORM),
X
INITIAL='Max charge:'
CHG
DFHMDF POS=(5,13),ATTRB=(ASKIP,NORM),PICOUT='$,$$0.00'
MSG
DFHMDF LENGTH=20,POS=(7,1),ATTRB=(ASKIP,NORM)

31

Sintaxe :
Fld

DFHMDF
ATTRB=(|ASKIP|BRT|DET|DRK|FSET|IC|NORM|NUM|PROT|UNPROT|)
CASE=MIXED
COLOR=|color|BASE|
GINIT=
GRPNAME=group-name
HILIGHT=(|OFF|BLINK|REVERSE|UNDERLINE|)
INITIAL='conteudo'
JUSTIFY=(|LEFT|RIGHT][,|BLANK|ZERO|]
LENGTH=number
OCCURS=number
OUTLINE=BOX[,|LEFT|RIGHT|OVER|UNDER|]
PICIN='value'
PICOUT=|'value'|NO|
POS=|number|(line,column)|
PS=psid
SOSI=YES
TRANSP=|YES|NO|
XINIT=hex-data
VALIDN=(|MUSTFILL|MUSTENTER|TRIGGER|USEREXIT|)

DEFAULT

Define um campo dentro de um mapa definido anteriormente por DFHMDI.


Um mapa pode ter de zero a n campos.
"fld" : nome do campo. Se omitido, no podem ser referenciados / acessados pelos programas para
alterao de atributos / contedo.
Se um campo especificado com contedo inicial, quando for executada uma operao em que foi
suprido contedo, este se sobrepe ao contedo inicial.
A performance das operaes de input de mapa (receive) mais eficiente se as macros DFHMDF
estiverem especificadas em ordem crescente de POS.
Mximo de 1023 campos com nome.
Campos de mapas, mapas e mapsets no podem ter o mesmo nome.
Before CICS can load a physical map, you must define a physical map using an RDO transaction
with the MAPSET attribute.

PARMETROS
ATTRB
Se omitido, assume ASKIP, UNPROT e NORM.
Se especificado para um grupo de campos, deve ser especificado no primeiro campo.
ASKIP
BRT

DET
DRK

o default; indica que no campo no pode ser digitado nada; o cursor pula o
campo.
Exibido com alta intensidade (brilho BrighT)specifies that a high-intensity
display of the field is required. Because of the 3270 attribute character bit
assignments, a field specified as BRT is also potentially detectable. However, for
the field to be recognized as detectable by BMS, DET must also be specified.
Indica campo potencialmente detectvel (o primeiro caracter ? > & blank).
Se for ? ou >, um selection field; se for & ou blank, um attention field.
Indica campo com dados no exibveis (DRK e DET incompatveis)
32

FSET
IC

NORM
NUM
PROT
UNPROT

Indica que o MDT deve ser posicionado (em ON) quando este campo for exibido
no terminal (Forced SET)
Insert Cursor : indica que o cursor, quando a tela for exibida, deve ser
posicionado / colocado no primeiro byte deste campo. Se for especificado em
mais de um campo, o posicionamento feito no ltimo. Se no for especificado,
o default zero (se for especificado junto com ASKIP ou PROT o cursor
posicionado num campo em que no se pode digitar nada). Esta opo pode ser
sobreposta pela opo CURSOR do comando SEND MAP.
Intensidade normal. o default.
Indica que somente podem ser digitados dados numricos no campo.
Indica que no podem ser digitados dados no campo.
Indica que o campo poder ter contedo digitado.

CASE
Indica que o campo deve ser convertido para maiscula
COLOR
Se o terminal suporta cores, indica a cor do campo ou a cor default do mapset (se for o caso).
Validos : blue, red, pink, green, turquoise, yellow, and neutral.
GINIT

s para DBCS

GRPNAME
Nome que agrupa um conjunto de campos sob uma nica denominao. Incompatvel com OCCURS.
Os campos num grupo devem estar um em seguida ao outro; pode haver intervalos, mas no de campos
que no pertenam ao grupo. Cada campo do grupo precisa ter um nome, e o operando POS tambm
deve ser especificado. Todas as macros DFHMDF que definam os campos de um grupo devem ser
especificadas juntas, e na ordem correta (crescente por POS).
Por exemplo, as primeiras 20 colunas das primeiras 6 linhas de um mapa podem ser definidas como um
grupo de 6 campos; as colunas (21 a 80) das 5 primeiras linhas no precisam ser definidas como
campos. O ATTRB do primeiro campo vale aplica-se para todos os campos do grupo.
HILIGHT
Indica o default do atributo de highligh para todos os campos em todos os mapas do mapset.
OFF
is the default and indicates that no highlighting is used.
BLINK
specifies that the field must blink.
REVERSE
specifies that the character or field is displayed in reverse video, for example, on
a 3278, black characters on a green background.
UNDERLINE specifies that a field is underlined.
INITIAL (or XINIT)
Indica o contedo inicial de um campo de sada. Usar INITIAL para especificar contedos em caracter
e XINIT para especificar contedos em hexadecimal.
Dados em hexadecimal devem ser especificados em pares de caracteres (algarismos) hexadecimais.
Ex.: XINIT=C1C2.
Preenchimento direita com brancos se o especificado for menor que o tamanho.
33

Somente um parmetro GINIT, INITIAL, ou XINIT pode ser especificado.


JUSTIFY
Indica o tipo de alinhamento para campos de entrada.
LEFT specifies that data in the input field is left-adjusted.
RIGHT specifies that data in the input field is right-adjusted.
BLANK specifies that blanks are to be inserted in any unfilled positions in an input field.
ZERO specifies that zeros are to be inserted in any unfilled positions in an input field.
LEFT e RIGHT so obviamente incompatveis. BLANK e ZERO tambm o so.
Especificado
LEFT
RIGHT
BLANK
ZERO

Assumido
BLANK
ZERO
LEFT
RIGHT

Se JUSTIFY for omitido e o atributo NUM for especificado, RIGHT e ZERO so assumidos.
Se JUSTIFY for omitted, e NUM no foi especificado, LEFT e BLANK so assumidos.
LENGTH
Indica o tamanho (1-256 bytes) do campo (ou grupo de campos).
O tamanho em bytes deve ser no mximo a quantidade de bytes que o programa espera receber; ele
NO DEVE incluir o byte de atributo.
Em geral, LENGTH pode ser omitido se PICIN ou PICOUT for(em) especificado(s).
Seno, LENGTH necessrio.
Pode-se especificar zero se o nome do campo for omitido (na macro DFHMDF). Usa-se tal recurso
para delimitar campos em mapas de entrada.
OCCURS
Indica o nmero de ocorrncias para o campo. Neste caso, a referncia feita por subscrito (ndice)
pois gerado um vetor.
OCCURS e GRPNAME so incompatveis.
OUTLINE
Permite que linhas sejam incluidas acima, abaixo, esquerda e direita do campo ou grupo de campos
(para construir boxes).
PICIN (COBOL and PL/I only)
Indica a picture a ser usada num campo de entrada num mapa IN ou INOUT. Ela serve como uma
especificao de edio que passada para o programa, permitindo ao usurio explorar os recursos de
edio do COBOL ou PL/I.
A validade dos dados NO verificada pelo BMS; deve ser feita pelo programa.
O tamanho da(s) picture(s) (PICIN e/ou PICOUT) deve ser o mesmo do LENGTH, se especificado.
Se tanto PICIN e PICOUT forem usadas, as pictures devem ter o mesmo tamanho.
Exemplo:
34

MAPX
MAP
F1
F2
F3

DFHMSD

TYPE=DSECT,
LANG=COBOL,
MODE=INOUT
DFHMDI LINE=1,COLUMN=1,
SIZE=(1,80)
DFHMDF POS=0,LENGTH=30
DFHMDF POS=40,LENGTH=10,
PICOUT='$$$,$$0.00'
DFHMDF POS=60,LENGTH=6,
PICIN='9999V99',
PICOUT='ZZ9.99'
DFHMSD TYPE=FINAL

Isto gera a seguinte DSECT:


01

01

MAPI.
02 F1L
02 F1A
02 FILLER
03 F1F
02 F1I
02 FILLER
02 F2L
02 F2A
02 FILLER
03 F2F
02 F2I
02 FILLER
02 F3L
02 F3A
02 FILLER
03 F3F
02 F3I
02 FILLER

PIC S9(4) COMP.


PIC X.
REDEFINES F1A.
PIC X.
PIC X(30).
PIC X.
PIC S9(4) COMP.
PIC X.
REDEFINES F2A.
PIC X.
PIC X(10).
PIC X.
PIC S9(4) COMP.
PIC X.
REDEFINES F3A.
PIC X.
PIC 9999V99.
PIC X.

MAPO REDEFINES MAPI.


02 FILLER PIC X(3).
02 F1O
PIC X(30).
02 FILLER PIC X.
02 FILLER PIC X(3).
02 F2O
PIC $$$,$$0.00.
02 FILLER PIC X.
02 FILLER PIC X(3).
02 F3O
PIC ZZ9.99.
02 FILLER PIC X.

Caracteres vlidos para picture :


A P S V X 9 / (

PICOUT (COBOL and PL/I only)


Semelhante ao PICIN; picture aplicada a um campo de sada num mapa com OUT ou INOUT.
Caracteres vlidos : A B E P S V X Z 0 9 , . + - $ CR DB / (
35

POS
Indica a posio de um campo.
number

indica o deslocamento (relativo a zero) desde o incio do mapa.


(line,column)

indica nmero da linha e da coluna (relativos a 1) dentro do mapa.


A primeira posio de um campo deve ser reservada para o byte de atributo.
PS

Indica que programmed symbols so usados.

SOSI

s para DBCS

TRANSP
Indica se o background de um campo alfanumerico transparent ou opaco (espao entre caracteres
visvel).
VALIDN

|MUSTFILL |MUSTENTER |TRIGGER |USEREXIT |

XINIT

ver INITIAL

36

DFHMDI : definir mapas


Deve preceder as DFHMDF que definem os campos, e indica que os campos
declarados aps ela formam um mapa.
Atravs dela, indica-se :
Nome do mapa
Tamanho do mapa (em linhas e colunas)

Localizao do mapa na tela (pode-se colocar vrios mapas numa nica tela)
Se o mapa usa extended display attributes, e, caso use, quais so
Os defaults para os extended display attributes
Controles associados ao envio do mapa (alarme, destravar teclado)
Tipo de device suportado pelo mapa

Exemplo :
QCKMAP

DFHMDI SIZE=(24,80),LINE=1,COLUMN=1,CTRL=ALARM

37

Sintaxe :
Map

DFHMDI
COLOR=|DEFAULT|color|
CTRL=(|PRINT|length|FREEKB|ALARM|FRSET|)
COLUMN=|SAME|number|NEXT|
CURSLOC=|NO|YES|OFF|
DATA=|FIELD|BLOCK|
DSATTS=(attr)
EXTATT=|NO|MAPONLY|YES|DEFAULT|
FIELDS=NO
FLDSEP=separator_sequence
HEADER=YES
HILIGHT=|BLINK|REVERSE|UNDERLINE|
JUSTIFY=|LEFT|RIGHT|OVER|UNDER||BOTTOM|FIRST|LAST|
LINE=|number|NEXT|SAME|
MAPATTS=(attr)
OBFMT=|YES|NO|FIELD|
OUTLINE=|BOX|
PARTN=(name)
PS=|BASE|psid|
SIZE=(line,column)
SOSI=|NO|YES|
TERM=type_______________
TIOAPFX=|YES|NO|
TRAILER=YES
TRANSP=|YES|NO|
VALIDN=|MUSTFILL|MUSTENTER|TRIGGER|USEREXIT|

Parmetros :
COLOR
Indica cor dos campos. Vlidos : blue, red, pink, green, turquoise, yellow, e neutral.
COLUMN
Indica coluna e linha onde o mapa deve ser aplicado.
NUMBER
coluna esquerda ou direita da pagina onde ser a margem do mapa
NEXT indica que a margem esquerda ou direita do mapa deve ser aplicada na prxima coluna
disponvel da linha corrente.
SAME indica que a margem esquerda ou direita do mapa deve ser aplicada na mesma coluna do
ltimo mapa (nonheader ou nontrailer) usado e que tenha COLUMN=number e o
mesmo parmetro JUSTIFY desta macro.
CTRL
Indica caractersticas dos terminais.
PRINT
se for terminal impressora.
LENGTH
indica o tamanho da linha da impressora; especificar L40, L64, L80, ou
HONEOM. L40, L64, e L80 foram uma nova linha aps 40, 64, ou 80 characters,
respectivamente. HONEOM faz com que o tamanho padro da linha da impressora seja usado.
FREEKB
indica que o teclado deve ser destravado aps o mapa ter sido escrito. Se no for
especificado FREEKB, o teclado permanece travado.
ALARM
ativa o alarme.
38

indica que os MDTs (modified data tags) de todos os campos devem ser
resetados para a condio de unmodified (field reset) antes do maps ser colocado no buffer /
exibido.
FRSET

CURSLOC
Indica que em todas as operaes de RECEIVE MAP o BMS posiciona um flag na aplicao para
indicar a posio do cursor.
O flag deve ser testado por DFHBMCUR (ver no copy de DFHBMSCA). Ex.:
(DFHBMSCA)
...
02 DFHBMEOF
PIC X VALUE X'80'.
02 DFHBMCUR
PIC X VALUE X'02'.
02 DFHBMEC
PIC X VALUE X'82'.
02 DFHBMFLG
PIC X.
88 DFHERASE
VALUES ARE X'80', X'82'.
88 DFHCURSR
VALUES ARE X'02', X'82'.
MOVE FLD1F TO DFHBMFLG.
IF DFHERASE THEN ...
ELSE ...
IF DFHCURSR THEN ...
ELSE ...

DATA
Indica o formato dos dados.
FIELD indica que os dados so passados como campos contguos, cada qual com seu formato:
LL
A
data field
"LL" : 2 bytes com o tamanho dos dados entrados
"A" : 1 byte para que o programa aplicativo nele coloque o atributo que ir sobrepor-se ao do
mapa.
BLOCK
indica que os dados so passados como um nico stream no formato:
A
data field
space
No pode-se usar DSATTS=YES se DATA=BLOCK.
DSATTS
Indica os tipos de atributo na descrio simblica do mapa. Pode ser : COLOR, HILIGHT, OUTLINE,
PS, SOSI, TRANSP, e VALIDN. Cda tipo indicado deve ser incluido no MAPATTS.
EXTATT

somente para compatibilidade com releases anteriores

FIELDS
Indica se o mapa tem ou no tem campos. Se especificado FIELDS=NO, criado um mapa nulo.
FLDSEP

S para no 3270

HEADER

Para mapsets com mais de 1 mapa.

HILIGHT
39

Indica o tipo de brilho do campo.


OFF
default : sem highlight
BLINK
piscar
REVERSE
texto e fundo com cores invertidas
UNDERLINE sublinhado
JUSTIFY
Indica o alinhamento
esquerda
direita
primeiro mapa da pgina (para pginas com mais de 1 mapa)
no fim da pgina (para pginas com mais de 1 mapa)
para o comando SEND MAP ACCUM funciona como LAST acima. Para o
comando SEND MAP (sem ACCUM) e para RECEIVE MAP coloca o mapa no fim da tela.
LEFT
RIGHT
FIRST
LAST
BOTTOM

LINE
Indica a linha onde o mapa deve ser aplicado.
NUMBER
nmero de 1 a 240 indicando linha inicial.
NEXT
indica que deve iniciar na prxima linha vazia.
SAME
indica que deve iniciar na mesma linha do comando BMS anterior.
MAPATTS
Indica os atributos a incluir no mapa fsico. Pode ser: COLOR, HILIGHT, OUTLINE, PS, SOSI,
TRANSP, e VALIDN.
OBFMT
Somente para 3650.
OUTLINE
Indica inclusao de linhas acima, abaixo, esquerda e/ou direita de um campo para a construo de
boxes.
PARTN
Indica INPARTN ou OUTPARTN.
PS

Indica que programmed symbols so usados.

SIZE
Indica o tamanho do mapa.
line
nmero de linhas
column
nmero de colunas
SOSI

s para DBCS

TERM

somente para compatibilidade com releases anteriores


40

TIOAPFX
Indica se o BMS deve incluir um filler na descrio de mapa simblico para o prefixo da TIOA.
YES
indica que deve ter prefixo. DEVE-SE USAR SEMPRE para command level
NO
indica que no h prefixo.
TRAILER
Para mapsets com mais de 1 mapa.
TRANSP
Indica se o background de um campo alfanumerico transparent ou opaco (espao entre caracteres
visvel).
VALIDN

|MUSTFILL |MUSTENTER |TRIGGER |USEREXIT |

41

DFHMSD : definir mapsets


Mapas so montados (compilados) em grupos denominados MAPSETs.
Normalmente, agrupa-se todos os mapas utilizados numa transao ou transaes
relacionadas.
Um mapset pode ter um nico mapa.
DFHMSD Deve preceder as DFHMDF que definem os campos, e indica que os campos
declarados aps ela formam um mapa.
Atravs dela, indica-se :
Nome do mapset
Se os mapas so usados para input, output ou ambos
Defaults de caractersticas que no foram especificadas na(s) DFHMDI de cada
mapa
Defaults para os extended attributes que no foram especificados nem na(s)
DFHMDF nem nas DFHMDI
Se o mapa fsico ou simblico (lgico)
A linguagem de programao que utiliza os mapas
Informaes sobre a memria usada para construir os mapas
Exemplo : (a DFHMSD deve estar antes das demais macros)
QCKSET

DFHMSD
TYPE=MAP,
STORAGE=AUTO,
MODE=OUT,
LANG=COBOL,
TIOAPFX=YES

X
X
X
X
X

Neste caso, indicado que o mapa denomina-se QCKSET, somente para sada, a
linguagem que ir utiliz-lo COBOL, deve haver uma rea prefixo com 12 bytes no
incio de cada mapa simblico, a memria deve ser obtida automaticamente.
Ao final de todas as macros, incluir
DFHMSD TYPE=FINAL

42

Sintaxe :
Mapset DFHMSD TYPE=|DSECT|MAP|FINAL|
BASE=name
COLOR=|DEFAULT|color|
CTRL=(|PRINT|length|FREEKB|ALARM|FRSET|)
CURSLOC=|NO|YES|
DATA=|FIELD|BLOCK|
DSATTS=(attr)
DSECT=|ADS|ADSL|
EXTATT=|NO|MAPONLY|YES|
FLDSEP=|char|X'hex-char'|
FOLD=|LOWER|UPPER|
HILIGHT=|OFF|BLINK|REVERSE|UNDERLINE|
HTAB=tab
LANG=|ASM|COBOL|COBOL2|PLI|C|
LDC=|mnemonic|NO|
MAPATTS=(attr)
MODE=|OUT|IN|INOUT|
OBFMT=|NO|YES|
PARTN=|(name)|ACTIVATE|
PS=|BASE|psid|
SOSI=|NO|YES|
STORAGE=AUTO
SUFFIX=|n|NO|
TERM=type
TIOAPFX=|NO|YES|
TRANSP=|YES|NO|
TRIGRAPH=|NO|YES|
TYPE=|DSECT|MAP|FINAL|
VALIDN=|MUSTFILL|MUSTENTER|TRIGGER|USEREXIT|
VTAB=tab

A macro DFHMSD define um mapset. Comea-se com:

________________________________________________________________________
|
|
|
DFHMSD TYPE=MAP
(or TYPE=DSECT)
|
|
|
|________________________________________________________________________|

e termina-se com:
________________________________________________________________________
|
|
|
DFHMSD TYPE=FINAL
|
|
|
|________________________________________________________________________|

43

Parmetros :
BASE
Indica que a mesma memria deve ser usada para mais de um mapset.
Incompatvel com STORAGE=AUTO.
COLOR
Indica cor dos campos. Vlidos : blue, red, pink, green, turquoise, yellow, e neutral.
CTRL
Indica caractersticas dos terminais.
PRINT
se for terminal impressora.
LENGTH
indica o tamanho da linha da impressora; especificar L40, L64, L80, ou
HONEOM. L40, L64, e L80 foram uma nova linha aps 40, 64, ou 80 characters,
respectivamente. HONEOM faz com que o tamanho padro da linha da impressora seja usado.
FREEKB
indica que o teclado deve ser destravado aps o mapa ter sido escrito. Se no for
especificado FREEKB, o teclado permanece travado.
ALARM
ativa o alarme.
FRSET
indica que os MDTs (modified data tags) de todos os campos devem ser
resetados para a condio de unmodified (field reset) antes do maps ser colocado no buffer /
exibido.
CURSLOC
Indica que em todas as operaes de RECEIVE MAP o BMS posiciona um flag na aplicao para
indicar a posio do cursor.
O flag deve ser testado por DFHBMCUR (ver no copy de DFHBMSCA). Ex.:
(DFHBMSCA)
...
02 DFHBMEOF
PIC X VALUE X'80'.
02 DFHBMCUR
PIC X VALUE X'02'.
02 DFHBMEC
PIC X VALUE X'82'.
02 DFHBMFLG
PIC X.
88 DFHERASE
VALUES ARE X'80', X'82'.
88 DFHCURSR
VALUES ARE X'02', X'82'.
MOVE FLD1F TO DFHBMFLG.
IF DFHERASE THEN ...
ELSE ...
IF DFHCURSR THEN ...
ELSE ...

DATA
Indica o formato dos dados :
FIELD indica que os dados so passados como campos contguos, cada qual com seu formato:
LL
A
data field
"LL" : 2 bytes com o tamanho dos dados entrados
"A" : 1 byte para que o programa aplicativo nele coloque o atributo que ir sobrepor-se ao do
mapa.
44

indica que os dados so passados como um nico stream no formato:


A
data field
space
No pode-se usar DSATTS=YES se DATA=BLOCK.

BLOCK

DSATTS
Indica os tipos de atributo na descrio simblica do mapa. Pode ser : COLOR, HILIGHT, OUTLINE,
PS, SOSI, TRANSP, e VALIDN. Cada tipo indicado deve ser incluido no MAPATTS.
DSECT
Indica se o book gerado suporta a application data structure (ADS) normal ou longa.
ADS
(default) normal
ADSL longa (para C)
EXTATT

somente para compatibilidade com releases anteriores

FLDSEP

S para no 3270

FOLD

Somente para C.

HILIGHT
Indica o tipo de brilho do campo.
OFF
default : sem highlight
BLINK
piscar
REVERSE
texto e fundo com cores invertidas
UNDERLINE sublinhado
HTAB
Indica quantas posies de tabulao horizontal para impressora.
LANG
Indica a linguagem do programa aplicativo. Somente para DFHMSD TYPE=DSECT.
Pode ser COBOL, C ou PLI
LDC
Somente para terminais 3600.
MAPATTS
Indica os atributos a incluir no mapa fsico. Pode ser: COLOR, HILIGHT, OUTLINE, PS, SOSI,
TRANSP, e VALIDN.
MODE
Indica OUT, IN ou INOUT (especificar conforme o uso que o mapa ir ter)
OBFMT
Somente para 3650.
45

PARTN
Indica INPARTN ou OUTPARTN.
PS

Indica que programmed symbols so usados.

SOSI

s para DBCS

STORAGE
Para Cobol indica (STORAGE=AUTO) que as reas do mapa lgico devem ser independentes.
SUFFIX
Indica 1 caracter que ser o sufixo para o nome do mapset. Usar preferencialmente um algarismo.
TERM

somente para compatibilidade com releases anteriores

TIOAPFX
Indica se o BMS deve incluir um filler na descrio de mapa simblico para o prefixo da TIOA.
YES
indica que deve ter prefixo. DEVE-SE USAR SEMPRE para command level
NO
indica que no h prefixo.
TRANSP
Indica se os campos alfanumricos do mapset tem o background transparente ou opaco.
TRIGRAPH para uso em linguagem C
TYPE
Indica o tipo de mapa :
DSECT
indica mapa lgico (descrio simblica = book para ser feito COPY nos
programas)
MAP
indica mapa fsico (programa em geral somente com variaveis que devem ser
compilados e linkeditados para serem carregados quando o programa os referenciar em tempo
de execuo)
FINAL
indica fim da definio dos campos
VALIDN

|MUSTFILL |MUSTENTER |TRIGGER |USEREXIT |

VTAB

para impressoras com tabulao vertical

46

21 TS e TD
Comunicao entre transaes ou entre transaes e o exterior

Commarea
TD = Transient Data = Intra Partition ou Extra Partition (o Cics sabe qual tipo pela DCT)
TS = Temporary Storage

O CICS trabalha com TD e TS usando o conceito de filas (queue).

Resumo comparativo entre TS e TD


TS
Leitura aleatria
Um registro pode ser lido n vezes (fica na TS at
que a queue inteira seja deletada)
Dados podem ser alterados
Pode ser em disco ou memria
Nome definido dinmicamente
Usada para passar informaes de uma task para
outra

Resumo comparativo entre TD intra e TD extra


TD intrapartition
Usada para comunicao entre tasks de um
mesmo CICS (entre 2 transaes / 2 programas)
Gravada num nico arquivo VSAM ESDS
(DFHNTRA)

TD
Leitura sequencial
Um registro pode ser lido uma nica vez (para
reusar reler) a TD deve ser fechada e (re)aberta
Dados no podem ser alterados
Pode ser s em memria
Nome deve ser definido na DCT
Usada para tratar conjunto de registros (arquivos)
para um programa (do CICS) receber dados ou
para enviar dados (para fora do CICS)

TD extrapartition
Usada para comunicao CICS x CICS ou CICS
x batch
Gravada em arquivos QSAM ou VSAM

TRANSIENT DATA

um arquivo sequencial, com registros de tamanho varivel.


Seu nome deve ter 4 caracteres
Deve estar definida na DCT
Registros so denominados tens
Acesso (gravao ou leitura) exclusivamente sequencial
Cics usa TD para log, estatsticas, etc)
Pode ser IntraPartition ou ExtraPartition :
Intra Partition (os dados esto associados com recurso alocado ao Cics da task)
gerenciado pelo CICS (na verdade um arquivo VSAM ESDS denominado
DFHINTRA)
dados usados somente dentro do Cics (pelas suas transaes)
permite o estabelecimento de trigger : ao se declarar a fila na DCT, indica-se um trigger
level que, se alcanado na gravao causa o disparo automtico de uma transao (ATI =
Automatic Transaction Initiation)
Depois de lida, uma fila deletada
Registros de tamanho varivel; as queues podem ser associadas a um terminal ou um
dataset de saida. Intrapartition queues can be associated with either a terminal or an
output data set.
ExtraPartition (se os dados esto associados com recurso alocado fora do Cics da task)
em geral aplicado a casos em que o cics grava e um programa batch ir ler.
gerenciado pelo S.O. (arquivos SAM PS)
dados podem ser usados por programas externos ao Cics , como programas batch
Ex. programa Cics gera um arquivo SAM e um programa batch o l; ou ento programa
batch grava um arquivo SAM e um programa Cics o l
Registros com tamanho fixo ou varivel; formato deve ser definido pelo pessoal de
suporte na TDQUEUE
Tem que estar definido na DCT (Destination Control Table)
Deve ser gravado por aplicaes CICS.
Pode ser lido por aplicaes CICS (intrapartition) ou fora do CICS (extrapartition).
A leitura dos registros destrutiva : cada registro pode ser lido uma nica vez.

Usos tpicos (intrapartition):


Message switching
Broadcast
Encaminhamento de mensagens para diversos terminais (ex. distribuio de pedidos para
diversos setores)
Enfileiramento de dados (ex.: assinalar nmero de pedido, de nota fiscal, enfileirar por
ordem de chegada para atender com base FIFO)
Usos tpicos (extrapartition):
Gravar logs
Estatisticas
Mensagens de erro de transaes

Exemplo alocao de extrapartition via CEDA


__________________________________________________________________________________
|
|
| TDqueue
: TDQ1
|
| Group
: Example
|
| DEscription ==>
|
| TYPE
==> Intra
Extra | INTra | INDirect
|
| EXTRA PARTITION PARAMETERS
|
| DAtabuffers
:
1-255
|
| DDname
:
|
| DSname
:
|
| Sysoutclass
:
|
| Erroroption
:
Ignore | Skip
|
| Opentime
:
Initial | Deferred
|
| REWind
:
Leave | Reread
|
| TYPEFile
:
Input | Output | Rdback
|
| RECORDSize
:
0-32767
|
| BLOCKSize
:
0-32767
|
| RECORDFormat
:
Fixed | Variable
|
| BLOCKFormat
:
Blocked | Unblocked
|
| Printcontrol
:
A | M
|
| DIsposition :
Shr | Old |Mod
|
| INTRA PARTITION PARAMETERS
|
| Atifacility ==> Terminal
Terminal | File | System
|
| RECOVstatus ==> Logical
No | Physical | Logical
|
| Facilityid
==> FR1
|
| TRAnsid
==>
|
| TRIggerlevel ==> 00001
0-32767
|
| Userid
==>
|
|
|
| INDOUBT ATTRIBUTES
|
| WAIT
==> Yes
Yes|No
|
| WAITAction
==> Reject
Queue|Reject
|
|
|
| INDIRECT PARAMETERS
|
| Indirectname :
|
|
|
| REMOTE PARAMETERS
|
| REMOTEName
==> FR1 REMOTESystem ==> CICQ
|
| REMOTELength ==>
0-32767
|
|
|
|__________________________________________________________________________________|

Automatic transaction initiation (ATI)


Para intrapartitions, o CICS tem a opo de automatic transaction initiation (ATI) incio
automtico de transao.
Quando o nmero de entradas (criadas por comandos WRITE TD emitidos por 1 ou mais
programas) na fila alcana um nmero (gatilho) especificado, uma transao (indicada na
definio da queue) automaticamente iniciada : o controle passado para um programa
(associado transao), que pode ler a queue (via READ TD).
Quando a queue for esvaziada, um novo ciclo ATI se inicia.

49

TEMPORARY STORAGE

um arquivo sequencial, com registros de tamanho varivel.


Pode ser armazenado na memria ou em disco.
MAIN = ficam na memria : acesso mais rpido, mas gasta memria
AUX = ficam em disco (VSAM ESDS denominado DFHTEMP) : acesso mais lento, mas
pode-se usar para quantidade maior de dados dados
Em disco : quando os dados devem ficar retidos / disponveis por perodos maiores
Na memria : conveniente para dados que vo existir por perodos curtos de tempo.
Uma TS em memria existe enquanto o Cics estiver ativo (no ar). Em disco, pode ser
recuperada num restart.
Na memria : pode ser usada para passar dados de uma task para outra
No precisa ser definido em nenhuma tabela do Cics.
Pode ser lido por aplicaes Cics.
No precisa estar definida em tabelas do CICS
Registros so denominados itens
Acesso (gravao ou leitura) sequencial ou direta
Os itens ficam disponveis at a fila em que estejam seja deletada
Cics usa TS para telas , EDF, etc
As filas de TS so identificadas por nomes simblicos (at 8 caracteres), estabelecidos pelo
programa que gravou.
Para evitar conflitos de nomes, comum utilizar a identificao do terminal e/ou operador como
parte do nome. (muitas vezes : 4 = termid + 4 = ts queue id)
Elas podem ser lidas tanto pelo programa que gravou quanto por outros programas.
Dentro de uma queue, os registros so referenciados pela sua posio relativa.
Comandos associados :
Gravar na TS (WRITEQ TS) .
Atualizar na TS (WRITEQ TS REWRITE).
Ler da TS (READQ TS ou READQ TS NEXT).
Deletar da TS (DELETEQ TS).

Usos tpicos :

Paginao (de telas) : uma task pode acessar um registro muito grande num arquivo,
formatar diversas telas (usando BMS), guardar as telas temporariamente em TS, e atravs de
dilogo com o operador exibir a tela desejada, obtendo-a da TS. Pode-se desenvolver uma
rotina padro da instalao (ou de sistema) para paginao usando TS.
Dados em suspenso : uma task pode ter obtido do operador (e de arquivos ou bases de
dados) uma grande quantidade de informaes, preparando uma gravao ou atualizao.
Caso haja necessidade de suspender a task temporariamente (ex. fazer uma consulta
urgente), pode-se guardar os dados em TS, executar a consulta atravs de outra task, e ao
voltar task anterior, recuperar os dados da TS para terminar de obte-los e providenciar o
processamento necessrio. o caso tpico tambm de recurso a ser desenvolvido de forma
padro para a instalao ou sistema.
Formulrios pr-impressos : similar ao exemplo anterior, para, por exemplo, imprimir notas
fiscais.

50

Em geral, queues de TS com mais de 1 registro devem ser usadas somente quando for
nercessrio acesso direto ou repetido aos registros; TD provavelmente mais eficiente para
manipulao de arquivos sequenciais normais.

51

22 Entrada no CICS e sada do CICS


Entrada no CICS
TERMINAL=> OSAVW73

THIS TERMINAL IS LOGGED ON TO THE NETSOL

Digitar nome da aplicao CICS


ENTER
TERMINAL=> OSAVW73

THIS TERMINAL IS LOGGED ON TO THE NETSOL


/cicabnt2

Tela de signon
Signon for CICS/ESA Release 4.1.0

APPLID CICABNT2

WELCOME TO CICS/ESA

Type your userid and password, then press ENTER:


Userid . . . .
Password . . .
Language . . .

Groupid . . .

New Password . . .

DFHCE3520 Please type your userid.


F3=Exit

52

Digitar userid + TAB + senha + ENTER


Signon for CICS/ESA Release 4.1.0

APPLID CICABNT2

WELCOME TO CICS/ESA

Type your userid and password, then press ENTER:


Userid . . . . torinnn
Password . . . password
Language . . .

Groupid . . .

New Password . . .

DFHCE3520 Please type your userid.


F3=Exit

Aparece a tela do CICS, na qual deve-se digitar o nome da transao que se deseja executar

DFHCE3549 Sign-on is complete (Language ENU).

Sada do CICS
Comando CESF LOGOFF + ENTER
cesf logoff

Volta a aparecer a tela do VTAM


TERMINAL=> OSAVW73

THIS TERMINAL IS LOGGED ON TO THE NETSOL

53

Ou
Comando CESF + ENTER
cesf

Aparece a mensagem

DFHCE3590 Sign-off is complete.

ENTER
Volta a aparecer a tela do VTAM
TERMINAL=> OSAVW73

THIS TERMINAL IS LOGGED ON TO THE NETSOL

54

23 Cics provided transactions


Algumas transaes providas pelo CICS
CEBR = Execution Browser = para visualizar TS
CMAC = Manual = para ver o significado de mensagens e de abends
CECI = Command Interpreter = para verificar sintaxe de comandos e executar comandos
(tambm usado para help)
CECS = Check Sintax = para verificar sintaxe de comandos (tambm usado para help)
CEDF = Execution Diagnostic Facility = para depurar (debug) aplicativos
CEMT = Environment runtime Resource ManagemenT = consulta aos recursos usados
pelo Cics (ex.: arquivos, programas, transaes, terminais, etc) e alterao de algumas de
suas caractersticas

CESN = para efetuar o signon


CESF = para efetuar o signoff
CSSF = para efetuar o signoff

55

CEBR (Temporary Storage Browse)


Esta transao usada para visualizar TS e para transferir dados da TD para a TS e da TS para TD
(e, por decorrncia, visualizar dados da TD). Sintaxe:
CEBR [queueName]
QueueName o nome da queue que se deseja visualizar. Se no for especificado a CEBR gera
uma queue cujo nome CEBRidterminal. Ex. se a queue que se deseja ver tem o nome de TSQ1,
chama-se a transao assim : CEBR TSQ1
A tela apresentada contm :
+--------------------------------------------------------------------------------+
|CEBR
TS QUEUE CEBRTERM
RECORD 1 OF 0
COL 1 OF 0
|
|ENTER COMMAND ===>
|
|
|
...
...
|
|
|TEMPORARY STORAGE QUEUE CEBRTERM
|
|PF1 : HELP
PF2 : SWITCH HEX/CHAR
PF3 : TERMINATE BROWSE
|
|PF4 : VIEW TOP
PF5 : VIEW BOTTOM
PF6 : REPEAT LAST FIND
|
|PF7 : SCROLL BACK HALF
PF8 : SCROLL FORWARD HALF
PF9 : UNDEFINED
|
|PF10: SCROLL BACK FULL
PF11: SCROLL FORWARD FULL
PF12: UNDEFINED
|
+--------------------------------------------------------------------------------+

Cabealho = se for (re)digitado o nome da queue, ela passar a ser a nova queue corrente
Informao = (linhas entre a linha de commando e as informativas de PFs)
PF Keys
PF1 = help.
PF2 = toggle entre exibio em carater e hexadecimal
PF3 = fim da CEBR.
PF4 = vai para o TOP (incio dos dados da TS)
PF5 = vai para o BOTTOM (fim dos dados da TS)
PF6 = repete o ultimo FIND
PF7 = volta meia pgina
PF8 = avana meia pgina
PF9 = scroll para a direita ou esquerda (indicado por legenda)
PF10 = volta uma pgina
PF11= avana uma pgina
PF12 = .x.
Comando (Segunda linha)
BOTTOM
= vai para o BOTTOM (equivale ao PF5)
COLUMN nnnn
= exibe a partir da coluna nnnn
FIND /string
= procura a prxima linha com o string especificado. O caracter / pode ser
qualquer outro usado como delimitador; se for a prpria / no necessrio colocar a palavra FIND
GET tdqueuename = move a queue da TD indicada para a TS
LINE nnnn
= avana para a linha nnnn
PURGE
= limpa (o contedo d)a queue !!!
PUT tdqueuename = copia a queue da TS para a TD indicada
QUEUE tsqueuename = indica o nome da TS queue que vai passar a ser a exibida; nome pode ser
especificado em hexa (QUEUE XC1C2).
TERMINAL termId
= indica o nome da TS queue que vai passer a ser a exibida; nome ser = 4
caracteres da queue corrente + termId
TOP
= vai para o TOP (equivale ao PF4)

56

CECI e CECS (Command Interpreter e Check Syntax)


A transao CECI para executar comandos de forma interpretada.
A transao CECS para testar a sintaxe de comandos.
Pela forma como elas operam, so freqentemente usadas como manual de referncia de sintaxe
de comandos. CECI frequentemente usada para alterar dados (em TS, por exemplo), criar TS
queue, verificar contedo de arquivos, alterar tais arquivos, etc
Sintaxe:
CECI [commandName]

ou

CECI [?commandName]

CECS [commandName]

nome do comando a ser testado ou executado.


Se no for especificado, oferecido menu para indicao do comando desejado.
A interrogao indica que CECI deve somente verificar a sintaxe.
commandName =

Exemplo: para ler um registro em CADCLI cuja chave seja 140552 :


CECI READ FILE('CADCLI') RIDFLD('140552')

A tela apresentada contm :


+--------------------------------------------------------------------------------+
|CEBR
TS QUEUE CEBRTERM
RECORD 1 OF 0
COL 1 OF 0
|
|ENTER COMMAND ===>
|
|
|
|
|
...
...
|
|
|
|
|TEMPORARY STORAGE QUEUE CEBRTERM
|
|PF1 : HELP
PF2 : SWITCH HEX/CHAR
PF3 : TERMINATE BROWSE
|
|PF4 : VIEW TOP
PF5 : VIEW BOTTOM
PF6 : REPEAT LAST FIND
|
|PF7 : SCROLL BACK HALF
PF8 : SCROLL FORWARD HALF
PF9 : UNDEFINED
|
|PF10: SCROLL BACK FULL
PF11: SCROLL FORWARD FULL
PF12: UNDEFINED
|
+--------------------------------------------------------------------------------+

Comando (Primeira linha)


Comando a ser testado ou executado (EXEC CICS opcional). Exemplos:
EXEC CICS READ FILE('FILEA') RIDFLD('009000') INTO(data area)
READ FILE('FILEA') RIDFLD('009000') INTO(data area)

Status (Segunda linha)


Pode ter uma das seguintes mensagens:
COMMAND SYNTAX CHECK = indica que foi efetuada verificao de sintaxe
ABOUT TO EXECUTE COMMAND = indica que o commando est pronto para ser
executado
COMMAND EXECUTION COMPLETE = indica que o commando foi executado
EXEC INTERFACE BLOCK = somente se foi pressionada PF4
VARIABLES = somente se foi pressionada PF5
SYNTAX MESSAGES = somente se foi pressionada PF9
EXPANSION OF = somente se o cursor posicionado numa posio de tela que contenha
valore(es) de uma varivel e tecla ENTER
Informao (prximas 21 linhas)
Para exibio da sintaxe do commando, mensagens informativas e de erro, etc
57

PF Keys
PF1 = help.
PF2 = toggle entre exibio em carater e hexadecimal
PF3 = fim da CECI ou CECS.
PF4 = mostra o contedo do EIB
PF5 = mostra todas as variveis associadas sesso
PF6 = shows what you would see if the terminal had been running a transaction which contained the screen
access commands which have been run using the interpreter. This key is not available from CECS or when you
are viewing the user display.

PF7 = volta meia pgina


PF8 = avana meia pgina
PF9 = mostra todas as mensagens geradas durante a verificao de sintaxe de um comando
PF10 = volta uma pgina
PF11= avana uma pgina
PF12 = .x.

Outro exemplo :
+--------------------------------------------------------------------------------+
|
|
|
READ FILE('FILEA')
|
|
STATUS:
COMMAND SYNTAX CHECK
NAME=
|
|
EXEC CICS READ
|
|
Dataset() | File(FILEA )
|
|
SEt() | Into()
|
|
<Length( +00020)>
|
|
RIdfld()
|
|
<Keylength() <GEneric> | RBa | RRn>
|
|
<SYsid()>
|
|
<GTeq | Equal>
|
|
<Update>
|
|
|
|E: Command requires the option:
'RIDFLD'
|
|
|
|PF 1 HELP 2 HEX 3 END 4 EIB 5 VAR 6 USER 7 SBH 8 SFH 9 MSG 10 SB 11 SF
|
+--------------------------------------------------------------------------------+

Erro indicado : falta RIDFLD.


+--------------------------------------------------------------------------------+
|
|
|
READ FILE('FILEA') RIDFLD('009000')
|
|
STATUS:
ABOUT TO EXECUTE COMMAND
NAME=
|
|
EXEC CICS READ
|
|
Dataset() | File(FILEA )
|
|
SEt() | Into()
|
|
<Length()>
|
|
RIdfld(009000)
|
|
<Keylength() <GEneric> | RBa | RRn>
|
|
<SYsid()>
|
|
<GTeq | Equal>
|
|
<Update>
|
|
|
|PF 1 HELP 2 HEX 3 END 4 EIB 5 VAR 6 USER 7 SBH 8 SFH 9 MSG 10 SB 11 SF
|
+--------------------------------------------------------------------------------+

Comando OK, pronto para ser executado

58

+--------------------------------------------------------------------------------+
|
|
|
READ FILE('FILEA') RIDFLD('009000')
|
|
STATUS: COMMAND EXECUTION COMPLETE
|
|
EXEC CICS READ
|
|
Dataset() | File(FILEA )
|
|
SEt() | Into( 'HDGDJH KDFKSJDF KSDJ')
|
|
<Length( +00020)>
|
|
RIdfld(009000)
|
|
<Keylength() <GEneric> | RBa | RRn>
|
|
<SYsid()>
|
|
<GTeq | Equal>
|
|
<Update>
|
|
|
| RESPONSE:
NORMAL
EIBRESP=+000000000
|
|PF 1 HELP 2 HEX 3 END 4 EIB 5 VAR 6 USER 7 SBH 8 SFH 9 MSG 10 SB 11 SF
|
+--------------------------------------------------------------------------------+

STATUS:
ABend
ACquire
ADdress
ALlocate
ASKtime
ASSign
BIf
BUild
CAncel
CHange
COLlect
CONNect
CONVerse
CReate
DELAy
DELETE
DELETEQ

ENTER ONE OF THE FOLLOWING


DEQ
DISAble
DISCard
DUmp
ENAble
ENDbr
ENQ
ENTer
EXtract
FEpi
FOrmattime
FREE
FREEMain
GDs
GEtmain
Handle
IGnore

INquire
ISsue
Journal
LInk
LOad
Monitor
PErform
POInt
POP
POSt
PURge
PUSh
Query
READ
READNext
READPrev
READQ

RECeive
RELease
RESEtbr
RESYnc
RETRieve
RETUrn
REWrite
ROute
SENd
SET
SIGNOFf
SIGNON
SPOOLClose
SPOOLOpen
SPOOLRead
SPOOLWrite
START

PF 1 HELP 2 HEX 3 END 4 EIB 5 VAR 6 USER

STARTBr
SUspend
SYncpoint
Trace
Unlock
Verify
WAIT
WAITCics
WRITE
WRITEQ
Xctl

9 MSG

Pode-se colocar o comando completo, caso se saiba a sintaxe :


start tr(ap99)
STATUS: ENTER ONE OF THE FOLLOWING
ABend
ACquire
ADdress
ALlocate
ASKtime
ASSign
BIf
BUild
CAncel
CHange
COLlect
CONNect
CONVerse
CReate
DELAy
DELETE
DELETEQ

DEQ
DISAble
DISCard
DUmp
ENAble
ENDbr
ENQ
ENTer
EXtract
FEpi
FOrmattime
FREE
FREEMain
GDs
GEtmain
Handle
IGnore

INquire
ISsue
Journal
LInk
LOad
Monitor
PErform
POInt
POP
POSt
PURge
PUSh
Query
READ
READNext
READPrev
READQ

RECeive
RELease
RESEtbr
RESYnc
RETRieve
RETUrn
REWrite
ROute
SENd
SET
SIGNOFf
SIGNON
SPOOLClose
SPOOLOpen
SPOOLRead
SPOOLWrite
START

PF 1 HELP 2 HEX 3 END 4 EIB 5 VAR 6 USER

STARTBr
SUspend
SYncpoint
Trace
Unlock
Verify
WAIT
WAITCics
WRITE
WRITEQ
Xctl

9 MSG

59

Ou colocar o comando (principal), e, orientado pelas telas, ir complementando-o :


start
STATUS:
ABend
ACquire
ADdress
ALlocate
ASKtime
ASSign
BIf
BUild
CAncel
CHange
COLlect
CONNect
CONVerse
CReate
DELAy
DELETE
DELETEQ

ENTER ONE OF THE FOLLOWING


DEQ
DISAble
DISCard
DUmp
ENAble
ENDbr
ENQ
ENTer
EXtract
FEpi
FOrmattime
FREE
FREEMain
GDs
GEtmain
Handle
IGnore

INquire
ISsue
Journal
LInk
LOad
Monitor
PErform
POInt
POP
POSt
PURge
PUSh
Query
READ
READNext
READPrev
READQ

RECeive
RELease
RESEtbr
RESYnc
RETRieve
RETUrn
REWrite
ROute
SENd
SET
SIGNOFf
SIGNON
SPOOLClose
SPOOLOpen
SPOOLRead
SPOOLWrite
START

PF 1 HELP 2 HEX 3 END 4 EIB 5 VAR 6 USER

STARTBr
SUspend
SYncpoint
Trace
Unlock
Verify
WAIT
WAITCics
WRITE
WRITEQ
Xctl

9 MSG

START
STATUS: COMMAND SYNTAX CHECK
NAME=
EXEC CICS START
TRansid()
< Interval( +0000000 ) | TIme() | ( AFter | AT ) < Hours() > < Minutes() >
< SEconds() > >
< FRom() < Length() < FMh > > >
< TErmid() | Userid() >
< SYsid() >
< RTRansid() >
< RTErmid() >
< Queue() >
< Nocheck >
< Protect >
< REqid() >
< ATTach >

S Option TRANSID has been omitted or specified with an invalid value. The
command cannot be executed.
PF 1 HELP 2 HEX 3 END 4 EIB 5 VAR 6 USER 7 SBH 8 SFH 9 MSG 10 SB 11 SF
START tr(ap99)
STATUS: COMMAND SYNTAX CHECK
NAME=
EXEC CICS START
TRansid()
< Interval( +0000000 ) | TIme() | ( AFter | AT ) < Hours() > < Minutes() >
< SEconds() > >
< FRom() < Length() < FMh > > >
< TErmid() | Userid() >
< SYsid() >
< RTRansid() >
< RTErmid() >
< Queue() >
< Nocheck >
< Protect >
< REqid() >
< ATTach >

S Option TRANSID has been omitted or specified with an invalid value. The
command cannot be executed.
PF 1 HELP 2 HEX 3 END 4 EIB 5 VAR 6 USER 7 SBH 8 SFH 9 MSG 10 SB 11 SF

60

Aparece a mensagem indicando que o comando ir ser executado em seguida :


START TR(AP99)
STATUS: ABOUT TO EXECUTE COMMAND
NAME=
EXEC CICS START
TRansid( 'AP99' )
< Interval( +0000000 ) | TIme() | ( AFter | AT ) < Hours() > < Minutes() >
< SEconds() > >
< FRom() < Length() < FMh > > >
< TErmid() | Userid() >
< SYsid() >
< RTRansid() >
< RTErmid() >
< Queue() >
< Nocheck >
< Protect >
< REqid() >
< ATTach >

PF 1 HELP 2 HEX 3 END 4 EIB 5 VAR 6 USER 7 SBH 8 SFH 9 MSG 10 SB 11 SF

Dar ENTER. Aparece a mensagem indicando que o comando foi executado


START TR(AP99)
STATUS: COMMAND EXECUTION COMPLETE
NAME=
EXEC CICS START
TRansid( 'AP99' )
< Interval( +0000000 ) | TIme() | ( AFter | AT ) < Hours() > < Minutes() >
< SEconds() > >
< FRom() < Length() < FMh > > >
< TErmid() | Userid() >
< SYsid() >
< RTRansid() >
< RTErmid() >
< Queue() >
< Nocheck >
< Protect >
< REqid() >
< ATTach >

RESPONSE: NORMAL
EIBRESP=+0000000000 EIBRESP2=+0000000000
PF 1 HELP 2 HEX 3 END 4 EIB 5 VAR 6 USER 7 SBH 8 SFH 9 MSG 10 SB 11 SF

ou que a execuo teve problema


STAR TR(ZZZZZZ)
STATUS: COMMAND EXECUTION COMPLETE
NAME=
EXEC CICS START
TRansid( 'ZZZZ' )
< Interval( +0000000 ) | TIme() | ( AFter | AT ) < Hours() > < Minutes() >
< SEconds() > >
< FRom() < Length() < FMh > > >
< TErmid() | Userid() >
< SYsid() >
< RTRansid() >
< RTErmid() >
< Queue() >
< Nocheck >
< Protect >
< REqid() >
< ATTach >

RESPONSE: TRANSIDERR
EIBRESP=+0000000028 EIBRESP2=+0000000000
PF 1 HELP 2 HEX 3 END 4 EIB 5 VAR 6 USER 7 SBH 8 SFH 9 MSG 10 SB 11 SF

61

CEDF (Cics Execution Display Facility)


Usada para depurar (efetuar debug) de aplicativos; permite estabelecer pontos de parada, exibir
contedos de reas, alterar contedos de reas, etc.
Sintaxe
CEDF [ termId ]
termId =

[,ON | ,OFF ]

identificao do terminal

ON = indica que a sesso de EDF deve ser iniciada


OFF = indica que a sesso de EDF deve ser terminada

Tela :
Status (segunda linha) : pode ter :
PROGRAM INITIATION
ABOUT TO EXECUTE COMMAND
COMMAND EXECUTION COMPLETE (or COMMAND NOT EXECUTED)
PROGRAM TERMINATION
TASK TERMINATION
AN ABEND HAS OCCURRED
ABNORMAL TASK TERMINATION
EXECUTION INTERFACE BLOCK
DISPLAY ON CONDITIONS

Informao (18 linhas)


PF Key Values (ltimas 4 linhas da tela)

62

Execuo de uma transao SEM o EDF


Digitar nome da transao
AP99

Exibida tela solicitando nome do programa a carregar e tamanho da commarea


APCP099 PROGRAMA=
TAM.COMMAREA=

INFORME NOME PROGRAMA E TAMANHO COMMAREA (MAX 32767) E TECLE ENTER


Preenchido nome do programa e tamanho commarea e dado ENTER
APCP099 PROGRAMA= AAAAAAAA TAM.COMMAREA= 10000

INFORME NOME PROGRAMA E TAMANHO COMMAREA (MAX 32767) E TECLE ENTER

63

Exibida tela que permite a colocao de dados na commarea ; pressionado F5


APCP099 PROGRAMA= AAAAAAAA TAM.COMMAREA= 10000
+
+
+
+
+
+
123456789012345678901234567890123456789012345678901234567890
00001
00061
00121
00181
00241
00301
00361
00421
00481
00541
00601
00661
00721
00781
00841
00901
123456789012345678901234567890123456789012345678901234567890

00060
00120
00180
00240
00300
00360
00420
00480
00540
00600
00660
00720
00780
00840
00900
00960

PF1=N/A
PF2=LimpaCA PF3=FIM PF4=InicioCA PF5=LINKpgm PF6=FimCA PF7=PgUp
PF8=PgDn PF9=N/A
PF10=LinUp PF11=LinDn PF12=OutroPGM/CA Enter=AlteraCA
Transao abenda
APCP099 PROGRAMA= AAAAAAAA TAM.COMMAREA= 10000
+
+
+
+
+
+
123456789012345678901234567890123456789012345678901234567890
00001
00061
00121
00181
00241
00301
00361
00421
00481
00541
00601
00661
00721
00781
00841
00901
123456789012345678901234567890123456789012345678901234567890

00060
00120
00180
00240
00300
00360
00420
00480
00540
00600
00660
00720
00780
00840
00900
00960

PF1=N/A
PF2=LimpaCA PF3=FIM PF4=InicioCA PF5=LINKpgm PF6=FimCA PF7=PgUp
DFHAC2206 11:11:42 CICABNT2 Transaction AP99 has failed with abend AEI0.
Resource backout was successful.

64

Execuo de uma transao COM o EDF


Digitar nome da transao CEDF
ENTER
cedf

DFHCE3549 Sign-on is complete (Language ENU).


Aparece mensagem indicando modo EDF
THIS TERMINAL: EDF MODE ON

clear

65

Digitar nome da transao a ser testada com o recurso do EDF


ENTER
AP99

Aparece mensagem de incio do primeiro programa associado transao


TRANSACTION: AP99 PROGRAM: APCP099 TASK: 0021843 APPLID: CICABNT2 DISPLAY:
STATUS: PROGRAM INITIATION

EIBTIME
EIBDATE
EIBTRNID
EIBTASKN
EIBTRMID

=
=
=
=
=

105049
0103304
'AP99'
21843
'W164'

EIBCPOSN
EIBCALEN
EIBAID
EIBFN
EIBRCODE
EIBDS
EIBREQID

=
=
=
=
=
=
=

4
0
X'7D'
X'0000'
X'000000000000'
'........'
'........'

00

AT X'0020D0EA'
AT X'0020D0EB'
AT X'0020D0ED'

RESPONSE:

REPLY:

ENTER: CONTINUE
PF1 : UNDEFINED
PF4 : SUPPRESS DISPLAYS
PF7 : SCROLL BACK
PF10: PREVIOUS DISPLAY

PF2 :
PF5 :
PF8 :
PF11:

SWITCH HEX/CHAR
WORKING STORAGE
SCROLL FORWARD
UNDEFINED

PF3 :
PF6 :
PF9 :
PF12:

END EDF SESSION


USER DISPLAY
STOP CONDITIONS
UNDEFINED

ENTER
Exibio de parada ANTES da execuo de comando CICS SEND MAP
TRANSACTION: AP99 PROGRAM: APCP099 TASK: 0021843 APPLID: CICABNT2 DISPLAY: 00
STATUS: ABOUT TO EXECUTE COMMAND
EXEC CICS SEND MAP
MAP ('APCM099')
FROM ('..................................
'...)
LENGTH (1815)
MAPSET ('APCM099')
TERMINAL
FREEKB
ERASE

OFFSET:X'001570'
RESPONSE:

LINE:00583

ENTER: CONTINUE
PF1 : UNDEFINED
PF4 : SUPPRESS DISPLAYS
PF7 : SCROLL BACK
PF10: PREVIOUS DISPLAY

EIBFN=X'1804'
REPLY:

PF2 :
PF5 :
PF8 :
PF11:

SWITCH HEX/CHAR
WORKING STORAGE
SCROLL FORWARD
UNDEFINED

PF3 :
PF6 :
PF9 :
PF12:

UNDEFINED
USER DISPLAY
STOP CONDITIONS
ABEND USER TASK

66

ENTER
Exibio da tela pelo comando CICS SEND MAP
APCP099 PROGRAMA=
TAM.COMMAREA=

INFORME NOME PROGRAMA E TAMANHO COMMAREA (MAX 32767) E TECLE ENTER


ENTER
Exibio de parada DEPOIS da execuo de comando CICS SEND MAP
TRANSACTION: AP99 PROGRAM: APCP099 TASK: 0021843 APPLID: CICABNT2 DISPLAY: 00
STATUS: COMMAND EXECUTION COMPLETE
EXEC CICS SEND MAP
MAP ('APCM099')
FROM ('..................................
'...)
LENGTH (1815)
MAPSET ('APCM099')
TERMINAL
FREEKB
ERASE

OFFSET:X'001570'
RESPONSE: NORMAL

LINE:00583

ENTER: CONTINUE
PF1 : UNDEFINED
PF4 : SUPPRESS DISPLAYS
PF7 : SCROLL BACK
PF10: PREVIOUS DISPLAY

PF2 :
PF5 :
PF8 :
PF11:

EIBFN=X'1804'
EIBRESP=0
SWITCH HEX/CHAR
WORKING STORAGE
SCROLL FORWARD
UNDEFINED

PF3 :
PF6 :
PF9 :
PF12:

REPLY:
END EDF SESSION
USER DISPLAY
STOP CONDITIONS
ABEND USER TASK

ENTER
Exibio de parada ANTES da execuo de comando CICS RECEIVE MAP
TRANSACTION: AP99 PROGRAM: APCP099 TASK: 0021843 APPLID: CICABNT2 DISPLAY: 00
STATUS: ABOUT TO EXECUTE COMMAND
EXEC CICS RECEIVE MAP
MAP ('APCM099')
INTO ('..................................
'...)
MAPSET ('APCM099')
TERMINAL
NOHANDLE

OFFSET:X'0015D2'
RESPONSE:

LINE:00588

ENTER: CONTINUE
PF1 : UNDEFINED
PF4 : SUPPRESS DISPLAYS
PF7 : SCROLL BACK
PF10: PREVIOUS DISPLAY

EIBFN=X'1802'
REPLY:

PF2 :
PF5 :
PF8 :
PF11:

SWITCH HEX/CHAR
WORKING STORAGE
SCROLL FORWARD
UNDEFINED

PF3 :
PF6 :
PF9 :
PF12:

UNDEFINED
USER DISPLAY
STOP CONDITIONS
ABEND USER TASK

67

ENTER
(com a tela exibida) preencher os dados solicitados e teclar ENTER
APCP099 PROGRAMA= AAAAAAAA TAM.COMMAREA= 10000

INFORME NOME PROGRAMA E TAMANHO COMMAREA (MAX 32767) E TECLE ENTER


Exibio de parada APS a execuo de comando CICS RECEIVE MAP
TRANSACTION: AP99 PROGRAM: APCP099 TASK: 0021843 APPLID: CICABNT2 DISPLAY: 00
STATUS: COMMAND EXECUTION COMPLETE
EXEC CICS RECEIVE MAP
MAP ('APCM099')
INTO ('...............AAAAAAAA...10000...
'...)
MAPSET ('APCM099')
TERMINAL
NOHANDLE

OFFSET:X'0015D2'
RESPONSE: NORMAL

LINE:00588

ENTER: CONTINUE
PF1 : UNDEFINED
PF4 : SUPPRESS DISPLAYS
PF7 : SCROLL BACK
PF10: PREVIOUS DISPLAY

EIBFN=X'1802'
EIBRESP=0
REPLY:

PF2 :
PF5 :
PF8 :
PF11:

SWITCH HEX/CHAR
WORKING STORAGE
SCROLL FORWARD
UNDEFINED

PF3 :
PF6 :
PF9 :
PF12:

END EDF SESSION


USER DISPLAY
STOP CONDITIONS
ABEND USER TASK

Exibio de parada ANTES da execuo de comando CICS SEND MAP


TRANSACTION: AP99 PROGRAM: APCP099 TASK: 0021843 APPLID: CICABNT2 DISPLAY: 00
STATUS: ABOUT TO EXECUTE COMMAND
EXEC CICS SEND MAP
MAP ('APCM099')
FROM ('...............AAAAAAAA...10000...
+
+
+'...)
LENGTH (1815)
MAPSET ('APCM099')
TERMINAL
FREEKB
ERASE

OFFSET:X'001694'
RESPONSE:

LINE:00607

ENTER: CONTINUE
PF1 : UNDEFINED
PF4 : SUPPRESS DISPLAYS
PF7 : SCROLL BACK
PF10: PREVIOUS DISPLAY

EIBFN=X'1804'
REPLY:

PF2 :
PF5 :
PF8 :
PF11:

SWITCH HEX/CHAR
WORKING STORAGE
SCROLL FORWARD
UNDEFINED

PF3 :
PF6 :
PF9 :
PF12:

UNDEFINED
USER DISPLAY
STOP CONDITIONS
ABEND USER TASK

68

Exibio da tela pelo comando CICS SEND MAP


APCP099 PROGRAMA= AAAAAAAA TAM.COMMAREA= 10000
+
+
+
+
+
+
123456789012345678901234567890123456789012345678901234567890
00001
00061
00121
00181
00241
00301
00361
00421
00481
00541
00601
00661
00721
00781
00841
00901
123456789012345678901234567890123456789012345678901234567890

00060
00120
00180
00240
00300
00360
00420
00480
00540
00600
00660
00720
00780
00840
00900
00960

PF1=N/A
PF2=LimpaCA PF3=FIM PF4=InicioCA PF5=LINKpgm PF6=FimCA PF7=PgUp
PF8=PgDn PF9=N/A
PF10=LinUp PF11=LinDn PF12=OutroPGM/CA Enter=AlteraCA
ENTER
Exibio de parada APS a execuo de comando CICS SEND MAP
TRANSACTION: AP99 PROGRAM: APCP099 TASK: 0021843 APPLID: CICABNT2 DISPLAY: 00
STATUS: COMMAND EXECUTION COMPLETE
EXEC CICS SEND MAP
MAP ('APCM099')
FROM ('...............AAAAAAAA...10000...
+
+
+'...)
LENGTH (1815)
MAPSET ('APCM099')
TERMINAL
FREEKB
ERASE

OFFSET:X'001694'
RESPONSE: NORMAL

LINE:00607

ENTER: CONTINUE
PF1 : UNDEFINED
PF4 : SUPPRESS DISPLAYS
PF7 : SCROLL BACK
PF10: PREVIOUS DISPLAY

EIBFN=X'1804'
EIBRESP=0
REPLY:

PF2 :
PF5 :
PF8 :
PF11:

SWITCH HEX/CHAR
WORKING STORAGE
SCROLL FORWARD
UNDEFINED

PF3 :
PF6 :
PF9 :
PF12:

END EDF SESSION


USER DISPLAY
STOP CONDITIONS
ABEND USER TASK

ENTER
Exibio de parada ANTES da execuo de comando CICS RECEIVE MAP
TRANSACTION: AP99 PROGRAM: APCP099 TASK: 0021843 APPLID: CICABNT2 DISPLAY: 00
STATUS: ABOUT TO EXECUTE COMMAND
EXEC CICS RECEIVE MAP
MAP ('APCM099')
INTO ('...............AAAAAAAA...10000...
+
+
+'...)
MAPSET ('APCM099')
TERMINAL
NOHANDLE

OFFSET:X'001718'
RESPONSE:

LINE:00626

ENTER: CONTINUE
PF1 : UNDEFINED
PF4 : SUPPRESS DISPLAYS
PF7 : SCROLL BACK
PF10: PREVIOUS DISPLAY

EIBFN=X'1802'
REPLY:

PF2 :
PF5 :
PF8 :
PF11:

SWITCH HEX/CHAR
WORKING STORAGE
SCROLL FORWARD
UNDEFINED

PF3 :
PF6 :
PF9 :
PF12:

UNDEFINED
USER DISPLAY
STOP CONDITIONS
ABEND USER TASK

69

Exibio da tela pelo comando CICS RECEIVE MAP


APCP099 PROGRAMA= AAAAAAAA TAM.COMMAREA= 10000
+
+
+
+
+
+
123456789012345678901234567890123456789012345678901234567890
00001
00061
00121
00181
00241
00301
00361
00421
00481
00541
00601
00661
00721
00781
00841
00901
123456789012345678901234567890123456789012345678901234567890

00060
00120
00180
00240
00300
00360
00420
00480
00540
00600
00660
00720
00780
00840
00900
00960

PF1=N/A
PF2=LimpaCA PF3=FIM PF4=InicioCA PF5=LINKpgm PF6=FimCA PF7=PgUp
PF8=PgDn PF9=N/A
PF10=LinUp PF11=LinDn PF12=OutroPGM/CA Enter=AlteraCA

F5
Exibio da tela APS a execuo do comando CICS RECEIVE MAP
TRANSACTION: AP99 PROGRAM: APCP099 TASK: 0021843 APPLID: CICABNT2 DISPLAY: 00
STATUS: COMMAND EXECUTION COMPLETE
EXEC CICS RECEIVE MAP
MAP ('APCM099')
INTO ('...............AAAAAAAA...10000...
+
+
+'...)
MAPSET ('APCM099')
TERMINAL
NOHANDLE

OFFSET:X'001718'
RESPONSE: NORMAL

LINE:00626

ENTER: CONTINUE
PF1 : UNDEFINED
PF4 : SUPPRESS DISPLAYS
PF7 : SCROLL BACK
PF10: PREVIOUS DISPLAY

PF2 :
PF5 :
PF8 :
PF11:

EIBFN=X'1802'
EIBRESP=0
SWITCH HEX/CHAR
WORKING STORAGE
SCROLL FORWARD
UNDEFINED

PF3 :
PF6 :
PF9 :
PF12:

REPLY:
END EDF SESSION
USER DISPLAY
STOP CONDITIONS
ABEND USER TASK

ENTER
Exibio da tela ANTES a execuo do comando CICS LINK
TRANSACTION: AP99 PROGRAM: APCP099 TASK: 0021843 APPLID: CICABNT2 DISPLAY:
STATUS: ABOUT TO EXECUTE COMMAND
EXEC CICS LINK
PROGRAM ('AAAAAAAA')
COMMAREA ('')
LENGTH (0)

OFFSET:X'001FD4'
RESPONSE:

LINE:00927

ENTER: CONTINUE
PF1 : UNDEFINED
PF4 : SUPPRESS DISPLAYS
PF7 : SCROLL BACK
PF10: PREVIOUS DISPLAY

00

EIBFN=X'0E02'
REPLY:

PF2 :
PF5 :
PF8 :
PF11:

SWITCH HEX/CHAR
WORKING STORAGE
SCROLL FORWARD
UNDEFINED

PF3 :
PF6 :
PF9 :
PF12:

UNDEFINED
USER DISPLAY
STOP CONDITIONS
ABEND USER TASK

70

ENTER
Exibio da tela APS a execuo do comando CICS LINK
TRANSACTION: AP99 PROGRAM: APCP099 TASK: 0021843 APPLID: CICABNT2 DISPLAY:
STATUS: COMMAND EXECUTION COMPLETE
EXEC CICS LINK
PROGRAM ('AAAAAAAA')
COMMAREA ('')
LENGTH (0)

OFFSET:X'001FD4'
RESPONSE: PGMIDERR

LINE:00927

ENTER: CONTINUE
PF1 : UNDEFINED
PF4 : SUPPRESS DISPLAYS
PF7 : SCROLL BACK
PF10: PREVIOUS DISPLAY

PF2 :
PF5 :
PF8 :
PF11:

EIBFN=X'0E02'
EIBRESP=27
SWITCH HEX/CHAR
WORKING STORAGE
SCROLL FORWARD
UNDEFINED

PF3 :
PF6 :
PF9 :
PF12:

00

REPLY:
END EDF SESSION
USER DISPLAY
STOP CONDITIONS
ABEND USER TASK

ENTER
Ocorrncia de ABEND
TRANSACTION: AP99 PROGRAM: APCP099
STATUS: AN ABEND HAS OCCURRED

EIBTIME
EIBDATE
EIBTRNID
EIBTASKN
EIBTRMID

=
=
=
=
=

105049
0103304
'AP99'
21843
'W164'

EIBCPOSN
EIBCALEN
EIBAID
EIBFN
EIBRCODE
EIBDS
EIBREQID

=
=
=
=
=
=
=

19
0
X'F5'
X'0E02' LINK
X'010000000000'
'........'
'........'

ABEND :

TASK: 0021843 APPLID: CICABNT2 DISPLAY:

00

AT X'0020D0EA'
AT X'0020D0EB'
AT X'0020D0ED'

AEI0
REPLY:

ENTER: CONTINUE
PF1 : UNDEFINED
PF4 : SUPPRESS DISPLAYS
PF7 : SCROLL BACK
PF10: PREVIOUS DISPLAY

PF2 :
PF5 :
PF8 :
PF11:

SWITCH HEX/CHAR
WORKING STORAGE
SCROLL FORWARD
UNDEFINED

PF3 :
PF6 :
PF9 :
PF12:

END EDF SESSION


USER DISPLAY
STOP CONDITIONS
UNDEFINED

ENTER
Pergunta se continua em EDF mode; se responder NO
TRANSACTION: AP99 PROGRAM:
TASK: 0021843 APPLID: CICABNT2 DISPLAY:
STATUS: ABNORMAL TASK TERMINATION

EIBTIME
EIBDATE
EIBTRNID
EIBTASKN
EIBTRMID

=
=
=
=
=

105049
0103304
'AP99'
21843
'W164'

EIBCPOSN
EIBCALEN
EIBAID
EIBFN
EIBRCODE
EIBDS
EIBREQID

=
=
=
=
=
=
=

19
0
X'F5'
X'0E02' LINK
X'010000000000'
'........'
'........'

ABEND :
AEI0
CONTINUE EDF? (ENTER YES OR NO)
ENTER: CONTINUE
PF1 : UNDEFINED
PF2 :
PF4 : SUPPRESS DISPLAYS
PF5 :
PF7 : SCROLL BACK
PF8 :
PF10: PREVIOUS DISPLAY
PF11:

00

AT X'0020D0EA'
AT X'0020D0EB'
AT X'0020D0ED'

REPLY: NO
SWITCH HEX/CHAR
WORKING STORAGE
SCROLL FORWARD
UNDEFINED

PF3 :
PF6 :
PF9 :
PF12:

END EDF SESSION


USER DISPLAY
STOP CONDITIONS
UNDEFINED

71

ENTER (aps o NO)


Volta a ltima tela do aplicativo, com a mensagem de erro normal
APCP099 PROGRAMA= AAAAAAAA TAM.COMMAREA= 10000
+
+
+
+
+
+
123456789012345678901234567890123456789012345678901234567890
00001
00061
00121
00181
00241
00301
00361
00421
00481
00541
00601
00661
00721
00781
00841
00901
123456789012345678901234567890123456789012345678901234567890

00060
00120
00180
00240
00300
00360
00420
00480
00540
00600
00660
00720
00780
00840
00900
00960

PF1=N/A
PF2=LimpaCA PF3=FIM PF4=InicioCA PF5=LINKpgm PF6=FimCA PF7=PgUp
DFHAC2206 11:11:42 CICABNT2 Transaction AP99 has failed with abend AEI0.
Resource backout was successful.

Clear e nome da prxima transao ...

72

Recursos adicionais do EDF


Numa parada, antes ou depois da execuo de um comando :
TRANSACTION: AP99 PROGRAM: APCP099 TASK: 0044270 APPLID: CICABNT2 DISPLAY: 00
STATUS: COMMAND EXECUTION COMPLETE
EXEC CICS RECEIVE MAP
MAP ('APCM099')
INTO ('...............AAAAAAAA...10000...
+
+
+'...)
MAPSET ('APCM099')
TERMINAL
NOHANDLE

OFFSET:X'001718'
RESPONSE: NORMAL

LINE:00626

ENTER: CONTINUE
PF1 : UNDEFINED
PF4 : SUPPRESS DISPLAYS
PF7 : SCROLL BACK
PF10: PREVIOUS DISPLAY

EIBFN=X'1802'
EIBRESP=0
REPLY:

PF2 :
PF5 :
PF8 :
PF11:

SWITCH HEX/CHAR
WORKING STORAGE
SCROLL FORWARD
UNDEFINED

PF3 :
PF6 :
PF9 :
PF12:

END EDF SESSION


USER DISPLAY
STOP CONDITIONS
ABEND USER TASK

Se pressionado F2 , visualizao em hexadecimal:


TRANSACTION: AP99 PROGRAM: APCP099 TASK: 0044270 APPLID: CICABNT2 DISPLAY: 00
STATUS: COMMAND EXECUTION COMPLETE
EXEC CICS RECEIVE MAP
MAP (X'C1D7C3D4F0F9F9')
AT X'001574D1'
INTO (X'0000000000000000070B0000000800C1C1C1C1C1C1C1C100'...) AT X'15523760'
MAPSET (X'C1D7C3D4F0F9F9')
AT X'001574DF'
TERMINAL
NOHANDLE

OFFSET:X'001718'
RESPONSE: NORMAL

LINE:00626

ENTER: CONTINUE
PF1 : UNDEFINED
PF4 : SUPPRESS DISPLAYS
PF7 : SCROLL BACK
PF10: PREVIOUS DISPLAY

PF2 :
PF5 :
PF8 :
PF11:

EIBFN=X'1802'
EIBRESP=X'00000000'
SWITCH HEX/CHAR
WORKING STORAGE
SCROLL FORWARD
UNDEFINED

PF3 :
PF6 :
PF9 :
PF12:

REPLY:

END EDF SESSION


USER DISPLAY
STOP CONDITIONS
ABEND USER TASK

73

Numa parada, antes ou depois da execuo de um comando :


TRANSACTION: AP99 PROGRAM: APCP099 TASK: 0044270 APPLID: CICABNT2 DISPLAY: 00
STATUS: COMMAND EXECUTION COMPLETE
EXEC CICS RECEIVE MAP
MAP ('APCM099')
INTO ('...............AAAAAAAA...10000...
+
+
+'...)
MAPSET ('APCM099')
TERMINAL
NOHANDLE

OFFSET:X'001718'
RESPONSE: NORMAL

LINE:00626

EIBFN=X'1802'
EIBRESP=0
REPLY:

ENTER: CONTINUE
PF1 : UNDEFINED
PF4 : SUPPRESS DISPLAYS
PF7 : SCROLL BACK
PF10: PREVIOUS DISPLAY

PF2 :
PF5 :
PF8 :
PF11:

SWITCH HEX/CHAR
WORKING STORAGE
SCROLL FORWARD
UNDEFINED

PF3 :
PF6 :
PF9 :
PF12:

END EDF SESSION


USER DISPLAY
STOP CONDITIONS
ABEND USER TASK

Se pressionado F5, visualizao das reas (variveis) do programa


TRANSACTION: AP99 PROGRAM: APCP099 TASK: 0044270 APPLID: CICABNT2 DISPLAY:
ADDRESS: 1550A340
WORKING STORAGE
1550A340
000000
C8D6D3C4 C1D9C5C1 D7D9D6C7 D5C1D4C5
HOLDAREAPROGNAME
1550A350
000010
C1C1C1C1 C1C1C1C1 C3D6D4D4 C1D3C5D5
AAAAAAAACOMMALEN
1550A360
000020
F0F0F0F1 F0F0F0F0 C3D6D4C1 D3C5D5C2
00010000COMALENB
1550A370
000030
0000C3D6 D4D4C1E3 C1D4F0F0 F0F0F0F0
..COMMATAM000000
1550A380
000040
F0F0D7D9 D6C7D9C5 E3C3F0F0 F0F0F0F0
00PROGRETC000000
1550A390
000050
F0F0C6D3 C1C7E3D6 C7D34040 40404040
00FLAGTOGL
1550A3A0
000060
D3C9D4D7 C160C3C1 404040C4 C5E2C5D1
LIMPA-CA
DESEJ
1550A3B0
000070
D67E4040 404040C9 D5C9C3C9 D6C3C140
O=
INICIOCA
1550A3C0
000080
4040C6D3 C1C7E7C1 D4C14040 40C6C9D5
FLAGXAMA
FIN
1550A3D0
000090
C1D3C3C1 40404040 404040C6 D3C1C7E5
ALCA
FLAGV
1550A3E0
0000A0
D6C1E540 40404040 40C6D3C1 C7D7C6F9
OAV
FLAGPF9
1550A3F0
0000B0
40404040 C6D3C1C7 D3C9D57E 40404040
FLAGLIN=
1550A400
0000C0
4040C6D3 C1C7D5D7 D9D64040 40C1D3E3
FLAGNPRO
ALT
1550A410
0000D0
C5D9C1C3 C1404040 C6D3C1C7 C8E7C3C8
ERACA
FLAGHXCH
1550A420
0000E0
C3C8C1D9 00000000 40404040 40404040
CHAR....
1550A430
0000F0
40404040 40404040 F0F0F0F0 F0000000
00000...
REPLY:
ENTER: CURRENT DISPLAY
PF1 : UNDEFINED
PF2 : BROWSE TEMP STORAGE PF3 : UNDEFINED
PF4 : EIB DISPLAY
PF5 : INVOKE CECI
PF6 : USER DISPLAY
PF7 : SCROLL BACK HALF
PF8 : SCROLL FORWARD HALF PF9 : UNDEFINED
PF10: SCROLL BACK FULL
PF11: SCROLL FORWARD FULL PF12: REMEMBER DISPLAY

00

Se pressionado F4, visualizar EIB :


TRANSACTION: AP99 PROGRAM: APCP099
STATUS: EXEC INTERFACE BLOCK

TASK: 0044270 APPLID: CICABNT2 DISPLAY:

EIBTIME
EIBDATE
EIBTRNID
EIBTASKN
EIBTRMID

=
=
=
=
=

114729
0103304
'AP99'
44270
'W164'

EIBCPOSN
EIBCALEN
EIBAID
EIBFN
EIBRCODE
EIBDS
EIBREQID

=
=
=
=
=
=
=

19
0
X'F5'
X'1802' RECEIVE
X'000000000000'
'........'
'........'

AT X'002030EA'
AT X'002030EB'
AT X'002030ED'

RESPONSE:
ENTER: CURRENT DISPLAY
PF1 : UNDEFINED
PF4 : EIB DISPLAY
PF7 : SCROLL BACK
PF10: UNDEFINED

00

REPLY:
PF2 :
PF5 :
PF8 :
PF11:

SWITCH HEX/CHAR
WORKING STORAGE
SCROLL FORWARD
UNDEFINED

PF3 :
PF6 :
PF9 :
PF12:

UNDEFINED
USER DISPLAY
UNDEFINED
REMEMBER DISPLAY

74

CEMT (Cics Environment runtime resource ManagemenT)


A transao CEMT usada para verificar e alterar a situao de recursos do CICS (arquivos,
programas, transaes, etc).
Pode-se colocar o comando completo, caso se saiba a sintaxe :
CEMT I FI(RPCA01*)
STATUS: RESULTS - OVERTYPE TO MODIFY
Fil(RPCA011 ) Rem
Fil(RPCA012 ) Rem
Fil(RPCA014 ) Rem
Fil(RPCA015 ) Rem
Fil(RPCA016 ) Rem
Fil(RPCA017 ) Rem
Fil(RPCA018 ) Rem
Fil(RPCA019 ) Rem

RESPONSE: NORMAL
PF 1 HELP
3 END

SYSID=CIT2 APPLID=CICABNT2
TIME: 15.43.29 DATE: 31.10.03
7 SBH 8 SFH 9 MSG 10 SB 11 SF

Ou colocar o comando CEMT, e, orientado pelas telas, ir complementando-o :

STATUS:

ENTER ONE OF THE FOLLOWING

Discard
Inquire
Perform
Set

SYSID=CIT2 APPLID=CICABNT2
PF 1 HELP

3 END

9 MSG

75

i
STATUS:

ENTER ONE OF THE FOLLOWING

Discard
Inquire
Perform
Set

SYSID=CIT2 APPLID=CICABNT2
PF 1 HELP

3 END

9 MSG

I
STATUS:

ENTER ONE OF THE FOLLOWING OR HIT ENTER FOR DEFAULT

AUTInstmodel
AUTOinstall
AUXtrace
Connection
DEletshipped
DLidatabase
DSAs
DSName
DUmpds
FEConnection
FENode
FEPOol
FEPRopset
FETarget
FIle
Gtftrace
INttrace

IRBatch
IRC
Journalnum
Line
MODename
MONitor
Netname
PArtner
PItrace
PROFile
PROGram
STatistics
SYDumpcode
SYStem
TAsk
TClass
TDqueue

TErminal
TRAnsaction
TRDumpcode
TSqueue
VOlume
VTam

SYSID=CIT2 APPLID=CICABNT2
PF 1 HELP

3 END

9 MSG

I fi(tab*)
STATUS: ENTER ONE OF THE FOLLOWING OR HIT ENTER FOR DEFAULT
AUTInstmodel
AUTOinstall
AUXtrace
Connection
DEletshipped
DLidatabase
DSAs
DSName
DUmpds
FEConnection
FENode
FEPOol
FEPRopset
FETarget
FIle
Gtftrace
INttrace

IRBatch
IRC
Journalnum
Line
MODename
MONitor
Netname
PArtner
PItrace
PROFile
PROGram
STatistics
SYDumpcode
SYStem
TAsk
TClass
TDqueue

TErminal
TRAnsaction
TRDumpcode
TSqueue
VOlume
VTam

SYSID=CIT2 APPLID=CICABNT2
PF 1 HELP

3 END

9 MSG

76

I FI(TAB*)
STATUS: RESULTS - OVERTYPE TO MODIFY
Fil(TABA000 ) Rem
Fil(TABA001 ) Rem
Fil(TABA002 ) Rem
Fil(TABA003 ) Rem
Fil(TABA004 ) Rem
Fil(TABA006 ) Rem
Fil(TABA007 ) Rem
Fil(TABA011 ) Rem
Fil(TABA100 ) Rem
Fil(TABA209 ) Rem
Fil(TABA341 ) Rem
Fil(TABA400 ) Rem
Fil(TABA501 ) Rem
Fil(TABA502 ) Rem
Fil(TABA503 ) Rem
Fil(TABA504 ) Rem
Fil(TABA505 ) Rem
+ Fil(TABA506 ) Rem
SYSID=CIT2 APPLID=CICABNT2
TIME: 15.38.26 DATE: 31.10.03
7 SBH 8 SFH 9 MSG 10 SB 11 SF

RESPONSE: NORMAL
PF 1 HELP
3 END
I TRA(TAB*)
STATUS: RESULTS - OVERTYPE TO MODIFY
Tra(TAB ) Pri( 001 ) Pro(ABN00A ) Tcl(
Tra(TABS) Pri( 001 ) Pro(TABA0A ) Tcl(
Tra(TAB1) Pri( 001 ) Pro(TABP128 ) Tcl(
Tra(TAB2) Pri( 001 ) Pro(TABP129 ) Tcl(
Tra(TAB3) Pri( 001 ) Pro(TABP130 ) Tcl(

DFHTCL00
DFHTCL00
DFHTCL00
DFHTCL00
DFHTCL00

Ena
Ena
Ena
Ena
Ena

SYSID=CIT2 APPLID=CICABNT2
TIME: 15.40.01 DATE: 31.10.03
7 SBH 8 SFH 9 MSG 10 SB 11 SF

RESPONSE: NORMAL
PF 1 HELP
3 END

I PROG(TAB*)
STATUS: RESULTS - OVERTYPE TO MODIFY
Prog(TABADA ) Len(0045344) Cob Pro Ena
Res(000) Use(0000000019) Any Uex Ful
Prog(TABADG ) Len(0025136) Cob Pro Ena
Res(000) Use(0000000019) Any Uex Ful
Prog(TABADGFM) Len(0001488)
Pro Ena
Res(000) Use(0000000019) Any Uex Ful
Prog(TABA0A ) Len(0052848) Cob Pro Ena
Res(000) Use(0000000057) Any Uex Ful
Prog(TABA0G ) Len(0021368) Cob Pro Ena
Res(000) Use(0000000057) Any Uex Ful
Prog(TABA0GFM) Len(0001272)
Pro Ena
Res(000) Use(0000000057) Any Uex Ful
Prog(TABB1A ) Len(0077992) Cob Pro Ena
Res(000) Use(0000000022) Any Uex Ful
Prog(TABB1G ) Len(0025320) Cob Pro Ena
Res(000) Use(0000000022) Any Uex Ful
+ Prog(TABB1GFM) Len(0001000)
Pro Ena
Res(000) Use(0000000022) Any Uex Ful
RESPONSE: NORMAL
PF 1 HELP
3 END

)
)
)
)
)

Pri

Ced

Pri

Ced

Pri

Ced

Pri

Ced

Pri

Ced

Pri

Ced

Pri

Ced

Pri

Ced

Pri

Ced

SYSID=CIT2 APPLID=CICABNT2
TIME: 15.40.49 DATE: 31.10.03
7 SBH 8 SFH 9 MSG 10 SB 11 SF

77

CMAC (Cics MAnual and Codes)


DFHCMC01

Display On-line Messages and Codes

Type the required message identifier, then press Enter.

Component ID. . . .

(for example, TC for Terminal Control


FC for File Control, etc.)
This field is required for messages in the
form DFHxxyyyy, where xx is the Component ID.

Message Number. . .

(for example, 1060, 5718, or Abend Code


such as ASRA, etc.)

F3=Exit to CICS
DFHCMC01

Display On-line Messages and Codes

Type the required message identifier, then press Enter.

Component ID. . . . TC

(for example, TC for Terminal Control


FC for File Control, etc.)
This field is required for messages in the
form DFHxxyyyy, where xx is the Component ID.

Message Number. . . 1060 (for example, 1060, 5718, or Abend Code


such as ASRA, etc.)

DFHME0500 PLEASE ENTER A MESSAGE NUMBER.


F3=Exit to CICS
DFHTC1060 APPLID INSUFFICIENT STORAGE (CODE
FCF7) IN MODULE DFHTCRP.
EXPLANATION: A request for storage could not be satisfied
in module DFHTCRP. The specific error is identified by the
code FCF7. This implies that the dynamic storage area (DSA)
size is too small.
SYSTEM ACTION: Terminal control initialization is
terminated with a system dump and message DFHTC1001 is
issued.
USER RESPONSE: Since sufficient storage should be
obtainable from within the minimum size DSA, this may imply
a logic error within CICS. Try to increase the CDSASZE
parameter in the system initialization table (SIT). You
need further assistance from IBM to resolve this problem.
See Part 4 of the CICS/ESA Problem Determination Guide
for guidance on how to proceed.

F3=Cancel

F7=Backward

F8=Forward

78

DFHCMC01

Display On-line Messages and Codes

Type the required message identifier, then press Enter.

Component ID. . . .

(for example, TC for Terminal Control


FC for File Control, etc.)
This field is required for messages in the
form DFHxxyyyy, where xx is the Component ID.

Message Number. . . ASRA (for example, 1060, 5718, or Abend Code


such as ASRA, etc.)

F3=Exit to CICS
ASRA
EXPLANATION: The task has terminated abnormally because
of a program check.
SYSTEM ACTION: The task is abnormally terminated and CICS
issues either message DFHAP0001 or DFHSR0001. Message
DFHSR0622 may also be issued.
USER RESPONSE: Refer to the description of the associated
message or messages to determine and correct the cause of
the program check.
MODULE:

F3=Cancel

DFHSRP

F7=Backward

F8=Forward

79