cics - perse - publique-se - publicar seu livro agora ... · carlos j e de campos cics customer...
TRANSCRIPT
Carlos J E de Campos
CICS Customer Information Control System
Comandos, Sintaxe, Regras e Procedimentos
Exemplos de programas e Pensamentos
D e s e n v o l v i m e n t o C O B O L M a i n f r a m e
G u i a d e R e f e r ê n c i a
S e g u n d a e d i ç ã o
S ã o P a u l o
2 0 1 3
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
C I C S
w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 3
Agradecimentos
Agradeço a Deus por ter-me colocado na trilha do conhecimento.
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
N ã o e s t a m o s a q u i p a r a p a g a r n e m s o b r e v i v e r , m a s s i m , p a r a v e n c e r ,
a d q u i r i n d o s a b e r .
&
U s e m o s o c o n h e c i m e n t o c o m é t i c a e m o r a l .
C I C S
w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 5
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
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: [email protected].
Reflexão
“Muitos homens iniciaram uma nova era na sua vida a partir da leitura de um livro”.
Autor: Henry Thoreau
C I C S
w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 7
Formação de especialista COBOL A formação de um desenvolvedor especialista em COBOL Mainframe envolve diversas áreas do conhecimento, necessárias para a atuação que o profissional precisa ter no desempenho da sua atuação. São seis módulos específicos de conhecimento que se completam: Lógica, COBOL, DB2, CICS, JCL e TSO.
A formação completa segue uma sequência, de acordo com um planejamento, para a integração de todos os módulos e, com isso, potencializar a sinergia vinda de cada área de conhecimento. Por exemplo, primeiro se desenvolve o racíocino e se aprende a construir algoritmos e lógicas de programação; depois, se aprende a estrutura de linguagem de programação com os seus comandos e constrói-se programa com base nas lógicas de programação aprendidas. A seguir, aprende-se o banco de dados onde estarão armazenados os dados e, finalmente, aprende-se a estrutura do ambiente online do Mainframe, a forma de programação pseudoconversacional e, o JCL, linguagem de administra a execução de programas batch.
No módulo de LÓGICA, são abordados como se constrói algoritmos e lógicas de programação.
No módulo de COBOL, são vistos toda a teoria e estrutura da linguagem de programação e todos os comandos principais e básicos para desenvolver a grande maioria dos programas.
No módulo de DB2, são abordados a teoria e estrutura básica de um banco de dados e, todos os comandos principais e básicos para desenvolver programas que utilizam o banco de dados DB2 em programas COBOL.
No módulo de CICS, são vistos toda a teoria e estrutura do ambiente, a forma de programação pseudoconversacional e, todos os comandos principais e básicos para desenvolver a grande maioria dos programas online.
No módulo de JCL, são vistos toda a teoria e estrutura da linguagem de programação e todos os comandos principais e básicos para desenvolver a grande maioria das soluções necessárias para a execução dos programas batch.
Metodologia dos cursos
O assunto novo é apresentado ao aluno, através da apresentação de SLIDES animados e coloridos e tiradas as dúvidas sobre o tópico. Para praticar o conhecimento novo, o aluno é solicitado a realizar o exercício, no caso: criar algoritmo ou programa. Após o tempo para criar a primeira solução, é apresentado; via SLIDES animados e coloridos, a solução do exercício, tirando 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
Apresentar Conceito
Tirar dúvidas
Praticar exercícios
Apresentar Solução
Consolidar Exercícios
Rever conceitos
C I C S
w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 9
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
Para mais informações, acesse o site www.icpdug.org.br ou utilize o e-mail [email protected].
Reflexão
“Em algum lugar, algo incrível está esperando para ser descoberto.”
Autor: Carl Seagan
Página deixada em branco
C I C S
w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 1 1
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
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
C I C S
w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 1 3
TDP - Transient Data Program .......................................................... 45
DCP - Dump Control Program ........................................................... 45
ICP - Interval Control Program ......................................................... 46
BMS - Basic Mapping Support ........................................................... 46
ISC - Intercommunication Control Program .......................................... 46
Tabelas de controle ......................................................................... 47
FCT - File Control Table ................................................................. 47
PCT - Program Control Table ........................................................... 47
PPT - Program Processing Table ....................................................... 47
TCT - Terminal Control Table .......................................................... 47
KCT - Task Control Table ................................................................ 47
DSA - Dynamic Storage Area ............................................................... 49
Blocos de controle ........................................................................ 49
Áreas de dados Interna .................................................................. 52
Área de dados temporária .............................................................. 52
Memória Temporária ........................................................................ 53
Formato da Memória Temporária ...................................................... 53
Controle de terminal ........................................................................ 54
Receber dados do terminal ............................................................. 54
Enviar dados para o terminal ........................................................... 54
Tecla de função como comando, DFHAID ............................................ 54
Controle de programa ....................................................................... 55
Chamar um programa e retornar ...................................................... 55
Chamar um programa e não retornar ................................................. 55
Controle de arquivo ......................................................................... 56
Acesso ao arquivo VSAM ................................................................. 57
Transação ..................................................................................... 59
Tarefa (TASK) ............................................................................. 60
Visão do fluxo da transação ............................................................ 61
Passos do fluxo da transação ........................................................... 63
Modelo concorrente de uma mesma transação ..................................... 64
Tipos de transação ........................................................................... 65
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
C I C S
w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 1 5
Macro DFHMDF ............................................................................ 93
Indicador de campo MDT ................................................................ 96
Como o COBOL identifica um campo do BMS............................................ 99
Como é a definição de um campo ..................................................... 99
Posição do cursor na tela .................................................................. 101
Identificar a posição do cursor ........................................................ 101
Direcionar a posição do cursor ........................................................ 101
Bloco DFHBMSCA ............................................................................ 102
Exemplo de definição do mapa MAPA01A............................................... 103
Definição BMS do mapa MAPA01A ..................................................... 103
Definição da estrutura do mapa MAPA01A para o COBOL ........................ 104
Questionário ................................................................................. 105
Comandos ........................................................................................ 107
Comandos do CICS .......................................................................... 107
Comand Level ................................................................................ 108
Restrições no COBOL ....................................................................... 108
Grupos dos comandos ...................................................................... 109
Comandos de tratamento de terminal ............................................... 109
Comandos de tratamento de mapa (BMS) ........................................... 109
Tratamento de arquivo (FILE CONTROL) ............................................ 109
Tratamento de cursor (BROWSE)...................................................... 110
Tratamento de programas (PROGRAM CONTROL) .................................. 110
Tratamento de armazenamento temporário (TS) .................................. 110
Tratamento de erro (ABEND CODE)................................................... 110
Tratamentos diversos ................................................................... 111
Estrutura de comando .................................................................. 111
Terminar programa - Comando RETURN ................................................ 111
Sintaxe ..................................................................................... 112
Parâmetro TRANSID ..................................................................... 112
Parâmetro COMMAREA .................................................................. 112
Parâmetro LENGTH ...................................................................... 112
Condição de exceção ................................................................... 112
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
C I C S
w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 1 7
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
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
C I C S
w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 1 9
Parâmetro EQUAL ........................................................................ 149
Parâmetro GTEQ ......................................................................... 150
Condição de exceção ................................................................... 150
Exemplificação do comando STARTBR ............................................... 150
Comando READNEXT ........................................................................ 151
Sintaxe ..................................................................................... 151
Parâmetro INTO .......................................................................... 151
Parâmetro RIDFLD ....................................................................... 151
Parâmetro KEYLENGTH ................................................................. 151
Parâmetro UPDATE ...................................................................... 151
Condição de exceção ................................................................... 152
Exemplificação do comando READNEXT ............................................. 152
Comando READPREV ........................................................................ 153
Sintaxe ..................................................................................... 153
Parâmetro INTO .......................................................................... 153
Parâmetro RIDFLD ....................................................................... 153
Parâmetro KEYLENGTH ................................................................. 153
Parâmetro UPDATE ...................................................................... 153
Condição de exceção ................................................................... 153
Exemplificação do comando READPREV ............................................. 154
Comando ENDBR ............................................................................. 155
Sintaxe ..................................................................................... 155
Condição de Exceção.................................................................... 155
Exemplificação do comando ENDBR .................................................. 155
Comando RESETBR .......................................................................... 157
Sintaxe ..................................................................................... 157
Parâmetro INTO .......................................................................... 157
Parâmetro RIDFLD ....................................................................... 157
Parâmetro KEYLENGTH ................................................................. 157
Parâmetro GENERIC ..................................................................... 158
Parâmetro UPDATE ...................................................................... 158
Condição de exceção ................................................................... 158
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
C I C S
w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 2 1
Questionário ................................................................................. 177
Comandos de chamada de programa ....................................................... 179
Comando LINK ............................................................................... 181
Sintaxe ..................................................................................... 181
Parâmetro PROGRAM .................................................................... 181
Parâmetro COMMAREA .................................................................. 181
Parâmetro LENGTH ...................................................................... 181
Condição de exceção ................................................................... 181
Exemplo do comando LINK - Chamador .............................................. 182
Exemplo do comando LINK - Chamado ............................................... 183
Comando XCTL .............................................................................. 185
Sintaxe ..................................................................................... 185
Parâmetro PROGRAM .................................................................... 185
Parâmetro COMMAREA .................................................................. 185
Parâmetro LENGTH ...................................................................... 185
Condição de exceção ................................................................... 185
Exemplo do comando LINK - Chamador .............................................. 186
Exemplo do comando XCTL - Chamado e chamador ............................... 187
Exemplo do comando XCTL - Chamado .............................................. 188
Comandos de tratamento de erro ........................................................... 189
Introdução .................................................................................... 189
Comando HANDLE ABEND .................................................................. 191
Sintaxe ..................................................................................... 191
Parâmetro PROGRAM .................................................................... 191
Parâmetro LABEL ........................................................................ 191
Parâmetro CANCEL ...................................................................... 192
Parâmetro RESET ........................................................................ 192
Comando para término anormal da Task (ABEND) ................................. 192
Condição de exceção ................................................................... 192
Comando IGNORE CONDITION ............................................................. 193
Sintaxe ..................................................................................... 193
Exemplo de utilização do IGNORE CONDITION...................................... 193
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
C I C S
w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 2 3
Parâmetro YYYYMMDD .................................................................. 208
Parâmetro YYYYDDMM .................................................................. 208
Parâmetro YYDDMM ..................................................................... 209
Parâmetro MMDDYY ..................................................................... 209
Parâmetro YYDDD........................................................................ 209
Exemplificação do comando FORMATTIME – Obter data .......................... 210
Exemplificação do comando FORMATTIME – Obter hora .......................... 210
Exemplo de ASKTIME e FORMATTIME ................................................. 211
Comando HANDLE AID ...................................................................... 212
Sintaxe ..................................................................................... 212
ANYKEY .................................................................................... 212
Exemplo de utilização do HANDLE AID ............................................... 212
Comando SYNCPOINT ROLLBACK ......................................................... 213
Sintaxe ..................................................................................... 213
Comando ASKTIME .......................................................................... 214
Sintaxe ..................................................................................... 214
Parâmetro ABSTIME ..................................................................... 214
Exemplificação do comando ASKTIME ................................................ 214
Questionário ................................................................................. 215
Programação pseudoconversacional ........................................................ 217
Pontos de conversão da lógica pseudoconversacional ................................ 218
Primeiro ponto – Divisão da lógica em partes ...................................... 218
Segundo ponto – Identificação da fase de execução .............................. 218
Terceiro ponto – Início e término de execução da fase ........................... 218
Quarto ponto – Início da execução do programa ................................... 218
Quinto ponto – Primeira execução .................................................... 218
Sexto ponto – Saída da execução ..................................................... 219
Exemplo de programa pseudoconversacional .......................................... 219
Cenário – Listar contatos ............................................................... 220
DHF do programa ........................................................................ 220
Fluxograma ............................................................................... 221
Fluxograma - outros níveis ............................................................. 221
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
C I C S
w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 2 5
Funcionalidade: Menu do cadastro de cursos ....................................... 329
Funcionalidade: Incluir curso .......................................................... 330
Funcionalidade: Consultar curso ...................................................... 330
Funcionalidade: Alterar curso ......................................................... 331
Funcionalidade: Excluir curso ......................................................... 331
Funcionalidade: Listar cursos.......................................................... 332
Sistema - Cadastro de estados ............................................................ 333
Cenário: Cadastro de estados ......................................................... 333
Funcionalidade: Menu do cadastro de estados ..................................... 333
Funcionalidade: Incluir estado ........................................................ 334
Funcionalidade: Consultar estado .................................................... 334
Funcionalidade: Alterar estado ....................................................... 335
Funcionalidade: Excluir estado ....................................................... 335
Funcionalidade: Listar estados ........................................................ 336
Comandos ON-LINE ............................................................................. 337
CEMT I PRO ................................................................................... 337
CEMT SET PROG ............................................................................. 337
CEMT SET TASK .............................................................................. 338
CEMT SET TRANS ............................................................................ 338
CEMT SET TERM ............................................................................. 339
CSSN ........................................................................................... 339
CSMT .......................................................................................... 339
Parâmetro NEW .......................................................................... 339
CEMT SET FILE ............................................................................... 340
CECI ........................................................................................... 341
CEDF ........................................................................................... 342
CMAC .......................................................................................... 342
Anexos ............................................................................................ 343
Boas práticas ................................................................................. 343
Bloco DFHBMSCA ............................................................................ 345
Estrutura do EIB ............................................................................. 347
Bloco DFHAID ................................................................................ 348
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
C I C S
w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 2 7
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
Página deixada em branco
C I C S
w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 2 9
Como codificar subparâmetros
Muitos comandos e parâmetros necessitam de valores para o seu funcionamento, chamados de subparâmetros. Por exemplo, o parâmetro DATASET possui a seguinte sintaxe: WRITE DATASET (nomearquivo) onde nomearquivo representa o nome do arquivo a ser utilizado pelo comando.
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.
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).
C I C S
w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 3 1
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.
Página deixada em branco
Reflexão
“Só é livre o homem que sabe dar ordens a si mesmo.”
Autor: Pitágoras
C I C S
w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 3 3
Introdução ao CICS
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.
O CICS é um ambiente composto por um conjunto de programas, chamados de módulos gerenciadores, de tabelas e blocos de controle. Os módulos gerenciadores controlam a comunicação com os terminais de vídeo e impressoras, por meio de rede local ou rêmora, a execução dos programas e os acessos aos dados que estão em tabelas e arquivos.
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.
O CICS é 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” e, dentro de seu ADRESS SPACE (Espaço de endereços virtuais do usuário para a execução de instruções e armazenamento de dados), carrega e controla 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.
Reflexão
“Dar exemplos não é a melhor maneira de influenciar os outros. É a única.”
Autor: Desconhecido
1
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.
C I C S
w w w . c a r l o s c a m p o s i n f o . c o m P á g i n a 3 5
Agora, ficará mais fácil imaginar que o CICS é um sistema operacional dentro do próprio sistema operacional. É um ambiente carregado, através da execução de um JOB, quando o sistema operacional é carregado, ou, quando for determinado. Na fase inicial (arranque) do CICS, são colocados em atividade todos os recursos (módulos gerenciadores) para que os programas da aplicação nunca abram um recurso e, sim, somente os utilize, por exemplo: programas, terminais, arquivos e impressoras. À atividade de dar carga ao ambiente dá-se o nome de IPL.
Método de acesso VTAM
Comunicação de dados (Data Comunications) é a transferência de dados entre um sistema e outros sistemas remotos. O VTAM é o responsável por enviar e receber dados dos gerenciadores de dados, como CICS e IMS, que cuidam das informações.
O sistema de redes da IBM usa o SNA (System Network Architeture) como protocolo. O Mainfreme da IBM usa o software VTAM para controlar a rede. Mas o VTAM não é o único Software usado em SNA; os outros exemplos são o NCP (Network Control Program) e o CM/2 (Comunications Manager 2).
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.
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.
Múltiplas execuções de um programa
WORKING
Terminal 1
P r o g r a m a
WORKING WORKING WORKING
Terminal 2
Terminal 3
Terminal 4