Escolar Documentos
Profissional Documentos
Cultura Documentos
CICS
Customer Information Control System
Comandos, Sintaxe, Regras e Procedimentos
Exemplos de programas e Pensamentos
Segunda edição
São Paulo
2013
Carlos J E de campos, 2013
Capa: Alexandra Hardt Carlini
Diagramação: Carlos J E de Campos
Revisão: Neusa Pallione
É proibida a reprodução total ou parcial desta obra, de qualquer forma ou por qualquer meio
sem a autorização prévia e por escrito do autor. A violação dos Direitos Autorais (Lei n.º
9610/98) é crime estabelecido pelo artigo 184 do Código Penal.
2013
Todos os direitos desta obra pertencem a
Carlos J E de Campos
www.carloscamposinfo.com
CICS
Agradecimentos
Agradeço à minha filhota, Vanessa Soares de Campos, por ser a minha fonte de esperança e
por mostrar compreensão e paciência em muitos momentos da nossa vida.
Agradeço, também, à Ana Maria Alves Justino, pelo apoio e incentivo para a criação desta
obra.
Agradeço aos meus pais Alice de Assunção Esteves Costa e José Manuel Lopes Moreira de
Campos, por terem-me dado a vida, educação, formação moral e muito apoio.
Agradeço ao amigo Roberto Azem, que sempre esteve por perto, nos momentos de estudo e
naqueles em que precisava de ouvidos e conselhos.
Agradeço ao companheiro Benedito Aparecido Alves, pelo apoio que tem me dado nesta
segunda fase dos meus livros, acompanhando-me no dia a dia do trabalho, ouvindo-me e
apoiando-me com o seu conhecimento e sabedoria. Benê, como é conhecido, tem sido um
grande conselheiro.
Reflexão
“Para adquirir conhecimento é preciso estudar, para adquirir sabedoria é preciso observar.”
Autor: William Arthur Ward
www.carloscamposinfo.com Página 3
Não estamos aqui para pagar nem
sobreviver, mas sim, para vencer,
adquirindo saber.
&
Usemos o conhecimento com ética e moral.
CICS
Introdução
O CICS (Customer Information Control System) é um produto (software, sistema) da IBM
composto de vários módulos, programas de gerenciamento, de comunicação e
gerenciamento de dispositivos, execução de programas e da transmição de dados entre
terminal-programa-terminal. É um aplicativo, que é executado, com o objetivo de gerenciar
as solicitações das aplicações e, deste modo, fornecer meios próprios para controlar as
entradas e saídas de dados do sistema operacional garantindo a integridade dos dados para
o alto volume de solicitações que podem ocorrer simultaneamente.
Funciona como um “sistema operacional” para carregar e controlar todos os programas
aplicativos de telas, os buffers de todos os arquivos abertos e compartilhados pelos
programas aplicativos, além das suas tabelas próprias para gerenciar todo o conjunto.
Para viabilizar este ambiente, o CICS controla todos os programas que estão interagindo com
os terminais, exibindo (mostrando) as telas e lendo os teclados, assim como todos os
arquivos usados por estes programas.
História
O CICS foi desenvolvido em 1968 e tornou-se programa produto da IBM em 1969. Já
completou 40 anos, consolidando sua posição no mercado, devido a sua constante evolução
e, hoje, é um produto importantíssimo para suportar a comunicação com a as aplicações da
WEB. Os sistemas de grandes empresas estão fornecendo seus sistemas, no ambiente WEB
por apresentar Telas (Interface) amigáveis (mais bonitas e com mais recursos), mas
mantendo seus dados e suas respectivas regras de negócio no ambiente mainframe. A sua
poderosa capacidade de administrar faz com que consiga controlar a execução de centenas
de aplicativos em tempo real e ao mesmo tempo.
Esta obra
Esta obra tem como objetivo passar para as pessoas que desejam conhecer o ambiente CICS
e, como utilizar a linguagem de programação COBOL dentro do CICS utilizada em ambientes
z/OS e OS/390, Mainframe da IBM. Oferece uma base teórica e prática, suficientemente boa,
para que o leitor domine a criação, manutenção e utilização em programas COBOL CICS. A
abordagem segue uma sequência, de forma que o leitor possa compreender como os dados
podem ser incluídos, lidos, alterados, excluídos e listados e, como cada comando trabalha.
Reflexão
“E conhecereis a verdade e a verdade vos libertará.”
João 8:32
www.carloscamposinfo.com Página 5
Os comandos são apresentados com a sua sintaxe básica e explicados a partir de pequenos
programas apresentados especificamente e criados para esse fim, que podem ser usados
para praticar e realizar testes.
Público-Alvo
As informações contidas neste livro podem ser aprendidas e aplicadas por qualquer pessoa
que deseje conhecer e programar em COBOL com o CICS.
Os conceitos, o método estruturado e as lógicas são apresentados numa ordem, como forma
de melhorar a compreensão e são acompanhados por figuras para ilustrar e aumentar a
clareza das informações. Com a finalidade de reforçar e consolidar o aprendizado, cada
comando é apresentado com a sua sintaxe básica e com um exemplo da sua aplicação e uso
na programação COBOL.
Pré-Requisitos
Para desenvolver sistemas comerciais em COBOL CICS que utilizem arquivos VSAM e banco
de dados DB2, é necessário conhecer a sua linguagem, a sua sintaxe e as suas regras, mas,
para elaborar programas nesta linguagem ou em outra, é preciso ter conhecimento sobre
lógica de programação. É somente com a lógica de programação que se conseguem elaborar
programas que atendam a algum propósito de negócio, com eficiência. Para que o leitor
possa tirar maior proveito dos conhecimentos apresentados neste livro, é aconselhável que
conheça:
✔Lógica de programação estruturada
✔Linguagem COBOL
✔Banco de dados DB2
É aconselhada a leitura do livro de “LÓGICA” do mesmo autor que explica, passo a passo, a
construção de algoritmos e de lógicas de programação, depois, o livro de COBOL e, em
seguinda o livro DB2.
Esta obra está aderente ao programa de formação de Especialista em Desenvolvimento de
Programação COBOL Mainframe, CMCPDS - Certified Mainframe COBOL Program
Development Specialist, fornecido pelo instituto ICPDUG - INTERNATIONAL COBOL
PROGRAM DEVELOPER USERS GROUP.
Para mais informações, visite o site www.carloscamposinfo.com, ou entre em contato
através do e-mail do autor: carlosjec@hotmail.com.
Reflexão
“Muitos homens iniciaram uma nova era na sua vida a partir da leitura de um livro”.
Autor: Henry Thoreau
CICS
www.carloscamposinfo.com Página 7
Metodologia dos cursos
O assunto novo é
apresentado ao aluno, Apresentar
através da apresentação de Conceito
SLIDES animados e coloridos
e tiradas as dúvidas sobre o
tópico. Para praticar o Rever Tirar
conhecimento novo, o aluno conceitos dúvidas
é solicitado a realizar o
exercício, no caso: criar
algoritmo ou programa. Consolidar Praticar
Após o tempo para criar a Exercícios exercícios
primeira solução, é
apresentado; via SLIDES
animados e coloridos, a Apresentar
solução do exercício, tirando Solução
todas as dúvidas possíveis.
Para consolidar e poder tirar novas dúvidas do tópico do conhecimento, são solicitados, em
média de dois a quatro exercícios na aula. A solução dos exercícios propostos é apresentada,
via SLIDES animados e coloridos. E para tentar consagrar o conhecimento, é solicitado, em
média de três a seis exercícios extras para o aluno fazer fora as horas das aulas. E, para tentar
tirar possíveis dúvidas remanescentes, são reservados os primeiros minutos de cada aula,
para tirar dúvidas.
Objetivo do método
Este método tem como objetivo alcançar os mais diversos indivíduos (visual, auditivo ou
cinestésico) para que tomem consciência dos conceitos. Todo o método está baseado na
indução do raciocínio, para que se crie a lógica necessária. Com isto, a energia necessária
gasta com o esforço para criar a lógica é gasta durante o treinamento. Depois de formado, o
individuo passa a raciocinar automaticamente com muito menor esforço. Por exemplo,
quando houver uma solicitação que seja necessária à criação de duas quebras, uma dentro
da outra, o raciocínio vem automaticamente e, à medida que vai elaborando a lógica, o seu
formato já vem no padrão aprendido.
Benefícios do método
Os benefícios do método aplicado podem se resumir no seguinte:
Ampliação das possibilidades de aprendizagem
Aumento do desempenho no raciocínio lógico
Acomodação crescente do conhecimento
Consolidação das estruturas lógicas
Facilidade de criar a solução lógica
CICS
Certificação para
desenvolvedor Mainframe
O instituto ICPDUG (INTERNATIONAL COBOL PROGRAM DEVELOPER USERS GROUP), para
valorizar a área de desenvolvimento de sistema, fornece o exame de certificação para
desenvolvedor COBOL Mainframe, com o objetivo de identificar o especialista em
desenvolvimento de sistemas COBOL Mainframe.
Objetivo da certificação
A certificação vem agregar valor para a empresa, na medida em que vai avaliar o
conhecimento para a necessidade específica que o profissional precisa ter, possibilitando a
criação de um quadro de profissionais altamente qualificados e nivelados com o objetivo de
planejar, definir e criar sistemas e programas com eficiência e qualidade.
E para o profissional, vem para valorizar a sua capacitação, a sua formação, diferenciando-o
dos demais profissionais, fornecendo-lhe as credencias de um profissional especialista,
aderente com as necessidades de conhecimento específico.
Como é a certificação
O certificado de Especialista em COBOL Mainframe, CMCPDS - Certified Mainframe COBOL
Program Development Specialist (Especialista em Desenvolvimento de Programação COBOL
Mainframe). O especialista máster recebe o título, após ter obtido todas as certificações para
as seguintes especialidades:
LÕGICA - Programação estruturada
COBOL - Linguagem de programação
DB2 - Sistema Gerenciador de Banco de Dados Relacional
CICS - Sistema Gerenciador de ambiente ONLINE
JCL - Linguagem de controle Batch
Reflexão
“Em algum lugar, algo incrível está esperando para ser descoberto.”
Autor: Carl Seagan
www.carloscamposinfo.com Página 9
Página deixada em branco
CICS
Sumário
Agradecimentos ...................................................................................3
Introdução ..........................................................................................5
Formação de especialista COBOL ...............................................................7
Metodologia dos cursos .......................................................................8
Objetivo do método ...........................................................................8
Benefícios do método .........................................................................8
Certificação para desenvolvedor Mainframe .................................................9
Objetivo da certificação ......................................................................9
Como é a certificação .........................................................................9
Sumário ........................................................................................... 11
Notação utilizada ................................................................................ 27
Como codificar subparâmetros ............................................................... 29
coluna .......................................................................................... 29
linha ............................................................................................ 29
literal .......................................................................................... 29
nomeáreadatahora ........................................................................... 29
nomeáreadedados ........................................................................... 29
nomeáreadomapaO .......................................................................... 29
nomeáreadomapaI ........................................................................... 29
nomeáreadoregistro ......................................................................... 30
nomearquivo .................................................................................. 30
nomecampo ................................................................................... 30
nomechavearquivo ........................................................................... 30
nomecondiçãoerro ........................................................................... 30
nomedeflinhats ............................................................................... 30
nomefilats ..................................................................................... 30
www.carloscamposinfo.com Página 11
nomemapset .................................................................................. 30
nomemapa .................................................................................... 31
nomeparagrafo ............................................................................... 31
nomeprograma ............................................................................... 31
nometransação ............................................................................... 31
nrodoitem ..................................................................................... 31
posição ......................................................................................... 31
tamanhoárea .................................................................................. 31
Introdução ao CICS .............................................................................. 33
O que é CICS .................................................................................. 34
Método de acesso VTAM .................................................................... 35
Controladores ............................................................................. 35
O que é processamento ON-LINE .......................................................... 36
Múltiplas execuções de um programa .................................................... 36
Como o programa é executado ............................................................ 37
Como o programa é terminado ............................................................ 37
Regras para programa COBOL.............................................................. 38
Funções do programa no ambiente Batch ............................................... 38
Funções do programa no ambiente On-Line ............................................. 39
Compilação .................................................................................... 39
Como entrar no ambiente CICS ............................................................ 39
Estrutura do CICS ............................................................................ 41
Arquitetura do CICS ...................................................................... 41
Uma visão da estrutura do CICS ........................................................ 42
Memória do CICS .......................................................................... 42
Núcleo gerenciador .......................................................................... 43
FCP - File Control Program .............................................................. 43
KCP - Task Control Program ............................................................ 43
PCP - Program Control Program ........................................................ 44
SCP - Storage Control Program ......................................................... 44
TCP - Terminal Control Program ....................................................... 44
TSP - Temporary Storage Program ..................................................... 45
CICS
www.carloscamposinfo.com Página 13
Transação não conversacional .......................................................... 65
Transação conversacional ............................................................... 65
Transação pseudoconversacional ...................................................... 66
Fluxo da transação pseudoconversacional ............................................... 71
Área de comunicação (DFHCOMMAREA) .............................................. 74
Fluxo reentrante .......................................................................... 75
Questionário .................................................................................. 77
Mapa ............................................................................................... 79
Considerações sobre um mapa ............................................................ 79
Independência de equipamento ........................................................... 80
Independência de formato ................................................................. 80
Protocolo 3270 ............................................................................... 80
Como construir um mapa ................................................................... 81
Construção de um mapa .................................................................... 81
Composição de um programa BMS ........................................................ 81
MAPSET ........................................................................................ 82
Compilação de um mapa ................................................................... 83
Estrutura da linha de um mapa ............................................................ 83
Composição do atributo de um campo ................................................... 83
Tipo de proteção do campo............................................................. 83
Tipo de conteúdo do campo ............................................................ 85
Brilho do campo. ......................................................................... 85
Tag de modificação ...................................................................... 85
Compilação de um mapa ................................................................... 86
Estrutura da linha de um mapa ............................................................ 86
Definindo mapa para ser interpretado pelo BMS ....................................... 87
Mapa físico ................................................................................. 87
Definindo um grupo e mapas – MAPSET ............................................... 87
Macro DFHMSD ............................................................................ 87
Definindo uma tela ....................................................................... 91
Macro DFHMDI ............................................................................. 91
Definindo áreas dentro de um mapa .................................................. 93
CICS
www.carloscamposinfo.com Página 15
Comandos de tratamento de terminal .................................................. 113
Comando SEND TEXT ....................................................................... 114
Sintaxe..................................................................................... 114
Parâmetro FROM ......................................................................... 114
Parâmetro LENGTH ...................................................................... 114
Parâmetro CURSOR ...................................................................... 114
Parâmetro FREEKB ....................................................................... 114
Parâmetro ERASE ........................................................................ 114
Condição de exceção ................................................................... 114
Exemplo do comando SEND TEXT ..................................................... 115
Comando RECEIVE........................................................................... 116
Sintaxe..................................................................................... 116
Parâmetro INTO .......................................................................... 116
Parâmetro SET ........................................................................... 116
Parâmetro LENGTH ...................................................................... 116
Condição de exceção ................................................................... 117
Programa exemplo do comando RECEIVE ............................................ 118
Questionário ................................................................................. 119
Comandos de tratamento de mapa ...................................................... 121
Comando SEND MAP ........................................................................ 122
Sintaxe..................................................................................... 122
Parâmetro MAP ........................................................................... 122
Parâmetro MAPSET ...................................................................... 122
Parâmetro FROM ......................................................................... 122
Parâmetro ERASE ........................................................................ 122
Parâmetro CURSOR ...................................................................... 123
Parâmetro DATAONLY ................................................................... 123
Parâmetro MAPONLY .................................................................... 123
Parâmetro FREEKB ....................................................................... 123
Condição de exceção ................................................................... 123
Programa exemplo do comando SEND MAP ......................................... 124
Comando RECEIVE MAP ..................................................................... 125
CICS
Sintaxe..................................................................................... 125
Parâmetro MAP ........................................................................... 125
Parâmetro MAPSET ...................................................................... 125
Parâmetro INTO .......................................................................... 125
Parâmetro SET ........................................................................... 125
Parâmetro LENGTH ...................................................................... 126
Condição de exceção ................................................................... 126
Programa exemplo do comando RECEIVE MAP ...................................... 127
Questionário ................................................................................. 129
Comandos de tratamento de arquivo .................................................... 131
Massa de teste para os comandos de tratamento de arquivo ....................... 132
Definição do arquivo AGENDA ............................................................ 132
JCL para criar o arquivo AGENDA ........................................................ 132
Comando WRITE ............................................................................. 133
Sintaxe..................................................................................... 133
Parâmetro FROM ......................................................................... 133
Parâmetro RIDFLD ....................................................................... 133
Parâmetro LENGTH ...................................................................... 133
Parâmetro KEYLENGTH ................................................................. 133
Condição de exceção ................................................................... 133
Programa exemplo do comando WRITE .............................................. 134
Comando READ .............................................................................. 135
Sintaxe..................................................................................... 135
Parâmetro INTO .......................................................................... 135
Parâmetro RIDFLD ....................................................................... 135
Parâmetro EQUAL ........................................................................ 135
Parâmetro GTEQ ......................................................................... 135
Parâmetro LENGTH ...................................................................... 135
Parâmetro UPDATE ...................................................................... 135
Condição de exceção ................................................................... 136
Programa exemplo do comando READ ............................................... 136
Comando REWRITE .......................................................................... 137
www.carloscamposinfo.com Página 17
Sintaxe..................................................................................... 137
Parâmetro FROM ......................................................................... 137
Parâmetro LENGTH ...................................................................... 137
Condição de Exceção.................................................................... 137
Programa exemplo do comando REWRITE ........................................... 138
Comando DELETE............................................................................ 139
Sintaxe..................................................................................... 139
Parâmetro RIDFLD ....................................................................... 139
Parâmetro KEYLENGTH ................................................................. 139
Parâmetro GENERIC ..................................................................... 139
Parâmetro NUMREC ..................................................................... 139
Condição de exceção ................................................................... 139
Programa exemplo do comando DELETE............................................. 140
Comando UNLOCK ........................................................................... 141
Sintaxe..................................................................................... 141
Condição de exceção ................................................................... 141
Questionário ................................................................................. 143
Comandos de BROWSE (cursor) .............................................................. 145
Introdução .................................................................................... 145
Pesquisa por BROWSE ...................................................................... 146
Considerações para arquivos VSAM ...................................................... 146
Procedimentos de uma pesquisa por BROWSE ......................................... 146
Estabelecimento de posição ........................................................... 147
Pesquisa de registros .................................................................... 147
Término do BROWSE .................................................................... 147
Atualização de registros no BROWSE ................................................. 147
Massa de teste para os comandos do BROWSE...................................... 148
Comando STARTBR .......................................................................... 149
Sintaxe..................................................................................... 149
Parâmetro RIDFLD ....................................................................... 149
Parâmetro KEYLENGTH ................................................................. 149
Parâmetro GENERIC ..................................................................... 149
CICS
www.carloscamposinfo.com Página 19
Exemplificação do comando RESETBR ............................................... 158
Exemplo de como construir um BROWSE ............................................... 159
Cenário - Listar contatos ............................................................... 159
Macrofluxo e DHF do programa ....................................................... 159
Fluxograma ............................................................................... 160
Fluxograma - outros níveis ............................................................. 160
Exemplo de BROWSE - TCICSD1A (Conversacional) ................................ 163
Questionário ................................................................................. 167
Comandos de tratamento de armazenamento Temporário (TS) ....................... 169
Como montar o nome da TS ............................................................... 169
Comando WRITEQ TS ....................................................................... 171
Sintaxe..................................................................................... 171
Parâmetro QUEUE ....................................................................... 171
Parâmetro FROM ......................................................................... 171
Parâmetro LENGTH ...................................................................... 171
Parâmetro ITEM .......................................................................... 171
Parâmetro REWRITE ..................................................................... 171
Condição de exceção ................................................................... 172
Exemplo do comando WRITEQ TS ..................................................... 172
Comando READQ TS ......................................................................... 173
Sintaxe..................................................................................... 173
Parâmetro QUEUE ....................................................................... 173
Parâmetro INTO .......................................................................... 173
Parâmetro ITEM .......................................................................... 173
Parâmetro NEXT ......................................................................... 173
Condição de exceção ................................................................... 173
Exemplo do comando READ TS ........................................................ 174
Comando DELETEQ TS ...................................................................... 175
Sintaxe..................................................................................... 175
Parâmetro QUEUE ....................................................................... 175
Condição de Exceção.................................................................... 175
Exemplificação do comando DELETEQ TS ........................................... 175
CICS
www.carloscamposinfo.com Página 21
Códigos de erro de transação ............................................................. 194
Comando HANDLE CONDITION ............................................................ 195
Sintaxe..................................................................................... 195
Exemplo de utilização do HANDLE CONDITION ..................................... 195
Questionário ................................................................................. 197
Comandos de tratamento de diversos ...................................................... 199
Como formatar data e hora ............................................................... 199
Comando BIF DEEDIT ....................................................................... 201
Sintaxe..................................................................................... 201
Parâmetro FIELD ......................................................................... 201
Parâmetro LENGTH ...................................................................... 201
Exemplificação do comando BIF DEEDIT ............................................. 202
Exemplo do comando BIF DEEDIT ..................................................... 202
Comando ASSIGN ............................................................................ 203
Sintaxe..................................................................................... 203
Parâmetro ABCODE ...................................................................... 203
Parâmetro PROGRAM .................................................................... 203
Parâmetro ABPROGRAM ................................................................ 204
Parâmetro USERID ....................................................................... 205
Parâmetro USERNAME ................................................................... 205
Parâmetro APPLID ....................................................................... 205
Comando FORMATTIME ..................................................................... 207
Parâmetro YYMMDD ..................................................................... 207
Sintaxe..................................................................................... 207
Parâmetro DATESEP ..................................................................... 207
Parâmetro TIMESEP ...................................................................... 207
Parâmetro ABSTIME ..................................................................... 208
Parâmetro DATE ......................................................................... 208
Parâmetro DATEFORM .................................................................. 208
Parâmetro FULLDATE ................................................................... 208
Parâmetro DDMMYY ..................................................................... 208
Parâmetro DDMMYYYY .................................................................. 208
CICS
www.carloscamposinfo.com Página 23
Pseudocódigo ............................................................................. 222
Exemplo de programa de BROWSE - PCICSE1A ..................................... 224
Exemplo de programa de paginação ................................................. 229
Constuindo sistemas ON-LINE ................................................................ 235
Massa de testes para os sistemas ON-LINE.............................................. 236
MER - Modelo de Entidade Relacional para testes ................................. 236
Definição dos depósitos ................................................................ 236
Massa de dados para os sistemas ON-LINE .......................................... 236
Criar arquivos e tabelas para os sistemas ON-LINE ................................ 238
Incluir massa de dados para os sistemas ON-LINE ................................. 240
Sistema - Menu de sistemas ............................................................... 243
Cenário: Menu de sistemas............................................................. 243
Funcionalidade: Menu de sistemas ................................................... 243
Sistema - Cadastro de alunos ............................................................. 253
Cenário: Cadastro de alunos ........................................................... 253
Funcionalidade: Menu do cadastro de aluno ........................................ 253
Funcionalidade: Incluir aluno.......................................................... 262
Funcionalidade: Alterar aluno ......................................................... 280
Funcionalidade: Excluir aluno ......................................................... 289
Funcionalidade: Listar alunos ......................................................... 296
Funcionalidade: Listar alunos com média ........................................... 304
Funcionalidade: Listar cursos do aluno .............................................. 317
Sistema - Cadastro de notas .............................................................. 325
Cenário: Cadastro de notas ............................................................ 325
Funcionalidade: Menu do cadastro de notas ........................................ 325
Funcionalidade: Incluir nota ........................................................... 326
Funcionalidade: Consultar nota ....................................................... 326
Funcionalidade: Alterar nota .......................................................... 327
Funcionalidade: Excluir nota .......................................................... 327
Funcionalidade: Listar notas dos cursos do aluno ................................. 328
Sistema - Cadastro de cursos ............................................................. 329
Cenário: Cadastro de cursos ........................................................... 329
CICS
www.carloscamposinfo.com Página 25
Tabela de códigos EIBRESP ................................................................ 349
Tabela de códigos EIBFN ................................................................... 350
Tabela de condições de exceção ......................................................... 353
Tabela de condição de exceção por comando ......................................... 355
Definições e termos ........................................................................ 360
Abreviaturas ................................................................................. 365
Respostas dos questionários............................................................... 367
Bibliografia ...................................................................................... 369
Outras obras do autor ......................................................................... 371
CICS
Notação utilizada
[ ] Opcional
{ } Optar por um, sendo que as opções estão separadas pelo símbolo “|” que significa
“ou”
< > Substituir por um nome
| Operador lógico "OU". Significa que pode ser substituído por um dos parâmetros.
... Existem procedimentos não mencionados
....|....1....|....2....|....3....|....4....|....5....|....6....|....7..
A linha acima representa a régua do exemplo em questão para ajudar a mostrar a posição do
caracteres, muito importante para a linguagem COBOL.
Reflexão
“Só é lutador quem sabe lutar consigo mesmo.”
Autor: Carlos Drummond de Andrade
www.carloscamposinfo.com Página 27
Página deixada em branco
CICS
coluna
Coluna especifica um número inteiro, no intervalo de 0 a 79, especificando o número de
colunas que uma linha pode ter.
linha
Linha especifica um número inteiro, no intervalo de 0 a 24, especificando o número de
linhas, correspondente à altura de um mapa. No lugar do número de linhas, pode ser
inserido o parâmetro NEXT.
literal
Literal é uma constante, um valor fixo, inteiro, passado como parâmetro para o comando. As
constantes podem ser classificadas em: numérica, alfanumérica e lógica. A constante
alfanumérica também é conhecida como STRING e deve ser definida entre aspas.
nomeáreadatahora
A variável que recebe a data e hora deve ser definida como PIC S9(15) COMP-3.
nomeáreadedados
O nome da área de dados, identificado por uma variável, definida na WORKING-STORAGE.
nomeáreadomapaO
O nome da área do mapa, definido na WORKING-STORAGE. Normalmente, é o nome do
mapa com caractere “O”, no final do nome.
nomeáreadomapaI
O nome da área do mapa definido na WORKING-STORAGE. Normalmente, é o nome do mapa
com caractere “I”, no final do nome.
www.carloscamposinfo.com Página 29
nomeáreadoregistro
O nome da área do registro, definido na WORKING-STORAGE. Pode ser o nome de uma
variável alfanumérica ou um item de grupo.
nomearquivo
O nome do arquivo pode ser especificado diretamente pelo seu nome ou indiretamente,
através da utilização de uma variável. O nome do arquivo deve ter, no máximo, oito (8)
caracteres de tamanho. A variável, quando utilizada, deve ser definida como alfanumérica
“PIC X(8)”.
nomecampo
Nome do campo do mapa e deve possuir, no máximo, sete (7) caracteres. Opcional; só é
necessário se for referenciado no programa de aplicação.
nomechavearquivo
O nome do item elementar ou item de grupo que é a chave do arquivo. Pode ser especificado
diretamente pelo seu nome ou indiretamente, através da utilização de uma variável. Pode
ser o nome de uma variável alfanumérica ou numérica ou de um item de grupo.
nomecondiçãoerro
A condição de erro (o mesmo que condição de exceção) é uma palavra reservada do CICS,
definida na EIBRESP. Por exemplo: NORMAL, ERROR, NOTFND, DUPREC, DUPKEY, INVREQ,
IOERR, NOSPACE, NOTOPEN, ENDFILE, ILLOGIC, LENGERR, PGMIDERR, TRANSIDERR.
nomedeflinhats
Representa o nome da definição da estrutura da linha, utilizado na TS. Pode ser o nome de
uma variável alfanumérica ou um item de grupo. As regras para a sua criação são as mesmas
utilizadas para a definição do nome de um item de grupo, utilizado para definir um registro.
nomefilats
Representa o nome da fila, utilizado numa TS (TEMPORARY STORAGE). O nome da fila (área
da TS, como se fosse um arquivo) deve ter, no máximo, oito (8) caracteres de tamanho. A
variável, quando utilizada, deve ser definida como alfanumérica “PIC X(8)”.
nomemapset
Representa o nome do conjunto dos mapas e deve possuir, no máximo, sete (7) caracteres.
Deve ser diferente do nome dos mapas que pertencem a este grupo e deve estar cadastrado
na tabela PPT. Um caractere é acrescentado ao nome como sufixo (tipo do terminal ou
parâmetro SUFFIX).
CICS
nomemapa
Representa o nome do mapa e deve possuir, no máximo, sete (7) caracteres. Deve ser
diferente do nome dos mapas que pertencem a este grupo e do nome MAPSET. Deve ser
diferente do nome dos mapas que pertencem a este grupo e deve estar cadastrado na tabela
PPT. Um caractere é acrescentado ao nome como sufixo (tipo do terminal ou parâmetro
SUFFIX).
nomeparagrafo
Especifica o nome do parágrafo, dentro do programa, com a instrução ou instruções.
nomeprograma
O nome do programa deve possuir até oito caracteres. Pode ser identificado por um literal
ou por uma variável definida na WORKING-STORAGE. Por exemplo:
77 WS-NM-PROGRAMA PIC X(8) VALUE ‘NMPGM01A’.
nometransação
O nome da transação deve possuir quatro caracteres. Pode ser identificado por um literal ou
por uma variável, definida na WORKING-STORAGE. Por exemplo:
77 WS-NM-TRANSACAO PIC X(4) VALUE ‘TRN1’.
nrodoitem
O número do item pode ser um literal numérico ou ser representado por uma variável,
definida como “PIC S9(04) COMP VALUE +nnnn”.
posição
A posição do cursor, na tela 3270, pode ser identificada por um literal, de quatro dígitos, ou
por uma variável, definida na WORKING-STORAGE com o formato PIC S9(004) COMP.
A posição do cursor é representada por um valor numérico sequencial que começa pela
primeira posição da primeira linha e recebe o valor zero (0). A tela é definida por 24 linhas,
com 80 caracteres cada uma. Por este motivo, a última posição da tela recebe o valor 1920.
Esta numeração serve apenas para os terminais do tipo 3270 que são o caractere e não
gráfico.
tamanhoárea
O tamanho da área pode ser identificado por um literal ou por uma variável, definida na
WORKING-STORAGE.
www.carloscamposinfo.com Página 31
Página deixada em branco
Reflexão
“Só é livre o homem que sabe dar ordens a si mesmo.”
Autor: Pitágoras
CICS
Introdução ao CICS
1
Este capítulo apresenta uma visão do CICS do ambiente e da sua estrutura, para suportar
aplicações on-line com os seus módulos gerenciadores e suas tabelas de controle. Aborda a
organização e o gerenciamento da memória, a administração: da comunicação dos terminais,
dos acessos aos arquivos e da execução dos programas.
Reflexão
“Dar exemplos não é a melhor maneira de influenciar os outros. É a única.”
Autor: Desconhecido
www.carloscamposinfo.com Página 33
O que é CICS
O CICS (Customer Information Control System) é um produto (software, sistema) da IBM que
é composto de vários módulos/programas de gerenciamento. É um sistema de dados e de
comunicação de dados para rodar em equipamentos
próprios e compatíveis. Este sistema permite que sejam
transmitidos dados de um terminal para o computador,
que estes dados sejam processados, acessem arquivos
(podem ser também bancos de dados) e sejam, então,
transmitidos de volta ao terminal de origem.
Para este processamento, o sistema
precisa usar um aplicativo de
telecomunicações (por exemplo,
VTAM, TCAM ou BTAM) e um ou
mais dos seguintes métodos de
acesso a arquivos: VSAM, BDAM, ISAM.
Pode ser executado sob todos os sistemas da IBM (MVS, VSE, VM ou OS/2). Os programas
podem ser transportados de um ambiente para outro com pouca ou mesmo nenhuma
alteração. Existem, também, dois níveis de codificação: macro (MACRO LEVEL), similar ao
ASSEMBLER, e COMMAND LEVEL, que é similar ao COBOL.
É um produto (sistema, software)
para manipular aplicações ON-LINE
e é composto por um conjunto de
programas (módulos
gerenciadores) que faz a
comunicação entre os programas
da aplicação, o sistema
operacional e o terminal de usuário. Ele possui a capacidade de suportar e controlar a
comunicação de uma vasta rede que pode ser composta por centenas de terminais.
Oferece as seguintes funções:
Controlar, simultaneamente, a execução de aplicações, servindo vários usuários ao
mesmo tempo (ON-LINE); sistema multi-usuário.
Controlar a comunicação entre os terminais locais e os programas de aplicação,
obtendo, assim, os dados solicitados pelo usuário.
Controlar a abertura e o acesso aos arquivos e bancos de dados, em conjunto com
os vários métodos de acessos fornecidos pela IBM.
Facilitar a comunicação entre outros ambientes CICS, residentes no mesmo
computador ou em computadores interligados.
CICS
Controladores
A função dos controladores é ajudar a controlar o roteamento das mensagens de dados pela
rede. Dois tipos são os exemplos:
Controladores de comunicação;
Controladores de terminais.
Os controladores de comunicação ou CCP (Comunications Control Processor), também são
conhecidos como Front End Processors ou somente Front Ends. São os dispositivos que
controlam o recebimento e envio de mensagens de dados, inclusive as mensagens de
confirmação de transferência destas mensagens. Neste processo de controle, o NCP é o
Software e o CCP é o Hardware, mas todo dispositivo pode ser conhecido como NCP.
Os controladores de terminais estão conectados aos Mainframes, NCP, impressoras e todos
os dispositivos periféricos. Este controla o envio de mensagens, como para qual periférico vai
a mensagem, etc.
Os terminais podem ser dispositivos definidos para estarem conectados aos controladores de
terminais, tem seu próprio software, chamado Microcode; o que dá acesso à rede SNA, é
chamado de 'terminal burro'. Os 'terminais inteligentes' são PC's com software SNA
instalados neles. Os Pc's podem ser os de plataforma OS/2 ou, ainda, Microsoft.
www.carloscamposinfo.com Página 35
O que é processamento ON-LINE
Processamento ON-LINE, do ponto de vista do CICS, é o recebimento de informações
(dados) do terminal, manipulação destas informações e, a seguir, o envio de uma mensagem
de volta ao usuário. Tudo isto pode, normalmente, ser feito em questão de segundos. Neste
tipo de transação, cada vez que o operador pressiona a tecla ENTER, o software de
comunicação verifica se o terminal é válido. Isso é possível graças à tabela de controle de
terminal (TCT). Podemos entender que as aplicações batch são diferentes das aplicações on-
line, tendo em vista que cada uma trabalha em uma área específica. Dentro de sua região, o
CICS, trabalha com várias aplicações simultaneamente, pois, trata-se de uma das suas
características, a de ser multitarefas. Para que esses recursos sejam utilizados de maneira
satisfatória, é preciso observar que um programa de aplicação não pode se comunicar
diretamente com o sistema operacional; isso quem faz é o CICS.
Devemos considerar também que o programa de aplicação não deve abrir ou fechar
arquivos, porque o CICS executará essas funções no momento apropriado.
Quanto a um programa COBOL, devemos considerar que o comando STOP RUN e o GOBACK
são perigosos, porque, quando executados, o CICS será encerrado, fazendo com que toda a
rede entre em OFF LINE. Nunca usar em um programa COBOL CICS as instruções STOP RUN e
GOBACK. Para terminar um programa, é utilizado o comando RETURN. Toda aplicação On-
Line deve retornar o controle para o CICS.
Programa
Terminal 1 Terminal 2 Terminal 3 Terminal 4