Você está na página 1de 37

CICSparaMainframe CICSparaMainframe

CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
CostumerInformationControlSystem
StudentGuide
ndice Pgina

readecomunicao 3
Armazenamentotemporriodedados 28
BlocosdeConstantes 32
Capturandoocdigodoerronumaplicativo 16
CodificandoaAlteraodeAlunos 49
CodificandoaConsultadoAluno 59
CodificandoaExclusodeAlunos 55
CodificandocompletadoMenuPrincipal 9
CodificandooInclusodeAlunos 43
Codificandoomapafilho 6
Codificandoomapagrupo 6
CodificandooMenuprincipal 35
CodificandoummapaemBMS 5
Codificandoumaconstantenomapa 7
Codificandoumavarivelnomapa 8
CdigoderetornodoVSAMEIBRESP 69
Controlandoerronumaplicativo 15
DebugandoumprogramanoCICS 13
DeseditandoumCampo 17
DFHBMSCA 33
DFHEPI 33
ExcluindoumregistrodeumafiladaTS 31
ExcluindoumregistroumarquivoKSDS 26
ExcluindovriosregistrosumarquivoKSDS 27
Execuoassncronadeumprograma 19
Exercciodeclasse 34
Exibindoummapa 13
Exibindoumtextonatela 14
Finalizandoummapagrupo 8
FormatandoDataeHoradoSistema 16
GravandoumregistronumarquivoKSDS 24
GravandoumregistrodeumafiladaTS 29
Layoutdareadecomunicaoentreosmdulosdosistema 69
LendoumregistropelachavenumKSDS 22
LendoumregistroumarquivoKSDSparaalterao 25
LinguagensdeInterface 1
Linkandoumprogramaaoprogramaprincipal 18
CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
ndice Pgina

ManipulandotabelasdoCICS 12
MapadedadosBMS(BasicMapSuport) 4
MododeprogramaoConversacional 2
MododeprogramaoPseudoconversacional 2
OqueoCICS 1
ObtendoCdigoeNomedousurio 17
ObtendoDataeHoradoSistema 16
Pausandooprocessamento 17
Pontodecontroledeumaexecuodatransao 20
PosicionandoumarquivoparaleiturasequencialnumKSDS 23
Recebendodadosemumprogramaemexecuoassncrona 19
Recebendoummapa 14
Recebendoumtextodatela 15
Reentrnciadeprograma 3
RegravandoumregistrodeumafiladaTS 30
RetornandoocontroledeumatransaoaoCICS 20
RetornandoocontroledefinitivodeumatransaoaoCICS 20
TabelasdecontroledoCICS 1
Transferindoocontroleparaoutroprograma 18
CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
1 2
OqueoCICS
OCICSumsistemaqueexecutadoemumapartiodoMAINFRAME,onde
executa os comandos a ele solicitado. A palavra CICS so as iniciais de
CostumerInformationControlSystem,oCICScarregadoatravsdeumJOB
executado quando carregamos o sistema operacional, como todo sistema ele
incorpora vrias tabelas de controle que ajudam a controlar os servios
solicitados.

TabelasdecontroledoCICS
PCT-ProgramControlTable-Controlaousodosprogramas
TCT -TransationControlTable-Controlaosendereosdetransaes
FCT-FileControltable-ControlaosarquivossobCICS
KCT-TaskControlTable-ControlaosserviosativosnoCICS
TCP-TerminalControlProgram-ControlaosterminaissoboCICS

Conceitos
TRANSAO-Conjuntode4caracteresqueestarvinculadoumprograma,
sempre que estes forem digitados em um terminal ser acionado o programa
correspondenteatransao.
SERVIO-ExecuodeumaoumaisaplicaesnoCICS

LinguagensdeInterface
O CICS faz interfaces com vrias linguagens de programao, na verdade o
programaescritoemumalinguagemespecfica,mandaumblocodeinformaes
ao CICS, onde este as executa, devolvendo-as para o aplicativo que as
solicitou.

Linguagens-COBOL,PLI,ASSEMBLER,CSP
BancodeDados-DB2,ADABAS,VSAM,DLI

CICS
Transao Dados Programa
Processa
Programa
MododeprogramaoPseudoconversacional
A aplicao passa pela memria do CICS, solicita os recursos de memria e
basesdedados(UPDATE,HOLD)eaps execut-los,libera-os,comotudo
isso acontece muito rpido os recursos no ficam indisponveis outros
aplicativos, no dando tempo para enfileiramento das aplicaes. Seu uso
extremamenterecomendado.
CICS
Transao Dados
Programa Processa
Amarra
transao
aoterminal
Retira
programa
damemria
MododeprogramaoConversacional
A aplicao fica tempo integral na memria do CICS, todos os recursos
(acessosabases,tabelasinternasaoprograma,memria,etc)estopresos
aplicaoatestasairdeexecuo,emoutraspalavras,registrospresospara
UPDATES(VSAM),HOLD(SQL)ememriasestoindisponveisparaoutras
aplicaes, podendo provocar uma fila de espera para aqueles recursos ou
aguardandomemria,acarretandoumgastodetempoememriadoCICS.
Seuusonorecomendado.
CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
3 4
Reentrnciadeprograma
TodaaplicaonoCICSpornaturezareentrante,istoquerdizer,acadavez
queaaplicaoforchamadaparaserexecutada,oCICSverificaseelaestna
memria, desta forma o CICS no carrega mais uma cpia da aplicao,
somente fazendo uma cpia da rea de trabalho ser usada no novo
servio.
Mapa de dados BMS (Basic Map Suport)
No CICS a entrada de dados pode ser uma tela (MAP). No comeo quando foi
inventado o CICS, as telas eram codificadas dentro das aplicaes, dando um
trabalho imenso, pois os atributos, campos fixos e variveis se misturavam ao
fonte do programa. Foi quando surgiu a ideia de desvincular a tela da aplicao
principal, desenhando e compilando as mesmas, gerando a tela fsica
(EXECUTVEL) e a tela lgica (BOOK), onde esta combinao foi chamada de
BMS (Basic Map Support). Quando fazemos uma tela BMS, gerado um fonte
na linguagem escolhida aps a compilao, e se olharmos o fonte veremos que
a cada varivel tero campos auxiliares, tais como:
Um campo BINRIO [S9(04) COMP] com o mesmo nome da varivel e
terminado em L, que representa o TAMANHO do campo digitado.
Um campo CHAR [X(01)] com o mesmo nome da varivel e terminado em
A, que ser o ATRIBUTO do campo.
Um campo CHAR com o mesmo nome da varivel e terminado em I, que
ser o campo da tela de ENTRADA.
Um campo CHAR com o mesmo nome da varivel e terminado em O, que
ser o campo da tela de SAIDA , que redefine o campo de ENTRADA.
Transao
Transao
CICS
Programa
Processa
Amarraa
transao
aoterminal
Fazcpiada
reade
trabalho
Dados
Dados
readecomunicao
Este conceito muito importante, podemos passar parmetros entre
aplicaes principais ou subprogramas pela rea de comunicao do
CICS.EstareachamadadeCOMMAREA,queaelisodeCOMMUM
AREA em ingls, que nos aplicativos encontraremos com o nome de
DFHCOMMAREA,seutamanhomximo32K.
CICS
Programa
Envia
Commarea
Retorna
Commarea
Armazenaa
Commareano
CICS
Gerabookdevariveis
NaMAPLIB
Compilador
BMS
Geraexecutvel
naLOADLIB
FONTE
CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
5 6
CodificandoummapaemBMS
TodomapaemBMStemduasestruturabsicas,aprimeiraogrupodemapas,
podemos dizer que o mapa-pai poder conter vrios mapas-filhos a ele
relacionado, abaixo veremos um mapa de dados (TELC??M) e sua codificao
emBMS,
ItemNome Descrio
1DATASISDatadosistemacom10posiessomenteparaexibio.
2HORASISHoradosistemacom5posiessomenteparaexibio.
3OPCAO Opodeescolhacom2posiesdigitadopelousurio.
4MENS Mensagemderetornocom70posiessomenteparaexibio.

1 1 2 2 3 3 4 4 5 5 6 6 7 7 8
1...5....0....5....0....5....0....5....0....5....0....5....0....5....0....5....0
1 TELC??M MENU PRINCIPAL 19/02/2009 17:30
2 --------------------------------------------------------------------------------
3
4
5 OPCAO
6 ---------------------------------
7
8 01 INCLUSAO DO ALUNO
9
10 02 ALTERACAO DO ALUNO
11
12 03 EXCLUSAO DO ALUNO
13
14 04 CONSULTA ALUNO
15
16
17
18
19 OPCAO: __
20
21
22 --------------------------------------------------------------------------------
23 ENTER = PROCESSA F3/CLEAR = SAIDA
24 MSG: ___________________________________________________________________________
1 2
3
4
1 1 2 2 3 3 4 4 5 5 6 6 7 7
1...5....0....5....0....5....0....5....0....5....0....5....0....5....0.2
TELC??M DFHMSD TYPE=DSECT, X
MODE=MODALIDADE, X
LANG=LINGUAGEM, X
TIOAPFX=YES, X
CTRL=(FRSET,FREEKB)
Codificandoomapagrupo
Parmetros
TELC??M-Nomedogrupodemapas(Mximo:7caracteres)
DFHMSD-TYPE=DSECT-Indicaoinciodomapagrupo
MODE-Mododemanipulaodedadosdomapa,podendoser:.
OUTPUT-Indicaqueamodalidadedomapaserdesada,gerandoapenasos
sufixosOparacadavariveldomapa.
INPUT-Indicaqueamodalidadedomapaserdeentrada,gerandoapenasos
sufixosIparacadavariveldomapa.
INOUT-Indicaqueamodalidadedomapaserdeentradaesada,gerandoos
sufixosIeOparacadavariveldomapa.
LANG-Linguagemasergeradoomapalgico(book)poderseremCOBOL,
PLI,ASSEMBLERetc.
TIOAPFX-readeprefixodeentradaesadadoterminal.So12bytes,queo
BMSfazcontrole(ObrigatrioinformarYES).
CTRL-Defineocontroledemanipulaoqueomapater:
FRSET - Aps exibir o mapa, os atributos iniciais definidos no BMS sero
restaurados.
FREEKB-Apsexibiromapa,otecladoserliberadoparadigitao.
1 1 2 2 3 3 4 4 5 5 6 6 7 7
1...5....0....5....0....5....0....5....0....5....0....5....0....5....0.2
TELC??M DFHMDI COLUMN=COLUNA, X
LINE=LINHA, X
SIZE=(LINE,COLUNA)
Codificandoomapafilho
Parmetros
TELC??M-Nomedomapasubordinadoaomapagrupo(Mximo7caracteres)
DFHMDI-Defineoinciodomapa
COLUMN-Indicaacolunanoqualomapaserinicializado.
LINE:-Indicaalinhanoqualomapaserinicializado.
SIZE-Tamanhodomapaemlinhasecolunas,quepodemassumirosvalores
0124linhasede0180colunas.
CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
7 8
Codificandoumaconstantenomapa
1 1 2 2 3 3 4 4 5 5 6 6 7 7
1...5....0....5....0....5....0....5....0....5....0....5....0....5....0.2
OPCAO DFHMDF LENGTH=02, X
POS=(19,26), X
INITIAL=01, X
ATTRB=(UNPROT,NORM), X
PICIN='99', X
PICOUT='ZZ
Codificandoumavarivelnomapa
Parmetros
OPCAO-Nomedavarivel(Mximo:7caracteres)
PICIN-Ediodeentradadedados
PICOUT-Ediodesadadedados,podemosusarqualquermscara
suportadapelaslinguagensdeprogramao.
ExemplosdoCOBOL:Z,*,-,+,9e$
Observaes
1 - As variveis sodefinidas comnomes, servemde informaoentreo mapa
fsico do BMS (executvel) e o mapa lgico (Book), o nome informado da
coluna01a07.
2 - O CICS somente recebe os campos que foram modificados pelo operador,
todo campo modificao fica como MDT ligado. Paraaqueles campos queno
foram modificados, devemos lig-los automaticamente, para isso usamos o
atributo FSET no BMS, o CICS entender que eles foram modificados a cada
recebimentodatela.
1 1 2 2 3 3 4 4 5 5 6 6 7 7
1...5....0....5....0....5....0....5....0....5....0....5....0....5....0.2
DFHMDF LENGTH=07, X
POS=(01,02), X
INITIAL=TELC??M, X
ATTRB=(ASKIP,NORM)
Parmetros:
DFHMDF - Define a rea de dados, podendo ser uma constante (sem nome)
ouumavarivel(comnome).
LENGTH-Tamanhodocampo.
POS - Posio relativa que o campo ocupa no mapa, onde as coordenadas
xx,yysorespectivamentelinhasecolunas.
INITIAL - Contedo inicial que o campo conter, no dever ultrapassar o
tamanhodocampo.
ATTRB-Atributosdoscamposdomapa,poderoserdefinidoscomo:
ASKIP-Noaceitadigitao,ocampopulado
NORM-Nobrilhante
UNPROT-Desprotegido
PROT-Noaceitadigitao,masocursorposicionarpoderarnele
FSET-MDTligado(MODIFYDATATAG)ocampomesmonosendodigitado
pelooperadorserenviadoparaoprograma.
DRK-Escondido
BRT-Brilhante
NUM-Campodedigitaonumrico
Observao:
As constantes so definidas sem nome, servem de instrues somente para o
mapafsicodoBMS(layout).
1 1 2 2 3 3 4 4 5 5 6 6 7 7
1...5....0....5....0....5....0....5....0....5....0....5....0....5....0.2
TELC??M DFHMSD TYPE=FINAL
END
Finalizandoummapagrupo
Parmetros
Cadamapagrupodeverconterumfinalizador,esteindicarparaocompilador
BMSoterminodogrupodemapasdedados.
TELC??M-Nomedogrupodemapas(Omesmoqueiniciouogrupo)
DFHMSDTYPE=FINAL-indicaofinaldomapagrupo
END-FinaldacodificaodoBMS.
CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
9 10
CodificandocompletadoMenuPrincipal(TELC??M)
1 1 2 2 3 3 4 4 5 5 6 6 7 7
1...5....0....5....0....5....0....5....0....5....0....5....0....5....0.2
TELC??M DFHMSD TYPE=DSECT, X
MODE=INOUT, X
LANG=COBOL, X
TIOAPFX=YES, X
CTRL=(FRSET,FREEKB)
*--------------------------- MAPA DE DADOS ----------------------------
TELC??M DFHMDI COLUMN=NEXT, X
LINE=NEXT, X
SIZE=(24,79)
*------------------------------ LINHA 01 ------------------------------
DFHMDF LENGTH=07, X
POS=(01,02), X
INITIAL=TELC??M, X
ATTRB=(ASKIP,NORM)
*--------------
DFHMDF LENGTH=14, X
POS=(01,36), X
INITIAL='MENU PRINCIPAL', X
ATTRB=(ASKIP,BRT)
*--------------
DATASIS DFHMDF LENGTH=10, X
POS=(01,63), X
ATTRB=(ASKIP,FSET,NORM)
*--------------
HORASIS DFHMDF LENGTH=05, X
POS=(01,75), X
ATTRB=(ASKIP,FSET,NORM)
*------------------------------ LINHA 02 ------------------------------
DFHMDF LENGTH=78, X
POS=(02,02), X
INITIAL='-----------------------------------------------X
-------------------------------', X
ATTRB=(ASKIP,BRT)
*------------------------------ LINHA 05 ------------------------------
DFHMDF LENGTH=05, X
POS=(05,38), X
INITIAL='OPCAO', X
ATTRB=(ASKIP,BRT)
*------------------------------ LINHA 06 ------------------------------
DFHMDF LENGTH=32, X
POS=(06,26), X
INITIAL='--------------------------------', X
ATTRB=(ASKIP,BRT)
CodificandocompletadoMenuPrincipal(TELC??M)-Continuao
1 1 2 2 3 3 4 4 5 5 6 6 7 7
1...5....0....5....0....5....0....5....0....5....0....5....0....5....0.2
*------------------------------ LINHA 08 ------------------------------
DFHMDF LENGTH=22, X
POS=(08,26), X
INITIAL='01 INCLUSAO DO ALUNO', X
ATTRB=(ASKIP,NORM)
*------------------------------ LINHA 10 ------------------------------
DFHMDF LENGTH=23, X
POS=(10,26), X
INITIAL='02 ALTERACAO DO ALUNO', X
ATTRB=(ASKIP,NORM)
*------------------------------ LINHA 12 ------------------------------
DFHMDF LENGTH=22, X
POS=(12,26), X
INITIAL='03 EXCLUSAO DO ALUNO', X
ATTRB=(ASKIP,NORM)
*------------------------------ LINHA 14 ------------------------------
DFHMDF LENGTH=32, X
POS=(14,26), X
INITIAL='04 CONSULTA DE ALUNO', X
ATTRB=(ASKIP,NORM)
*------------------------------ LINHA 19 ------------------------------
DFHMDF LENGTH=06, X
POS=(19,20), X
INITIAL='OPCAO:', X
ATTRB=(ASKIP,BRT)
*--------------
OPCAO DFHMDF LENGTH=02, X
POS=(19,27), X
ATTRB=(UNPROT,NUM,FSET,IC)
*--------------
DFHMDF LENGTH=01, X
POS=(19,30), X
ATTRB=(ASKIP)
*------------------------------ LINHA 22 ------------------------------
DFHMDF LENGTH=78, X
POS=(22,02), X
INITIAL='-----------------------------------------------X
-------------------------------', X
ATTRB=(ASKIP,BRT)




CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
11 12
CodificandocompletadoMenuPrincipal(TELC??M)-Continuao
1 1 2 2 3 3 4 4 5 5 6 6 7 7
1...5....0....5....0....5....0....5....0....5....0....5....0....5....0.2
*------------------------------ LINHA 23 ------------------------------
DFHMDF LENGTH=07, X
POS=(23,02), X
INITIAL='ENTER =', X
ATTRB=(ASKIP,NORM)
*--------------
DFHMDF LENGTH=08, X
POS=(23,10), X
INITIAL='PROCESSA', X
ATTRB=(ASKIP,BRT)
*--------------
DFHMDF LENGTH=10, X
POS=(23,19), X
INITIAL='F3/CLEAR =', X
ATTRB=(ASKIP,NORM)
*--------------
DFHMDF LENGTH=05, X
POS=(23,30), X
INITIAL=SAIDA', X
ATTRB=(ASKIP,BRT)
*------------------------------ LINHA 24 ------------------------------
DFHMDF LENGTH=04, X
POS=(24,02), X
INITIAL='MSG:', X
ATTRB=(ASKIP,BRT)
*--------------
MENS DFHMDF LENGTH=70, X
POS=(24,07), X
ATTRB=(ASKIP,BRT)
*----------------------------------------------------------------------
TELC??M DFHMSD TYPE=FINAL
END
ManipulandotabelasdoCICS
Como vimos em captulos anteriores o CICS formados de vrias tabelas que
controlam as informaes gerencias, onde o usurio pode manipula-las usando
alguns utilitrios, veremos abaixo os utilitrios de uso frequente do dia-a-dia do
programadormainframe:

CEDAUtilizadoparadefinir,alterareexcluirosaplicativonastabelasCICS.
Exemplosdealgunscomandos.
CEDADEFPROG(PROGRAMA)LANG(LINGUAGEM)GROUP(GRUPO)
CEDAINSTALL(GRUPO)
Onde:
PROGRAMA-adefiniodoprogramaqueiremoscadastrarnaPCT.
LINGUAGEM-alinguagemnoqualoprogramafoicodificado,osmaisusados
so:COBOL,PLI,ASSEMBLER,LE370eC..
GROPOTodooaplicativodevepertenceraumgrupodetrabalhoquenofuturo
poderemosinstala-lo(INSTALL),colocandoogrupoemoperaonoCICS.

CECI-UtilizadoparaexecutarcomandosinterativosnoCICS.
Exemplodealgunscomandos:
CECISENDMAP(MAPA)Exibeomapadedados
CECIRECEIVEMAP(MAPA)Recebeomapadedados
Onde:
MAPA - Indica o mapa (tela) que ser exibido ou recebido pelo comando, para
tantoomapadeverestarpreviamentedefinidonoCICS.
.
NotaParamaioresinformaesdeve-seexecutaratransaoCEDAeCECIno
CICS sem passar parmetros que ser exibido uma lista de comando que
poderoserutilizados.

AtualizandoosaplicativosnaPCTProgramControlTable
CEMT SET PROG(PROGRAMA) NEW
Esta instruo s deve ser executada no CICS aps a compilao da tela ou
programa.
Onde:
PROGRAMA Tela ou programa que a ltima verso ser atualizada no CICS
NEW - Parmetro que indica que o CICS ser atualizada com o nova cpia do
programa em questo.
CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
13 14
DebugandoumprogramanoCICS
O CEDF um aplicativo que faz a depurao dos programas, podendo o
operadoracompanharemdetalhesaexecuodoscomandosCICSdomesmo,
veremosmaisdetalhesnaprticadousodestecomando.

ComandosdoCICS

Exibindoummapa:

SENDMAP(Mapa)
MAPSET(MapaGrupo)
FROM(reaDeDados)
FREEKB
FRSET
ERASE
CURSOR
ALARM

Parmetros:
MAPSET-Grupodemapasqueconterumoumaismapas,somenteogrupode
mapasqueestarnaPCT(ProgramControlTable),eestecontrolarosmapas
(MAP)queeleconter
MAP - Mapa que conter os campos, este mapa far parte de um grupo de
mapas(MAPSET)
FROM - rea de dados que conter as informaes do Mapa lgico (Book do
mapa)
FREEKB-Liberaotecladoapsoenviodatela
ERASE-Limpaatelafsicaantesdemandarumanovatela
ALARM-Provocaumalarmesonoronoterminal
FRSET-Apsexibiratela,osatributosseroreposicionadopelosoriginalmente
definidonoBMS
CURSOR - Posiciona o cursor no campo cujo o tamanho (sufixo L) contivero
valor-1(movidopeloaplicativo)

Errospossveis:
APCT-OmapagrupoouomapanoestocadastradonaPCTdoCICS
Recebendoummapa:

RECEIVEMAP(Mapa)
MAPSET(MapaGrupo)
INTO(readeDados)

Parmetros:
MAPSET-Grupodemapasqueconterumoumaismapas,somenteogrupode
mapasqueestarnaPCT(ProgramControlTable),eestecontrolarosmapas
(MAP)queeleconter
MAP - Mapa que conter os campos, este mapa far parte de um grupo de
mapas(MAPSET)
INTO - rea de dados que conter as informaes do Mapa lgico (book do
mapa)

Errospossveis:
MAPFAIL-OcorrequandooprogramarecebeuumareaquenoumMAPA,
recebeuumstringdedados,ou,recebeuumatelasemdados(nenhumMDTest
ligadonatela).

Exibindoumtextonatela:

SENDTEXT
FROM(Varivel)
FREEKB
ERASE
ALARM

Parmetros:
FROM-readetrabalhoondeconterosdados
FREEKB-Liberaotecladoapsoenviodamensagem
ERASE-Limpaatelafsicaantesdemandarumanovamensagem
ALARM-Provocaumalarmesonoronoterminal
Varivelumcampoalfanumricocomtamanhonecessrioparaconterotexto
enviadoaoterminal.

CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
15 16
Recebendoumtextodatela:

RECEIVETEXTINTO(Varivel)

Parmetros:
INTO-readedadosondeserrecebidaasinformaesdigitadasnoterminal.
As4primeirasposiesseroatransao
Varivelumcampoalfanumricocomtamanhonecessrioparareceberoque
foidigitadonoterminal
Errospossveis:
EOC-Ocorrersempre,masdevesertratadocomonormal,poisindicaofinalda
recepodotextodigitado
LENGERR - Ocorre quando o tamanho da rea que receber os dados for
menorqueosdadosdigitadosnoterminal.

Controlandoerronumaplicativo:

HANDLEABENDLABEL(Rotina)
[PROGRAM(Programa)]
[CANCEL]

Parmetros:
LABEL-Endereodeumarotinadoaplicativoquetrataroerrodoaplicativoe
doCICS
PROGRAM - Nome do aplicativo que ser transferido o controle, que tratar o
errodoaplicativoedoCICS
CANCEL-EsteparmetroutilizadoquandooABENDjestiversobocontrole
darotinadoLABELoudoPROGRAMAquetrataoABEND,paraqueoaplicativo
noentreemLOOPINGseocorreroutroABEND.

Capturandoocdigodoerronumaplicativo:

ASSIGNABCODE(Varivel)

Parmetros:
ABCODE-CdigodoABENDqueocorreunoaplicativoumaVARIVELde4
posiesdefinidanoprograma.

ObtendoDataeHoradoSistema:

ASKTIMEABSTIME(TempoAbsoluto)

Parmetros:
ABSTIME-otempoabsolutoemcentsimossegundosdesdeainvenodo
calendrioGREGORIANO
Tempo absoluto um campo numrico, inteiro, compactado com sinal de 15
posies.EstecomandomuitousadojuntocomocomandoFORMATTIME.

FormatandoDataeHoradoSistema:

FORMATTIMEABSTIME(TempoAbsoluto)
DDMMYYYY(CampoDaData)DATESEP(/)
TIME(CampoDaHora)TIMESEP(:)

Parmetros:
ABSTIME-otempoabsolutoemcentsimosdesegundosatadataehora
corrente
DDMMYYYY-Formatodadata,osformatosvlidosso:YYYYMMDD,
MMDDYYYYouqualqueroutroquesejavlido
DATESEP-Separadordadata
TIME-Hora,minutoesegundo
TIMESEP-Separadordahora
TempoAbsoluto:TempoabsolutocapturadonocomandoASKTIME
CampoDaData:readetrabalhodefinidacom10posiesqueconteradata
comseparadores
CampoDaHora:readetrabalhodefinidacom08posiesqueconterahora
comseparadores.

CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
17 18
ObtendoCdigoeNomedousurio:

ASSIGNUSERID(Usurio)USERNAME(NomeUsurio)

Parmetros:
USERID-CdigodousurioqueseLOGOUnoCICS
USERNAME-NomedousurioqueseLOGOUnoCICS
Usurio um campo alfa com 8 posies que conter o LOGIN do usurio,
NomeUsurio um campo alfa com 45 posies que conter o NOME do
usurio.

DeseditandoumCampo:

BIFDEEDITFIELD(CampoAlfanumrico)

Parmetros:
FIELD-Indicaocampoqueserdeseditado,campoAlfanumricoumcampo
alfaondeserretiradotodososcaracteresquenosejamnumricos,alinhadoa
direitaecolocadozerosaesquerdaatcompletarotamanhodocampo.

Pausandooprocessamento:
Usado para que o processamento fique em estado de espera por um
determinadotempo.

DELAYFORSECONDS(NN)

Parmetros:
SECONDS-Temporeal,queoaplicativoficarempausa,asopesMINUTES
ouHOURStambmsoaceitas
NN-Quantidadeemsegundos,minutosouhorasqueoaplicativoesperarantes
deexecutaraprximainstruo.

Linkandoumprogramaaoprogramaprincipal:

LINKPROGRAM(Programa)COMMAREA(reaDeComunicao)
PROGRAMA
(Principal)
PROGRAMA
(1)
PROGRAMA
(2)
LINK
LINK
Commarea
Commarea
Commarea
Commarea
Retorna
Retorna
Parmetros:
PROGRAM-Cdigodosubprogramaqueserexecutado,semqueaaplicao
principalpercaocontroledoprocessamento
COMMAREA - rea de dados que ser passado como parmetro para o
subprograma
Programa - Cdigo do programa que ser chamado, poder tambm ser uma
varivelde8caracterescontendoocdigodoprograma
reaDeComunicao: o nome da varivel definida no programa que conter
osparmetrosqueseropassados.

Errospossveis:
PGMIDERR-OcorrequandooprogramachamadonoestcadastradonaPCT.
CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
19 20
Transferindoocontroleparaoutroprograma:

CICSXCTLPROGRAM(Programa)COMMAREA(reaDeComunicao)

PROGRAMA
(Principal)
PROGRAMA
(1)
PROGRAMA
(2)
XCTL
XCTL
XCTL
Commarea
Commarea
Commarea
Parmetros:
PROGRAM - Cdigo do programa que ser executado, o programa emissor
deste comando ser tirado da memria e em seu endereo de memria ser
carregadooprogramaquefoichamadopelocomandoXCTL,nadarestando do
programachamador,anoserareacomum(COMMAREA)passada
COMMAREA - rea de dados que ser passado como parmetro para o
aplicativo
Programa Cdigo do programa que ser chamado, poder tambm ser uma
varivelde8caracterescontendoocdigodoprograma
reaDeComunicao: o nome da varivel definida no programa que conter
osparmetrosqueseropassados.

Errospossveis:
PGMIDERR-OcorrequandooprogramachamadonoestcadastradonaPCT.
Execuoassncronadeumprograma:

STARTTRANSID(Transao)FROM(Varivel)

Parmetros:
TRANSID-Cdigodatransaoqueirexecutarassncronaaoaplicativoquea
iniciou, isto , o programa que emitiu este comando no perder o controle do
prprio servio enquanto o programa startado estiver sendo executado,
executandooutroservio
FROM-readedadosqueserpassadocomoparmetroparaoaplicativoque
serexecutado
Varivelumastringqueconterosparmetrosqueseropassados.

Errospossveis:
TRANSIDERR-TransaonocadastradanoTCTdoCICS.

Recebendodadosemumprogramaemexecuoassncrona:

RETRIEVEINTO(Varivel)

Parmetros:
INTO-readedadosqueserrecebidacomoparmetronoaplicativo,quefoi
passadodeumoutroprograma
Varivelumastringqueconterosparmetrosqueserorecebidos

Errospossveis:
ENDDATA - No recebeu nenhum dado, isto , o programa que startou a
transaonopassoudados.

CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
21 22
RetornandoocontroledeumatransaoaoCICS:

RETURNTRANSID(Transao)COMMAREA(Varivel)

Parmetros:
TRANSID -Estecomandofarcomqueatransaofiqueassociadaaoterminal,
liberando todos os recursos alocados para o aplicativo. Quando for acionada
uma tecla funo (PF) no terminal a transao associada ele, chamar
automaticamente o programa associado transao, poder ser usada uma
varivelde4caracterescontendoocdigodatransao.
VARIAVEL - uma string que conter os parmetros que sero armazenados
na memria do CICS, para que seja recuperado na prxima entrada do
aplicativo(outroaplicativonotemacessoaestainformao)

Errospossveis:
INVREC - Ocorre quando um comando RETURN TRANSID emitido para um
programa LINKADO, sendo este no associado a um terminal ou o terminal j
estassociadoaumaoutratransao.

RetornandoocontroledefinitivodeumatransaoaoCICS:

RETURN

Parmetros:
Este comando retorna o controle para o CICS, liberando todos os recursos
alocados ao aplicativo, bem como, desvinculando a transao do terminal e
encerrandodefinitivamenteoservio.

Pontodecontroledeumaexecuodatransao:

SYNCPOINT[ROLLBACK]

Nota
1 - Quando o programa emite um SYNCPOINT sem ROLLBACK, todos as
manutenes,sejamelasnoVSAMouDB2,soefetivadas
2 - Quando o programa emite um SYNCPOINT com ROLLBACK, todas as
manutenes,sejamelasnoVSAMouDB2,nosoefetivadas.

LendoumregistropelachavenumKSDS:

READDATASET(Arquivo)
INTO(reaDeDadosDoRegistro)
RIDFLD(ChaveDoRegistro)
[EQUAL][GTEQ]
[KEYLENGTH(NN)GENERIC]

Parmetros:
DATASET - Arquivo VSAM cadastrado no CICS, poder ser uma varivel de 8
posies definida na rea de trabalho do aplicativo que conter o nome da
arquivo.
INTO-Variveldefinidanareadetrabalhodoprograma
RIDFLD-Variveldoregistrodoarquivoarquivoqueindicar(o)campo(s)que
compe(m)achave
EQUAL - A leitura ser orientada para posicionar na chave de igual valor da
variveldoRIDFLD
GTEQ-Aleituraserorientadaparaposicionarnachavedeigualoumaiorvalor
davariveldoRIDFLD
KEYLENGTH-Tamanhodapartedachavequeserpesquisadanoarquivo,se
usarmosumavarivelestadeverserumaHALF-WORDBINRIA,ondeNNo
tamanhodapartedachave.
GENERIC - Indica que a leitura ser por parte da chave, com o tamanho NN
indicadonoparmetroKEYLENGTH

Errospossveis:
NOTOPEN-ArquivofechadonoCICS
NOTFND-Chaveindicadanoexistente
LENGERR - Tamanho da varivel indicada no INTO menor que o registro
recuperado
INVREC-Requisioinvlida,oarquivonoestparaLEITURAnoCICS.
CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
23 24
PosicionandoumarquivoparaleiturasequencialnumKSDS:

STARTBRDATASET(Arquivo)
RIDFLD(ChaveDoRegistro)
[GTEQ][EQUAL]
[KEYLENGTH(NN)GENERIC]

LendoumarquivoKSDSsequencialmente

READNEXTDATASET(Arquivo)
INTO(reaDoRegistro)
RIDFLD(ChaveDoRegistro)

EncerrandoumaleiturasequencialdoarquivoKSDS

ENDBRDATASET(Arquivo)

Parmetros:
DATASET - Arquivo VSAM cadastrado no CICS, poder ser uma varivel de 8
posies definida na rea de trabalho do aplicativo, que conter o nome da
arquivo
RIDFLD - Varivel do registro do arquivo que indicar(o) campo(s) que
compe(m)achave
GTEQ - Posicionar no registro cuja chave seja maior ou igual a informada na
VARIVEL1, tambm poderemos usar EQUAL, o posicionamento ser de um
registrocujachavesejaigualaVARIVEL1
KEYLENGTH - Acionaa leiturapor parte dachave indicada pelonmero NN,a
opoGENERICobrigatria
Obs - Um arquivo aberto para leitura sequencial, seus registros no podem ser
alteradosouexcludosnomesmoprocesso.

Errospossveis:
NOTOPEN-ArquivofechadonoCICS
NOTFND-Chaveindicadanoexistente
LENGERR - Tamanho da varivel indicada no INTO menor que o registro
recuperado
INVREC - Requisio invlida, o arquivo no est para LEITURA no CICS, ou
houvetentativadealteraoeexcluso.

Encerraaleitura
sequencialdoarquivo
Leituradoarquivo
sequencialmente
Posicionaropointer
paraleitura

GravandoumregistronumarquivoKSDS:

WRITEDATASET(Arquivo)
FROM(reaDoRegistro)
RIDFLD(ChaveDoRegistro)

Parmetros:
DATASET - Arquivo VSAM cadastrado no CICS, poder ser uma varivel de 8
posies definida na rea de trabalho do aplicativo, que conter o nome da
arquivo
FROM-Variveldefinidanareadetrabalhodoprograma
RIDFLD = Varivel do registro do arquivo que indicar o(s) campo(s) que
compe(m)achave

Errospossveis:
NOTOPEN-ArquivofechadonoCICS
NOTFND-Chaveindicadanoexistente
LENGERR - Tamanho da varivel indicada no INTO menor que o registro
recuperado
INVREC - Requisio invlida, o arquivo no est para LEITURA no CICS, ou
houvetentativadealteraoeexcluso.

excluso.
CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
25 26
LendoumregistroumarquivoKSDSparaalterao:

READDATASET(Arquivo)
INTO(reaDoRegistro)
RIDFLD(ChaveDoRegistro)
UPDATE

RegravandoumregistroumarquivoKSDS

REWRITEDATASET(Arquivo)FROM(reaDoRegistro)

Parmetros:
DATASET - Arquivo VSAM cadastrado no CICS, poder ser uma varivel de 8
posies definida na rea de trabalho do aplicativo, que conter o nome da
arquivo.
FROM/INTO-Variveldefinidanareadetrabalhodoprograma
RIDFLD - Varivel do registro do arquivo que indicar o(s) campo(s) que
compe(m)achave
UPDATE-Indicaqueoregistroestarbloqueadoparaosdemaisprogramasat
umcomandoREWRITEforexecutado.

Errospossveis:
NOTOPEN-ArquivofechadonoCICS
NOTFND-Chaveindicadanoexistente
LENGERR - Tamanho da varivel indicada no INTO menor que o registro
recuperado
INVREC - Requisio invlida, o arquivo no est para LEITURA no CICS, ou
houvetentativadealteraoeexcluso.

ExcluindoumregistroumarquivoKSDS:

DELETEDATASET(Arquivo)RIDFLD(ChaveDoRegistro)

Parmetros:
DATASET - Arquivo VSAM cadastrado no CICS, poder ser uma varivel de 8
posies definida na rea de trabalho do aplicativo, que conter o nome da
arquivo.
RIDFLD - Varivel do registro do arquivo que indicar o(s) campo(s) que
compe(m)achave.

Errospossveis:
NOTOPEN-ArquivofechadonoCICS
NOTFND-Chaveindicadanoexistente
LENGERR - Tamanho da varivel indicada no INTO menor que o registro
recuperado
INVREC - Requisio invlida, o arquivo no est para LEITURA no CICS, ou
houvetentativadealteraoeexcluso.

CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
27 28
ExcluindovriosregistrosumarquivoKSDS:

DELETEDATASET(Arquivo)
RIDFLD(ChaveDoRegistro)
KEYLENGTH(NN)
GENERIC

Parmetros:
DATASET - Arquivo VSAM cadastrado no CICS, poder ser uma varivel de 8
posies definida na rea de trabalho do aplicativo, que conter o nome da
arquivo.
RIDFLD - Varivel do registro do arquivo que indicar o(s) campo(s) que
compe(m)achave
KEYLENGTH - Tamanho da parte da chave do(s) registro(s) que ser(o)
excludo(s) no arquivo, se usarmos uma varivel esta dever ser uma HALF-
WORDBINRIA
GENERIC-Indicaqueserexcludotodosregistrosporpartedachaveindicado
noparmetroNNdoKEYLENGTH.

Errospossveis:
NOTOPEN-ArquivofechadonoCICS
NOTFND-Chaveindicadanoexistente
LENGERR - Tamanho da varivel indicada no INTO menor que o registro
recuperado
INVREC - Requisio invlida, o arquivo no est para LEITURA no CICS, ou
houvetentativadealteraoeexcluso.

Armazenamentotemporriodedados:

TEMPORARYSTORAGE(TS)
TSsoarquivosdearmazenagensdedadosdentrodoCICS,estesarquivosso
temporriospoisquandooCICSsairdaexecuoestasreasseroliberadas,ou
quando algum programa solicitar sua excluso, este arquivo so tambm de fila
dedados.

LendoumregistrodeumafiladaTS

READQTSQUEUE(NomeDaFila)INTO(reaDeDados)ITEM(ItemDaFila)

Parmetros:
TS-TemporaryStorage
QUEUE - Varivel de 8 posies que conter o nome da TS, normalmente ser
formada com o cdigo da transao (EIBTRNID) mais o cdigo do terminal
(EIBTRMID)
INTO-readedadosquereceberosdadospreviamentegravadonaTS
ITEM - Uma HALF-WORD (Binrio de 2 posies) que conter o endereo do
registrodaTS,agravaodaTSsequencial,oITEMsempreretornaonumero
doregistrogravadodaTS.

Errospossveis:
IOERR-OcorrequandohumerrodeI/Oirrecupervel
NOTAUTH-OLOGINnoestautorizado(SEGURANA)
ITEMERR-OcorrequandonaleituraouregravaodeumITEMdaTSnoexistir
QIDERR-OcorrequandonoexistiraTS
LENGERR - Ocorre quando o tamanho da rea que receber os dados de um
itemdaTSformenorqueosdadosrecuperados.
CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
29 30
GravandoumregistrodeumafiladaTS:

WRITEQTSQUEUE(NomeDaFila)
FROM(reaDeDados)
ITEM(ItemDaFila)

Parmetros:
TS-TemporaryStorage
QUEUE-Varivelde8posiesqueconteronomedaTS,normalmenteser
formada com o cdigo da transao (EIBTRNID) mais o cdigo do terminal
(EIBTRMID)
FROM-readedadosqueserusadaparagravarnaTS
ITEM - Uma HALF-WORD (binrio de 2 posies) que conter o endereo do
registrodaTS
Errospossveis:
IOERR-OcorrequandohumerrodeI/Oirrecupervel
NOTAUTH-OLOGINnoestautorizado(SEGURANA)
ITEMERR - Ocorre quando na leitura ou regravao de um ITEM da TS no
existir
QIDERR-OcorrequandonoexistiraTS
LENGERR - Ocorre quando o tamanho da rea que receber os dados de um
itemdaTSformenorqueosdadosrecuperados.

RegravandoumregistrodeumafiladaTS:

WRITEQTSQUEUE(NomeDaFila)
FROM(reaDeDados)
ITEM(ItemDaFila)
REWRITE

Parmetros:
TS=TemporaryStorage
QUEUE - Varivel de 8 posies que conter o nome da TS, normalmente ser
formada com o cdigo da transao (EIBTRNID) mais o cdigo do terminal
(EIBTRMID)
FROM-readedadosqueserusadaparagravarnaTS
ITEM - Uma HALF-WORD (binrio de 2 posies) que conter o endereo do
registrodaTS
REWRITE-IndicaqueoitemdaTSserregravado.

Errospossveis:
IOERR-OcorrequandohumerrodeI/Oirrecupervel
NOTAUTH-OLOGINnoestautorizado(SEGURANA)
ITEMERR - Ocorre quando na leitura ou regravao de um ITEM da TS no
existir.
QIDERR-OcorrequandonoexistiraTS
LENGERR - Ocorre quando o tamanho da rea que receber os dados de um
itemdaTSformenorqueosdadosrecuperados.

.
CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
31 32
ExcluindoumregistrodeumafiladaTS:

DELETEQTSQUEUE(NomeDaFila)

Parmetros:
TS-TemporaryStorage
QUEUE-Varivelde8posiesqueconteronomedaTS,normalmenteser
formada com o cdigo da transao (EIBTRNID) mais o cdigo do terminal
(EIBTRMID).

Condiesdeexceo
IOERR-OcorrequandohumerrodeI/Oirrecupervel
NOTAUTH-OLOGINnoestautorizado(SEGURANA)
QIDERR-OcorrequandonoexistiraTS

TRANSIENTDATA(TD)
TDsoarquivosdearmazenagensdedadosdentrodoCICS,estesarquivosso
temporrios pois quando o CICS sair do execuoestasreas sero liberadas,
ouquandoalgumprogramarecuperouseusdados.

Parmetros:
Os comandos so os mesmosdaTS, somentedeveremos trocar o prefixoTS
paraTD.

Blocos de Constantes
O CICS trabalha com blocos de constantes, estes blocos fazem interface entre o
CICS e o aplicativo, trazendo ou enviando informaes entre eles.

DFHAID
Bloco de constante que sinaliza qual a ltima tecla funo pressionada pelo
usurio..

Varivel Descrio

DFHENTER ENTER
DFHCLEAR CLEAR(Alt+C)
DFHPA1 PA1
DFHPA2 PA2
DFHPA3 PA3
DFHPF1 PF1
DFHPF2 PF2
DFHPF3 PF3
DFHPF4 PF4
DFHPF5 PF5
DFHPF6 PF6
DFHPF7 PF7
DFHPF8 PF8
DFHPF9 PF9
DFHPF10 PF10
DFHPF11 PF11
DFHPF12 PF12
CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
33 34
DFHBMSCA
Bloco de constantes que contero os valores dos atributos dos campos da tela
BMS, so usados nos aplicativos para mudar os atributos inicialmente
definidosnomapapeloBMS.

Exercciodeclasse
A seguir faremosuma srie de programas etelas que comporo um sistema de
cadastro,utilizandoaslinguagens:COBOL,BMS,CICScombasededadosDB2.
Varivel Descrio

DFHBMASK Pulado
DFHBMUNP Desprotegido
DFHBMUNN DesprotegidoNumrico
DFHBMPRO Protegido
DFHBMBRY Brilhante
DFHBMDAR Escondido
DFHBMFSE DesprotegidoMDT
DFHBMPRF ProtegidoMDT
DFHBMASF PuladoMDT
DFHUNNUM Desprotegido,Numrico,MDT
DFHUNINT Desprotegido,Numrico,BrilhanteeMDT
DFHEPI(DFHEIBLK)
Bloco de controle do CICS, onde algumas variveis do esto disponveis para
aplicao.
Varivel Descrio

EIBTIME Horadosistema
EIBDATE Datadosistema
EIBTRNID Cdigodatransao
EIBTRMID Cdigodoterminal
EIBTASKN Nmerodoservioativo(TASK)
EIBCPOSN Posiodocursor
EIBCALEN Tamanhodareadecomunicao
EIBAID ltimateclafunoacionada
EIBRESP CdigoderetornodoscomandosCICS
EIBDS Nomedoltimoarquivoacionado
PRGC??M
MENU
OPCOES
PRGC??i
INCLUSAO
ALUNO
OPCAO=01
PRGC??A
ALTERACAO
ALUNO
OPCAO=02
PRGC??C
CONSULTA
ALUNOS
OPCAO=04
PRGC??E
EXCLUSAO
ALUNO
OPCAO=03
SistemadeCadastrodeAlunos
PRGS??i
INCLUSAO
ALUNO
PRGS??A
ALTERACAO
ALUNO
PRGS??C
CONSULTA
ALUNOS
PRGS??E
EXCLUSAO
ALUNO
Este exerccio tem como objetivo a prtica de como capturar e enviar
informaes, utilizando navegao entre programas, atualizao de bases de
dados VSAM e DB2 em 2 camadas (Captao de dados e Acesso a Base de
Dados)
CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
35 36
MenuPrincipalPRGC??M

TELC??M MENU PRINCIPAL 19/02/2009 17:30


--------------------------------------------------------------------------


OPCAO
---------------------------------

01 INCLUSAO DO ALUNO

02 ALTERACAO DO ALUNO

03 EXCLUSAO DO ALUNO

04 CONSULTA ALUNO




OPCAO: __


--------------------------------------------------------------------------
ENTER = PROCESSA F3/CLEAR = SAIDA
MSG: ____________________________________________________________________

Comandoseatributosutilizados.
CICS
HANDLEABEND
SENDMAP
RECEIVEMAP
BIFDEEDIT
XCTL
ASSIGN
ASKTIME
FORMATTIME
SENDTEXT
RETURNTRANSID
RETURN
Atributos
DFHBMFSE-DesprotegidoMDTligado
DFHBMASF-ProtegidopuladoMDTligado

Fasesdoprograma:
1-Formataeexibeatelapelaprimeiravez
2-Recebeatelaeconsisteoopodigitadanavegandoparaoutrosprogramas,
TeclasFunes:
Enter=Processa;F3/CLEAR=Finalizaoservio

Enunciadodoprograma

000-00-INICIO.
Setarcontroledecancelamentodoprograma
SeNOfoipassadoareadecomunicao
Processar100-00-FASE-1
SeNo
Processar200-00-FASE-2
Fim-se.
100-00-FASE-1,
Limpartelacomlow-value
Mover2paraFASE
Moverdataehoraparaatela
Posicionarocursornaopodatela
Exibirtela
SairdoprogramacomatransaoT??M.
200-00-FASE-2.
Recebertela
SeTeclapressionadafor<>ENTER,PF3ouCLEAR
Posicionarocursornaopodatela
ExibirtelacomamensagemTECLAINVALIDA
EncerraroprogramacomatransaoT??M
Fim-se
SeTeclaacionadaforPF3ouCLEAR
ExibiramensagemFIMDESERVIO
Encerraratransao
Fim-se
Processar300-00-transferir-controle.

CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
37 38
300-00-transferir-controle.
Deseditaropodatela
Selecionaropodatela
Caso01Inclusodealuno
TransferirparaoprogramaPRGC??i
Caso02-AlteraodeAluno
TransferirparaoprogramaPRGC??A
Caso03-ExclusodeAluno
TransferirparaoprogramaPRGC??E
Caso04-Consultadealuno
TransferirparaoprogramaPRGC??C
CasoOutro
Posicionarocursornaopodatela
ExibirMapacomamensagemOPCAOINVALIDA
SairdoprogramacomatransaoT??M
Fim-selecionar.

Codificaodoprogramademenudeopes
1 1 2 2 3 3 4 4 5 5 6 6 7 7
1......7 8...2..5....0....5....0....5....0....5....0....5....0....5....0.2
*----------------------------------------------------------------*
IDENTIFICATION DIVISION.
PROGRAM-ID. PRGC??M.
*----------------------------------------------------------------*
* 1.OBJETIVO MENU PRINCIPAL DO CADASTRO DE ALUNOS TRANSFERE O *
* CONTROLE PARA OUTROS PROGRAMAS CONFORME OPCAO DIGITADA *
*----------------------------------------------------------------*
ENVIRONMENT DIVISION.
*----------------------------------------------------------------*
CONFIGURATION SECTION.
SPECIAL-NAMES.
DECIMAL-POINT IS COMMA.
*----------------------------------------------------------------*
DATA DIVISION.
*----------------------------------------------------------------*
WORKING-STORAGE SECTION.
*----------------------------------------------------------------*
* +--------------------------------------------------------+
*-------| TECLAS FUNCOES ESTE BOOK CONTERA OS VALORES DAS TECLAS |
* +--------------------------------------------------------+
COPY DFHAID.

1 1 2 2 3 3 4 4 5 5 6 6 7 7
1......7 8...2..5....0....5....0....5....0....5....0....5....0....5....0.2
*----------------------------------------------------------------*
DATA DIVISION.
*----------------------------------------------------------------*
WORKING-STORAGE SECTION.
*----------------------------------------------------------------*
* +--------------------------------------------------------+
*-------| TECLAS FUNCOES ESTE BOOK CONTERA OS VALORES DAS TECLAS |
* +--------------------------------------------------------+
COPY DFHAID.
* +--------------------------------------------------------+
* | ATRIBUTOS DE CAMPOS |
*-------| ESTE BOOK CONTERA OS NOMES DOS ATRIBUTOS DOS CAMPOS |
* +--------------------------------------------------------+
COPY DFHBMSCA.
* +--------------------------------------------------------+
* | MAPA LOGICO DO MENU PRINCIPAL |
*-------| BOOK COBOL QUE FOI GERADO APOS A COMPILACAO DO BMS |
* +--------------------------------------------------------+
COPY TELC??M.

*--------------------------------------------------------+
* | ATRIBUTOS DE CAMPOS |
*-------| ESTE BOOK CONTERA OS NOMES DOS ATRIBUTOS DOS CAMPOS |
* +--------------------------------------------------------+
COPY DFHBMSCA.
* +--------------------------------------------------------+
* | MAPA LOGICO DO MENU PRINCIPAL |
*-------| BOOK COBOL QUE FOI GERADO APOS A COMPILACAO DO BMS |
* +--------------------------------------------------------+
COPY TELC??M.

*----------------------------------------------------------------*
01 WK-MENSAGEM PIC X(80) VALUE SPACES.
01 WK-ABEND PIC X(04) VALUE SPACES.
01 WK-PROGRAMA PIC X(08) VALUE SPACES.
01 WK-TEMPO PIC S9(15) COMP-3 VALUE ZEROS.
01 WK-DATA PIC X(10) VALUE SPACES.
01 WK-HORA PIC X(05) VALUE SPACES.
01 CURSOR PIC S9(04) COMP VALUE -1.
01 CA-COMMAREA.
05 CA-FASE PIC X(01) VALUE SPACES.

Codificaodoprogramademenudeopes-Continuao
CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
39 40

Codificaodoprogramademenuopes-Continuao
1 1 2 2 3 3 4 4 5 5 6 6 7 7
1......7 8...2..5....0....5....0....5....0....5....0....5....0....5....0.2
*----------------------------------------------------------------*
LINKAGE SECTION.
*----------------------------------------------------------------*
* +------------------------------------------------------+
* | USAMOS ESTE TIPO DE DEFINICAO DA LINKAGE POIS |
*---------| PODEMOS RECEBER QUALQUER TAMANHO (ATE 4096 BYTES), |
* | SEM PRECISAR ALTERAR O TAMANHO DA LINKAGE |
* +------------------------------------------------------+
01 DFHCOMMAREA.
05 FILLER PIC X(01)
OCCURS 32768 DEPENDING ON EIBCALEN.
*----------------------------------------------------------------*
PROCEDURE DIVISION.
*----------------------------------------------------------------*
000-00-INICIAR-PROGRAMA.
*----------------------------------------------------------------*
EXEC CICS HANDLE ABEND LABEL(999-97-TRATAR-ABEND) END-EXEC
* +--------------------------------------------------------+
* | QUANDO O EIBCALEN FOR ZEROS, SIGNIFICA QUE SEU |
*-------| PROGRAMA ESTA SENDO EXECUTADO PELA PRIMEIRA VEZ OU |
* | FOI CHAMADO POR OUTRO PROGRAMA QUE NO PASSOU COMMAREA |
* +--------------------------------------------------------+
IF EIBCALEN EQUAL ZEROS
INITIALIZE CA-COMMAREA
MOVE '1' TO CA-FASE
ELSE
MOVE DFHCOMMAREA TO CA-COMMAREA
IF EIBTRNID NOT EQUAL 'T??M'
MOVE '1' TO CA-FASE
END-IF
END-IF
EVALUATE CA-FASE
WHEN '1'
PERFORM 100-00-FASE-UM
WHEN '2'
PERFORM 200-00-FASE-DOIS
END-EVALUATE.
*----------------------------------------------------------------*
100-00-FASE-UM.
*----------------------------------------------------------------*
MOVE LOW-VALUES TO TELC??MI
MOVE CURSOR TO OPCAOL
MOVE DFHBMFSE TO OPCAOA
MOVE '2' TO CA-FASE
PERFORM 710-00-EXIBE-TELA
PERFORM 999-98-SAIDA-COM-TRANSID.
1 1 2 2 3 3 4 4 5 5 6 6 7 7
1......7 8...2..5....0....5....0....5....0....5....0....5....0....5....0.2
*----------------------------------------------------------------*
200-00-FASE-DOIS.
*----------------------------------------------------------------*
PERFORM 700-00-RECEBE-TELA
EVALUATE EIBAID
WHEN DFHENTER
PERFORM 210-00-CONSISTE-OPCAO
WHEN DFHPF3
PERFORM 220-00-FIM-PROGRAMA
WHEN DFHCLEAR
PERFORM 220-00-FIM-PROGRAMA
WHEN OTHER
PERFORM 230-00-TECLA-INVALIDA
END-EVALUATE.
*----------------------------------------------------------------*
210-00-CONSISTE-OPCAO.
*----------------------------------------------------------------*
EXEC CICS BIF DEEDIT FIELD(OPCAOI) END-EXEC
EVALUATE OPCAOI
WHEN '01'
MOVE 'PRGC??i' TO WK-PROGRAMA
PERFORM 210-10-TRANSFERE-CONTROLE
WHEN '02'
MOVE PRGC??A' TO WK-PROGRAMA
PERFORM 210-10-TRANSFERE-CONTROLE
WHEN '03'
MOVE 'PRGC??E TO WK-PROGRAMA
PERFORM 210-10-TRANSFERE-CONTROLE
WHEN '04'
MOVE 'PRGC??C' TO WK-PROGRAMA
PERFORM 210-10-TRANSFERE-CONTROLE
WHEN OTHER
PERFORM 210-20-OPCAO-INVALIDA
END-EVALUATE.
*----------------------------------------------------------------*
210-10-TRANSFERE-CONTROLE.
*----------------------------------------------------------------*
EXEC CICS XCTL PROGRAM (WK-PROGRAMA)
COMMAREA(CA-COMMAREA)
NOHANDLE
END-EXEC.

Codificaodoprogramademenudeopes-Continuao
CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
41 42

Codificaodoprogramademenuopes-Continuao
1 1 2 2 3 3 4 4 5 5 6 6 7 7
1......7 8...2..5....0....5....0....5....0....5....0....5....0....5....0.2
*----------------------------------------------------------------*
210-20-OPCAO-INVALIDA.
*----------------------------------------------------------------*
MOVE DFHBMFSE TO OPCAOA
MOVE CURSOR TO OPCAOL
MOVE 'OPCAO INVALIDA' TO MENSO
PERFORM 710-00-EXIBE-TELA
PERFORM 999-98-SAIDA-COM-TRANSID.
*----------------------------------------------------------------*
220-00-FIM-PROGRAMA.
*----------------------------------------------------------------*
MOVE 'FIM DE SERVICO' TO WK-MENSAGEM
PERFORM 720-00-EXIBE-TEXTO
PERFORM 999-99-SAIDA-SEM-TRANSID.
*----------------------------------------------------------------*
230-00-TECLA-INVALIDA.
*----------------------------------------------------------------*
MOVE DFHBMFSE TO OPCAOA
MOVE CURSOR TO OPCAOL
MOVE 'TECLA INVALIDA' TO MENSO
PERFORM 710-00-EXIBE-TELA
PERFORM 999-98-SAIDA-COM-TRANSID.
*----------------------------------------------------------------*
700-00-RECEBE-TELA.
*----------------------------------------------------------------*
EXEC CICS RECEIVE MAP ('TELC??M')
MAPSET('TELC??M')
INTO (TELC??MI)
NOHANDLE
END-EXEC.
*----------------------------------------------------------------*
710-00-EXIBE-TELA.
*----------------------------------------------------------------*
PERFORM 730-00-PESQUISA-DATA-HORA
EXEC CICS SEND MAP ('TELC??M')
MAPSET('TELC??M')
FROM (TELC??MI)
FREEKB
FRSET
ERASE
ALARM
CURSOR
NOHANDLE
END-EXEC.
1 1 2 2 3 3 4 4 5 5 6 6 7 7
1......7 8...2..5....0....5....0....5....0....5....0....5....0....5....0.2
*----------------------------------------------------------------*
720-00-EXIBE-TEXTO.
*----------------------------------------------------------------*
EXEC CICS SEND TEXT FROM(WK-MENSAGEM)
ERASE
FREEKB
ALARM
NOHANDLE
END-EXEC.
*----------------------------------------------------------------*
730-00-PESQUISA-DATA-HORA.
*----------------------------------------------------------------*
EXEC CICS ASKTIME ABSTIME (WK-TEMPO) END-EXEC
EXEC CICS FORMATTIME ABSTIME (WK-TEMPO)
DDMMYY (WK-DATA)
DATESEP ('/')
TIME (WK-HORA)
TIMESEP (':')
END-EXEC
MOVE WK-DATA TO DATASISO
MOVE WK-HORA TO HORASISO.
*----------------------------------------------------------------*
999-97-TRATAR-ABEND.
*----------------------------------------------------------------*
EXEC CICS HANDLE ABEND CANCEL END-EXEC
EXEC CICS ASSIGN ABCODE(WK-ABEND) END-EXEC
MOVE 'OCORREU UM ERRO NO APLICATIVO - CODIGO = '
TO WK-MENSAGEM
MOVE WK-ABEND TO WK-MENSAGEM(42:4)
PERFORM 720-00-EXIBE-TEXTO
PERFORM 999-99-SAIDA-SEM-TRANSID.
*----------------------------------------------------------------*
999-98-SAIDA-COM-TRANSID.
*----------------------------------------------------------------*
EXEC CICS RETURN TRANSID ('T??M')
COMMAREA(CA-COMMAREA)
END-EXEC.
*----------------------------------------------------------------*
999-99-SAIDA-SEM-TRANSID.
*----------------------------------------------------------------*
EXEC CICS RETURN END-EXEC.
Codificaodoprogramademenudeopes-Continuao
CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
43 44

Fasesdoprograma:
Fase1-Formataeexibeatelapelaprimeiravez
Fase2-Recebeatelaeconsisteteclaacionadaechamaoprogramadeconsulta
Fase3-Recebeatelaeconsisteteclaacionadaechamaoprogramadeincluso.
TeclasFunes:
Enter=Processa;F3/CLEAR=Voltaparaomenu;F5=Limpaosdadosdatela

000-00-NICIAR.
Setarcontroledecancelamentodoprograma
SeNOfoipassadaareadecomunicao
TransferircontroleparaoMenudeopes(PRGC??M)
Fim-se
Moverreadecomunicaoparaareadoprograma
Setransaofordiferentede"T??i"
Mover1paraFASE
Fim-se
SelecionarFASE
Caso1
Proceder100-00--FASE-UM
Caso2
Proceder200-00-FASE-DOIS
Caso3
Proceder300-00-FASE-TRES
Fim-Selecionar.
100-00-FASE-UM.
Limparatelacomlow-values
Posicionarocursornamatriculadatela
Desprotegeramatriculaetipodearquivodatela
Protegernomeenascimentodatela
MoverINFORMARAMATRICULADOALUNOETIPODEARQUIVOpara
mensagemdatela
Exibirtela
Mover2paraFASE
Sairdoprogramacomatransao"T??i".

TELC??i INCLUSAO DE ALUNO 19/02/2009 17:30


--------------------------------------------------------------------------





MATRICULA.: ______ TIPO ARQUIVO: _

NOME......: __________________________________

NASCIMENTO: __________









-------------------------------------------------------------------------
ENTER = CONFIRMA F3/CLEAR = VOLTA MENU F5 = LIMPAR
MSG: ____________________________________________________________________

InclusodeAluno-PRGC??i
CICS
HANDLEABEND
SENDMAP
RECEIVEMAP
BIFDEEDIT
XCTL
ASSIGN
ASKTIME
FORMATTIME
SENDTEXT
RETURNTRANSID
RETURN
LINK

Atributos
DFHBMFSE-DesprotegidoMDTligado
DFHBMASF-ProtegidopuladoMDTligado

CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
45 46

Alimentarareadecomunicaocoma2camada(COMMAREA)
Tipoarquivo=Tipodearquivodatela
Matricula=Matriculadatela
Chamaroprogramadeconsulta(PRGS??C)
Seocdigoderetornodareadecomunicaofor0
Movematricula,Tipodearquivo,nomeenascimentodareade
comunicaoparatela
Posicionarocursornamatriculadatela
Desprotegeramatriculaetipodearquivodatela
Protegernomeenascimentodatela
MoverALUNOJEXISTENTEparaamensagemdatrela
Exibirtela
Sairdoprogramacomatransao"T??i"
Fim-se
Limparnomeenascimentodatela
Posicionarocursornonomedatela
Protegeramatriculaetipodearquivodatela
Desprotegernomeenascimentodatela
MoverINFORMARNOMEENASCIMENTOparaamensagemdatela
Exibirtela
Mover3paraFASE
Sairdoprogramacomatransao"T??i"

300-00-FASE-TRES.
Recebertela
SelecionarTeclaAcionada
CasoPF3ouCLEAR
TransferircontroleparaoMenudeopes(PRGC??M)
CasoTeclaPF5
Proceder100-00-FASE-UM
CasoENTER
Proceder300-10-INCLUSAO-ALUNO
CasoOutro
Proceder400-00-TECLA-INVALIDA
Fim-Selecionar.
200-00-FASE-DOIS.
Recebertela
SelecionarTeclaAcionada
CasoTeclaacionada=PF3ouCLEAR
TransferircontroleparaoMenudeopes(PRGC??M)
CasoTeclaacionada=PF5
Proceder100-00-FASE-UM
CasoTeclaacionada=ENTER
Proceder200-10-CHECAR-MATRICULA-TIPO-ARQUIVO
CasoOutro
Proceder400-00-TECLA-INVALIDA
Fim-Selecionar.

200-10-CHECAR-MATRICULA-TIPO-ARQUIVO.
DeseditaraMatrcula
Seamatrcula=zeros
MoverOBRIGATORIOINFORMARAMATRICULApara
mensagemdatela
Posicionarocursornamatriculadatela
Desprotegeramatriculaetipodearquivodatela
Protegernomeenascimentodatela
Exibirtela
Sairdoprogramacomatransao"T??i"
Fim-se
SeatipodearquivodiferentedeD(AcessoDB2)eV(AcessoVSAM)
MoverOBRIGATORIOINFORMARTIPODEARQUIVOpara
mensagemdatela
Posicionarocursornotipodearquivodatela
Desprotegeramatriculaetipodearquivodatela
Protegernomeenascimentodatela
Exibirtela
Sairdoprogramacomatransao"T??i"
Fim-se

CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
47 48

300-10-INCLUSAO-ALUNO.
Alimentarareadecomunicaocoma2camada(COMMAREA)
Tipoarquivo=Tipodearquivodatela
Matricula=Matriculadatela
Nome=Nomedatela
Nascimento=Nascimentodatela
Chamaroprogramadeincluso(PRGS??i)
SecampoderetornodeerrodaCOMMAREAfor0
Proteger matricula, tipo de arquivo, nome e nascimento da tela
Mover INCLUSAO EFETUADA COM SUCESSO
para mensagem da tela
Exibir tela
Sair do programa com a transao "T??i"
Fim-se
Posicionar o cursor no MATRICULA
Proteger matricula, tipo de arquivo, nome e nascimento da tela
Mover mensagem da rea de comunicao (COMMAREA) para
mensagem da tela
Sair do programa com a transao "T??i"
400-00-TECLA-INVALIDA.
SeFase=2
Desprotegeramatricula,tipoarquivodatela
Protegernomeenascimentodatela
Seno
Protegermatricula,tipoarquivodatela
Desprotegernomenascimentodatela
Fim-se
MoverTECLAINVALIDAparamensagemdatela
Exibirtela
Sairdoprogramacomatransao"T??i".

CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
49 50

TELC??A ALTERACAO DE ALUNO 19/02/2009 17:30


--------------------------------------------------------------------------





MATRICULA.: ______ TIPO ARQUIVO: _

NOME......: __________________________________

NASCIMENTO: __________









-------------------------------------------------------------------------
ENTER = CONFIRMA F3/CLEAR = SAIDA F5 = LIMPAR
MSG: ____________________________________________________________________

AlteraodeAlunoPRGC??A
CICS
HANDLEABEND
SENDMAP
RECEIVEMAP
BIFDEEDIT
XCTL
ASSIGN
ASKTIME
FORMATTIME
SENDTEXT
RETURNTRANSID
RETURN
LINK

Atributos
DFHBMFSE-DesprotegidoMDTligado
DFHBMASF-ProtegidopuladoMDTligado

Fasesdoprograma:
Fase1-Formataeexibeatelapelaprimeiravez
Fase2-Recebeatelaeconsisteteclaacionadaechamaoprogramadeconsulta
Fase3-Recebeatelaeconsisteteclaacionadaechamaoprogramadealterao
TeclasFunes:
Enter=Processa;F3/CLEAR=Voltaparaomenu;F5=Limpaosdadosdatela

000-00-NICIAR.
Setarcontroledecancelamentodoprograma
SeNOfoipassadaareadecomunicao
TransferircontroleparaoMenudeopes(PRGC??M)
Fim-se
Moverreadecomunicaoparaareadoprograma
Setransaofordiferentede"T??A"
Mover1paraFASE
Fim-se
SelecionarFASE
Caso1
Proceder100-00--FASE-UM
Caso2
Proceder200-00-FASE-DOIS
Caso3
Proceder300-00-FASE-TRES
Fim-Selecionar.
100-00-FASE-UM.
Limparatelacomlow-values
Posicionarocursornamatriculadatela
Desprotegeramatriculaetipodearquivodatela
Protegernomeenascimentodatela
MoverINFORMARAMATRICULADOALUNOETIPODEARQUIVOpara
mensagemdatela
Exibirtela
Mover2paraFASE
Sairdoprogramacomatransao"T??A".

CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
51 52

200-00-FASE-DOIS.
Recebertela
SelecionarTeclaAcionada
CasoTeclaacionada=PF3ouCLEAR
TransferircontroleparaoMenudeopes(PRGC??M)
CasoTeclaacionada=PF5
Proceder100-00-FASE-UM
CasoTeclaacionada=ENTER
Proceder200-10-CHECAR-MATRICULA-TIPO-ARQUIVO
CasoOutro
Proceder400-00-TECLA-INVALIDA
Fim-Selecionar.

200-10-CHECAR-MATRICULA-TIPO-ARQUIVO.
DeseditaraMatrcula
Seamatrcula=zeros
MoverOBRIGATORIOINFORMARAMATRICULApara
mensagemdatela
Posicionarocursornamatriculadatela
Desprotegeramatriculaetipodearquivodatela
Protegernomeenascimentodatela
Exibirtela
Sairdoprogramacomatransao"T??A"
Fim-se
SeatipodearquivodiferentedeD(AcessoDB2)eV(AcessoVSAM)
MoverOBRIGATORIOINFORMARTIPODEARQUIVOpara
mensagemdatela
Posicionarocursornotipodearquivodatela
Desprotegeramatriculaetipodearquivodatela
Protegernomeenascimentodatela
Exibirtela
Sairdoprogramacomatransao"T??A"
Fim-se

Alimentarareadecomunicaocoma2camada(COMMAREA)
Tipoarquivo=Tipodearquivodatela
Matricula=Matriculadatela
Chamaroprogramadeconsulta(PRGS??C)
Seocdigoderetornodareadecomunicaofor0
Movematricula,Tipodearquivo,nomeenascimentodareade
comunicaoparatela
Posicionarocursornonomedatela
Desprotegeranomeenascimentodatela
Protegermatriculaetipodearquivodatela
MoverALTERARNOMEENASCIMENTOparaamensagemdatrela
Exibirtela
Mover3paraFASE
Sairdoprogramacomatransao"T??A"
Fim-se
Limparnomeenascimentodatela
Posicionarocursornamatriculadatela
Desprotegeramatriculaetipodearquivodatela
Protegernomeenascimentodatela
Movermensagemderetornodareadecomunicaoparaamensagemdatela
Exibirtela
Sairdoprogramacomatransao"T??A"

300-00-FASE-TRES.
Recebertela
SelecionarTeclaAcionada
CasoPF3ouCLEAR
TransferircontroleparaoMenudeopes(PRGC??M)
CasoTeclaPF5
Proceder100-00-FASE-UM
CasoENTER
Proceder300-10-ALTERACAO-ALUNO
CasoOutro
Proceder400-00-TECLA-INVALIDA
Fim-Selecionar.
CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
53 54

300-10-ALTERACAO-ALUNO.
Alimentarareadecomunicaocoma2camada(COMMAREA)
Tipoarquivo=Tipodearquivodatela
Matricula=Matriculadatela
Nome=Nomedatela
Nascimento=Nascimentodatela
Chamaroprogramadeincluso(PRGS??A)
SecampoderetornodeerrodaCOMMAREAfor0
Proteger matricula, tipo de arquivo, nome e nascimento da tela
Mover ALTERACAO EFETUADA COM SUCESSO
para mensagem da tela
Exibir tela
Sair do programa com a transao "T??A"
Fim-se
Posicionar o cursor no MATRICULA
Proteger matricula, tipo de arquivo, nome e nascimento da tela
Mover mensagem da rea de comunicao (COMMAREA) para
mensagem da tela
Sair do programa com a transao "T??A"
400-00-TECLA-INVALIDA.
SeFase=2
Desprotegeramatricula,tipoarquivodatela
Protegernomeenascimentodatela
Seno
Protegermatricula,tipoarquivodatela
Desprotegernomenascimentodatela
Fim-se
MoverTECLAINVALIDAparamensagemdatela
Exibirtela
Sairdoprogramacomatransao"T??A".

CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
55 56

TELC??E EXCLUSAO DE ALUNO 19/02/2009 17:30


--------------------------------------------------------------------------





MATRICULA.: ______ TIPO ARQUIVO: _

NOME......: __________________________________

NASCIMENTO: __________









-------------------------------------------------------------------------
ENTER = CONFIRMA F3/CLEAR = SAIDA F5 = LIMPAR
MSG: ____________________________________________________________________

CICS
HANDLEABEND
SENDMAP
RECEIVEMAP
BIFDEEDIT
XCTL
ASSIGN
ASKTIME
FORMATTIME
SENDTEXT
RETURNTRANSID
RETURN
LINK

Atributos
DFHBMFSE-DesprotegidoMDTligado
DFHBMASF-ProtegidopuladoMDTligado

ExclusodeAlunoPRGC??E Fasesdoprograma:
Fase1-Formataeexibeatelapelaprimeiravez
Fase2-Recebeatelaeconsisteteclaacionadaechamaoprogramadeconsulta
Fase3-Recebeatelaeconsisteteclaacionadaechamaoprogramaexcluso
TeclasFunes:
Enter=Processa;F3/CLEAR=Voltaparaomenu;F5=Limpaosdadosdatela

000-00-NICIAR.
Setarcontroledecancelamentodoprograma
SeNOfoipassadaareadecomunicao
TransferircontroleparaoMenudeopes(PRGC??M)
Fim-se
Moverreadecomunicaoparaareadoprograma
Setransaofordiferentede"T??E"
Mover1paraFASE
Fim-se
SelecionarFASE
Caso1
Proceder100-00--FASE-UM
Caso2
Proceder200-00-FASE-DOIS
Caso3
Proceder300-00-FASE-TRES
Fim-Selecionar.
100-00-FASE-UM.
Limparatelacomlow-values
Posicionarocursornamatriculadatela
Desprotegeramatriculaetipodearquivodatela
Protegernomeenascimentodatela
MoverINFORMARAMATRICULADOALUNOETIPODEARQUIVOpara
mensagemdatela
Exibirtela
Mover2paraFASE
Sairdoprogramacomatransao"T??E".

CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
57 58

200-00-FASE-DOIS.
Recebertela
SelecionarTeclaAcionada
CasoTeclaacionada=PF3ouCLEAR
TransferircontroleparaoMenudeopes(PRGC??M)
CasoTeclaacionada=PF5
Proceder100-00-FASE-UM
CasoTeclaacionada=ENTER
Proceder200-10-CHECAR-MATRICULA-TIPO-ARQUIVO
CasoOutro
Proceder400-00-TECLA-INVALIDA
Fim-Selecionar.

200-10-CHECAR-MATRICULA-TIPO-ARQUIVO.
DeseditaraMatrcula
Seamatrcula=zeros
MoverOBRIGATORIOINFORMARAMATRICULApara
mensagemdatela
Posicionarocursornamatriculadatela
Desprotegeramatriculaetipodearquivodatela
Protegernomeenascimentodatela
Exibirtela
Sairdoprogramacomatransao"T??E"
Fim-se
SeatipodearquivodiferentedeD(AcessoDB2)eV(AcessoVSAM)
MoverOBRIGATORIOINFORMARTIPODEARQUIVOpara
mensagemdatela
Posicionarocursornotipodearquivodatela
Desprotegeramatriculaetipodearquivodatela
Protegernomeenascimentodatela
Exibirtela
Sairdoprogramacomatransao"T??E"
Fim-se

Alimentarareadecomunicaocoma2camada(COMMAREA)
Tipoarquivo=Tipodearquivodatela
Matricula=Matriculadatela
Chamaroprogramadeconsulta(PRGS??C)
Seocdigoderetornodareadecomunicaofor0
Movematricula,Tipodearquivo,nomeenascimentodareade
comunicaoparatela
Posicionarocursornonomedatela
Protegeramatriculaetipodearquivo,nomeenascimentodatela
MoverTECLEENTERPARAEXCLUIRALUNOparaamensagemdatrela
Exibirtela
Mover3paraFASE
Sairdoprogramacomatransao"T??E"
Fim-se
Limparnomeenascimentodatela
Posicionarocursornamatriculadatela
Desprotegeramatriculaetipodearquivodatela
Protegernomeenascimentodatela
Movermensagemderetornodareadecomunicaoparaamensagemdatela
Exibirtela
Sairdoprogramacomatransao"T??E"

300-00-FASE-TRES.
Recebertela
SelecionarTeclaAcionada
CasoPF3ouCLEAR
TransferircontroleparaoMenudeopes(PRGC??M)
CasoTeclaPF5
Proceder100-00-FASE-UM
CasoENTER
Proceder300-10-EXCLUSAO-ALUNO
CasoOutro
Proceder400-00-TECLA-INVALIDA
Fim-Selecionar.
CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
59 60

300-10-EXCLUSAO-ALUNO.
Alimentarareadecomunicaocoma2camada(COMMAREA)
Tipoarquivo=Tipodearquivodatela
Matricula=Matriculadatela
Chamaroprogramadeincluso(PRGS??E)
SecampoderetornodeerrodaCOMMAREAfor0
Proteger matricula, tipo de arquivo, nome e nascimento da tela
Mover EXCLUSAO EFETUADA COM SUCESSO
para mensagem da tela
Exibir tela
Sair do programa com a transao "T??E"
Fim-se
Posicionar o cursor no MATRICULA
Proteger matricula, tipo de arquivo, nome e nascimento da tela
Mover mensagem da rea de comunicao (COMMAREA) para
mensagem da tela
Sair do programa com a transao "T??E
400-00-TECLA-INVALIDA.
SeFase=2
Desprotegeramatricula,tipoarquivodatela
Protegernomeenascimentodatela
Seno
Protegermatricula,tipoarquivodatela
Desprotegernomenascimentodatela
Fim-se
MoverTECLAINVALIDAparamensagemdatela
Exibirtela
Sairdoprogramacomatransao"T??E".

CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
61 62

TELC??C CONSULTA DE ALUNO 19/02/2009 17:30


--------------------------------------------------------------------------





MATRICULA.: ______ TIPO ARQUIVO: _

NOME......: __________________________________

NASCIMENTO: __________









-------------------------------------------------------------------------
ENTER = CONSULTA F3/CLEAR = SAIDA F5 = LIMPAR F7 = ANTERIOR F8 = PROXIMO
MSG: ____________________________________________________________________

CICS
HANDLEABEND
SENDMAP
RECEIVEMAP
BIFDEEDIT
XCTL
ASSIGN
ASKTIME
FORMATTIME
SENDTEXT
RETURNTRANSID
RETURN
LINK

Atributos
DFHBMFSE-DesprotegidoMDTligado
DFHBMASF-ProtegidopuladoMDTligado

Fasesdoprograma:
Fase1-Formataeexibeatelapelaprimeiravez
Fase2-Recebeatelaeconsisteteclaacionadaechamaoprogramaconsulta.
TeclasFunes:
Enter=Processa;F3/CLEAR=Voltaparaomenu;F5=Limpaosdadosdatela
F7=AlunoanteriorF8=Prximoaluno

100-00-PROGRAMA.
Setarcontroledecancelamentodoprograma
SeNOfoipassadaareadecomunicao
TransferircontroleparaoMenudeopes(PRGC??M)
Fim-se
Moverreadecomunicaoparaareadoprograma
SetransaofordiferentedeT??C
Mover1paraFASE
Fim-se
SelecionarFASE
Caso1
Proceder100-00-FASE-UM
Caso2
Proceder200-00-FASE-DOIS
Fim-Selecionar.
100-00-FASE-UM.
Limparatelacomlow-values
PosicionarocursornaMATRICULA
Desprotegeramatriculaetipodearquivodatela
Protegernomeenascimentodatela
Mover2paraFASE
MoverUSEATECLASPARACONSULTARparamensagemdatela
Exibirtela
SairdoprogramacomatransaoT??C.

ConsultadeAlunoPRGC??C
CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
63 64

200-00-FASE-DOIS.
Recebertela
SelecionarTeclaAcionada
CasoTeclaacionadaigualPF3ouCLEAR
TransferircontroleparaoMenudeopes(PRGC??M)
CasoTeclaacionadaigualPF5
Proceder100-00-FASE-UM
CasoTeclaacionadaigualENTER
MoverCparaFUNOdareadecomunicao
Proceder200-10-EXIBE-DADOS-ALUNO
CasoTeclaacionadaigualF7
Mover<paraFUNOdareadecomunicao
Proceder200-10-EXIBE-DADOS-ALUNO
CasoTeclaacionadaigualF8
Mover>paraFUNOdareadecomunicao
Proceder200-10-EXIBE-DADOS-ALUNO
CasoTeclaacionadanosejanenhumaacima
Proceder400-00-TECLA-INVALIDA
Fim-Selecionar.
200-10-EXIBE-DADOS-ALUNO.
Matricula=Matriculadatela
Tipoarquivo=Tipodearquivodatela
Chamaroprogramadeconsulta(PRGS??C)
Moverdadosderetorno(Matricula,NomeeNascimento)paratela
PosicionarocursornaMATRICULA
DesprotegeraMATRICULA,TIPOAEQUIVOeprotegerNOME
NASCIMENTO
Movermensagemderetornoparamensagemdatela
Exibirtela
SairdoprogramacomatransaoT??C

400-00-TECLA-INVALIDA.
SeFase=2
Desprotegeramatricula,tipoarquivoeprotegernomeenascimento
Seno
Protegermatricula,tipoarquivoedesprotegernomenascimento
Fim-se
MoverTECLAINVALIDAparamensagemdatela
Exibirtela
SairdoprogramacomatransaoT??C.
CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
65 66

Receberreadecomunicao
SelecionarFUNCAO
CasoC
SeTIPOARQUIVO=D
LerTBALUNOSpelamatrcula
Seno
LerALUNOSpelamatrcula
Fim-se
SeERROdeacesso
MoverERROAOACESSARALUNO+ERROparamensagem
Mover9paracdigoderetorno
Seno
SeINEXISTENTE
MoverALUNONOCADASTRADOparamensagem
Mover9paracdigoderetorno
Seno
SeTIPOARQUIVO=D
MoverdadosdaTBALUNOSparareadecomunicao
Seno
MoverdadosdoALUNOSparareadecomunicao
Fim-se
Fim-se
Fim-se
Caso<
SeTIPOARQUIVO=D
LerTBALUNOScommatrculaMENORquepassadanareade
comunicao
Seno
LerALUNOScommatrculaMENORquepassadanareade
comunicao
Fim-se
ConsultadadosdoalunoPRGS??C SeERROdeACESSO
MoverERROAOACESSARALUNO+ERROparamensagem
Mover9paracdigoderetorno
Seno
SeINEXISTENTE
MoverINICIODECONSULTAparamensagem
Mover0paracdigoderetorno
Seno
SeTIPOARQUIVO=D
MoverdadosdaTBALUNOSparareadecomunicao
Seno
MoverdadosdaALUNOSparareadecomunicao
Fim-se
Fim-se
Fim-se
Caso>
SeTIPOARQUIVO=D
LerTBALUNOScommatrculaMAIORquepassadanareade
comunicao
Seno
LerALUNOScommatrculaMAIORquepassadananareade
comunicao
Fim-se
SeERROdeacesso
MoverERROAOACESSARALUNO+ERROparamensagem
Mover9paracdigoderetorno
Seno
SeINEXISTENTE
MoverFIMDECONSULTAparamensagem
Mover0paracdigoderetorno
Seno
SeTIPOARQUIVO=D
MoverdadosdaTBALUNOSparareadecomunicao
Seno
MoverdadosdaALUNOSparareadecomunicao
Fim-se
Fim-se
Fim-se
Fim-selecionar.
Retornaraoprogramachamadorcomareadecomunicao
CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
67 68

Receberreadecomunicao
SeTIPOARQUIVO=D
MoverdadosdareadecomunicaoparaTBALUNOS
INSERIRTBALUNOS
Seno
MoverdadosdareadecomunicaoparaALUNOS
GRAVARALUNOS
Fim-se
SeERROdeacesso
MoverERRONAINCLUSAO+ERROparamensagem
Mover9paracdigoderetorno
Seno
MoverINCLUSAOBEMSUCEDIDAparamensagem
Mover0paracdigoderetorno
Fim-se
Retornaraoprogramachamadorcomareadecomunicao
InclusodadosdoalunoPRGCS0i
Receberreadecomunicao
SeTIPOARQUIVO=D
MoverdadosCOMMAREAparaTBALUNOS
ALTERARTBALUNOS
Seno
MoverdadosCOMMAREAparaALUNOS
REGRAVARALUNOS
Fim-se
SeERROdeacesso
MoverERRONAALTERACAO+ERROparamensagem
Mover9paracdigoderetorno
Seno
MoverALTERACAOBEMSUCEDIDAparamensagem
Mover0paracdigoderetorno
Fim-se
Retornaraoprogramachamadorcomareadecomunicao
AlteraodadosdoalunoPRGCS0A
Receberreadecomunicao
SeTIPOARQUIVO=D
EXCLUIRTBALUNOSpelamatricula
Seno
EXCLUIRALUNOSpelamatrcula
Fim-se
SeERROdeacesso
MoverERRONAEXCLUSAO+ERROparamensagem
Mover9paracdigoderetorno
Seno
MoverEXCLUSAOBEMSUCEDIDAparamensagem
Mover0paracdigoderetorno
Fim-se
Retornaraoprogramachamadorcomareadecomunicao
ExclusodoalunoPRGCS0E
CICSparaMainframe CICSparaMainframe
CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda CICS-TodosdireitosreservadosparaMainframeSchoolTreinamentosLtda
69 70

Layoutdosdados

CdigoConfigurao Contedo

Funo x(01) X=Consistnciadosdados


C=Consultacadastrodealuno
I=Inclusocadastroaluno
A=Alteraocadastroaluno
E=Exclusocadastroaluno
>=Prximoaluno
<=Alunoanterior
Cod-retorno x(01) 0=Funobemsucedida
9=Errodeacesso

Tipo-arquivo x(01) D=DB2V=VSAM
Mensagem x(80) Mensageminformativa

Matricula x(05) Matrculadoaluno


Nome x(35) Nomedoaluno
Nascimento x(10) Nascimentoaluno
Layoutdareadecomunicaoentreosmdulosdosistema-COMMAREA CdigoderetornodoVSAMEIBRESP-Continuaoi
CdigoderetornodoVSAM-EIBRESP
CdigoDescrio Cdigo Descrio

00 NORMAL 43 JIDERR
01 ERROR 44 QIDERR
02 RDATT 45 NOJBUFSP
03 WRBRK 46 DSSTAT
04 EOF 47 SELNERR
05 EODS 48 FUNCERR
06 EOC 49 UNEXPIN
EIBRESPDescrio EIBRESP Descrio

07 INBFMH 50 NOPASSBKRD
08 ENDINPT 51 NOPASSBKWR
09 NONVAL 53 SYSIDERR
10 NOSTART 54 ISCINVREQ
12 FILENOTFND 55 ENQBUSY
13 NOTFND 56 ENVDEFERR
14 DUPREC 57 IGREQCD
15 DUPKEY 58 SESSIONERR
16 INVREQ 59 SYSBUSY
17 IOERR 60 SESSBUSY
18 NOSPACE 61 NOTALLOC
19 NOTOPEN 62 CBIDERR
20 ENDFILE 63 INVEXITREQ
21 ILLOGIC 64 INVPARNSET
22 LENGERR 65 INVPARTN
23 QZERO 66 PARTNFAIL
24 SIGNAL 69 USERIDERR
25 QBUSY 70 NOTAUTH
26 ITEMERR 71 VOLIDERR
27 PGMIDERR 72 SUPPRESSED
28 TRANSIDERR 75 RESIDERR
29 ENDDATA 80 NOSPOOL
30 INVTSREQ 81 TERMERR
31 EXPIRED 82 ROLLEDBACK
32 RETPAGE 83 END
33 RTEFAIL 84 DISABLED
34 RTESOME 85 ALLOCERR
35 TSIOERR 86 STRELERR
36 MAPFAIL 87 OPENERR
37 INVERRTERM 88 SPOLBUSY
38 NVMPSZ 89 SPOLERR
39 IGREQID 90 NODEIDERR
40 OVERFLOW 91 TASKIDERR
41 INVLOC 92 TCIDERR
42 NOSTG 93 DSNNOTFND