Está en la página 1de 50

CICS - Visão gerãl

O CICS é um sistema DB/DC usado em aplicativos online. O CICS foi desenvolvido porque o sistema
operacional em lote pode executar apenas programas em lote. Os programas CICS podem ser escritos em
COBOL, C, C++, Java, etc. Atualmente, os usuários desejam informações em segundos e em tempo real.
Para fornecer um serviço tão rápido, precisamos de um sistema que possa processar informações online. O
CICS permite que os usuários se comuniquem com o sistema back-end para obter as informações desejadas.
Exemplos de programas online incluem sistema bancário online, reserva de voo, etc. A imagem a seguir
mostra os componentes do CICS e como eles estão inter-relacionados −

Funções do CICS
As principais funções executadas pelo CICS em um aplicativo são as seguintes −

 O CICS gerencia solicitações de usuários simultâneos em um aplicativo.


 Embora vários usuários estejam trabalhando no sistema CICS, dá ao usuário a sensação de que ele é
apenas um único usuário.
 O CICS fornece acesso a arquivos de dados para leitura ou atualização em um aplicativo.

Recursos do CICS
Os recursos do CICS são os seguintes -

 O CICS é um sistema operacional em si, pois gerencia seu próprio armazenamento de processador,
possui seu próprio gerenciador de tarefas que lida com a execução de vários programas e fornece
suas próprias funções de gerenciamento de arquivos.
 O CICS fornece ambiente online no sistema operacional em lote. Os trabalhos enviados são
executados imediatamente.
 O CICS é uma interface de processamento de transações generalizada.
 É possível ter duas ou mais regiões CICS ao mesmo tempo, pois o CICS é executado como uma
tarefa em lote no sistema operacional no backend.
CICS – Ambiente
O próprio CICS atua como um sistema operacional. Sua função é fornecer um ambiente para execução
online de programas aplicativos. O CICS é executado em uma região, partição ou espaço de endereço. O
CICS lida com o agendamento de programas em execução nele. O CICS é executado como uma tarefa em
lote e podemos visualizá-lo no spool emitindo o comando PREFIX CICS*. Existem cinco serviços
principais fornecidos pelo CICS. Todos esses serviços juntos executam uma tarefa.

Ambiente CICS
A seguir estão os serviços que discutiremos em detalhes passo a passo −

 System Services (Serviços do sistema)


 Data Communication Services (Serviços de comunicação de dados)
 Data Handling Services (Serviços de tratamento de dados)
 Application Programming Services (Serviços de programação de aplicativos)
 Monitoring Services (Serviços de monitoramento)
 System Services (Serviços do sistema)

O CICS mantém funções de controle para gerenciar a alocação ou desalocação de recursos dentro do
sistema, que são as seguintes −

 Task Control (Controle de tarefas): O controle de tarefas fornece agendamento de tarefas e


recursos de multitarefa. Ele cuida do status de todas as tarefas do CICS. O Controle de Tarefa aloca o
tempo do processador entre tarefas CICS simultâneas. Isso é chamado de multitarefa. O CICS tenta
priorizar o tempo de resposta para a tarefa mais importante.
 Program Control (Controle do programa): O controle de programas gerencia o carregamento e a
liberação de programas aplicativos. Assim que uma tarefa começa, torna-se necessário associá-la ao
programa aplicativo apropriado. Embora muitas tarefas precisem usar o mesmo programa aplicativo,
o CICS carrega apenas uma cópia do código na memória. Cada tarefa passa por esse código de forma
independente, portanto, muitos usuários podem executar transações que estão usando
simultaneamente a mesma cópia física de um programa de aplicativo.
 Storage Control (Controle de armazenamento): Controle de armazenamento gerencia a aquisição
e liberação do armazenamento principal. O controle de armazenamento adquire, controla e libera
armazenamento dinâmico. O armazenamento dinâmico é usado para áreas de entrada/saída,
programas, etc.
 Interval Control (controle de intervalo): Interval Control oferece serviços de timer.

Serviços de comunicação de dados


A interface dos Serviços de Comunicação de Dados com métodos de acesso de telecomunicação, como
BTAM, VTAM e TCAM, para lidar com solicitações de comunicação de dados de programas aplicativos.

 O CICS libera os programas aplicativos do fardo de lidar com problemas de hardware de terminal
por meio do uso do Basic Mapping Support (BMS).
 O CICS fornece Multi Region Operation (MRO) por meio do qual mais de uma região CICS no
mesmo sistema pode se comunicar.
 O CICS fornece Inter System Communication (ISC) por meio do qual uma região CICS em um
sistema pode se comunicar com a região CICS em outro sistema.
Serviços de tratamento de dados
Interface do Data Handling Services com métodos de acesso a dados, como BDAM, VSAM, etc.

 O CICS facilita o atendimento de solicitações de manipulação de dados de programas aplicativos. O


CICS fornece aos programadores de aplicativos um conjunto de comandos para lidar com conjunto
de dados e acesso ao banco de dados e operações relacionadas.
 O Data Handling Services faz interface com métodos de acesso ao banco de dados, como IMS/DB,
DB2, etc. e facilita o atendimento de solicitações de banco de dados de programas aplicativos.
 O CICS facilita o gerenciamento da integridade dos dados pelo controle de atualizações simultâneas
de registros, proteção de dados como ABENDs de tarefas e proteção de dados em falhas do sistema.

Serviços de programação de aplicativos


A interface do Application Programming Services com os programas aplicativos. Os serviços de
programação de aplicativos do CICS fornecem recursos como tradução de nível de comando, CEDF (o
recurso de depuração) e CECI (o recurso do interpretador de comandos). Discutiremos mais detalhadamente
nos próximos módulos.

Serviços de monitoramento
Os serviços de monitoramento monitoram vários eventos no espaço de endereço do CICS. Ele fornece uma
série de informações estatísticas que podem ser usadas para ajuste do sistema.
CICS - Termos Bãsicos
Devemos ter conhecimento dos termos básicos usados no CICS para entender melhor como ele funciona. Os
programas aplicativos usam o CICS para comunicação com terminais e subsistemas remotos e locais.

Terminal IBM 3270


O Sistema de exibição de informações 3270 é uma família de terminais de exibição e impressora. Os
terminais 3270 estavam sendo usados para conectar ao mainframe por meio de controladores IBM. Hoje, o
software de emulação 3270 está disponível, o que significa que até PCs normais podem ser usados como
terminais 3270. Os terminais 3270 são terminais burros e não fazem nenhum processamento por conta
própria. Todo o processamento precisa ser feito pelo programa aplicativo. Os terminais IBM consistem nos
seguintes componentes -

Monitor CRT

O monitor CRT exibe a saída ou os campos de entrada do programa aplicativo. Uma captura de tela de um
modelo 3278 de monitor CRT é mostrada abaixo. Tem as seguintes características -

 É capaz de exibir 1920 caracteres.


 Cada uma dessas 1920 posições de caracteres é endereçável individualmente.
 Um programa aplicativo COBOL pode enviar dados para todas as posições na tela.
 As características de exibição como intensidade, protegido e não protegido do campo podem ser
definidas usando o BMS, que discutiremos em detalhes nos próximos módulos.
Teclado

As teclas do teclado IBM são divididas nas duas categorias a seguir -

 Chaves não AID− Todas as outras teclas para letras, números, pontuação, etc. são teclas não
auxiliares. Quando o usuário digita texto ou números usando teclas não auxiliares, o CICS nem
saberá se o usuário está digitando algo ou não.
 Chaves de ajuda− Chaves AID são conhecidas como Chaves Identificadoras de Atenção. O CICS
pode detectar apenas chaves AID. Depois de digitar todas as entradas, somente quando o usuário
pressiona uma das teclas AID, o CICS assume o controle. Teclas AID: ENTER, PF1 a PF24, PA1 a
PA3, CLEAR. As chaves AID são divididas em duas categorias -
o Chaves PF− As teclas PF são conhecidas como teclas de função. As chaves PF permitem a
transferência de dados do terminal para o CICS. As teclas PF são ENTER e PF1 a PF24.
o Teclas PA− As teclas PA são conhecidas como teclas de acesso ao programa. As chaves PA
não permitem a transferência de dados entre o terminal e o CICS. As teclas PA são PA1 a
PA3 e CLEAR.

Transação
Um programa CICS é chamado por meio de uma transação. Uma transação CICS é uma coleção de
programas logicamente relacionados em um aplicativo. Todo o aplicativo pode ser logicamente dividido em
várias transações.

 Os identificadores de transação com 1 a 4 caracteres são usados para identificar as transações que os
usuários desejam fazer.
 Um programador vincula um programa ao identificador de transação que é usado para invocar todos
os programas aplicativos para aquela transação específica.
Tarefa
Uma tarefa é uma unidade de trabalho específica para um usuário.

 Os usuários invocam um aplicativo usando um dos identificadores de transação. O CICS procura o


identificador de transação para descobrir qual programa chamar primeiro para fazer o trabalho
solicitado. Ele cria uma tarefa para fazer o trabalho e transfere o controle para o programa
mencionado.
 Uma transação pode ser concluída por meio de várias tarefas.
 Uma tarefa pode receber dados e enviar dados para o terminal que a iniciou. Ele pode ler e gravar
arquivos e também iniciar outras tarefas.

Tarefa vs. Transação

A diferença entre uma transação e uma tarefa é que vários usuários podem invocar uma transação, mas cada
usuário inicia sua própria tarefa.

LUW
LUW significa Unidade Lógica de Trabalho. LUW afirma que um pedaço de trabalho deve ser feito
completamente ou não feito. Uma tarefa pode conter várias Unidades Lógicas de Trabalhos no CICS.
Discutiremos mais sobre isso nos próximos módulos.

Inscrição
Um aplicativo é uma série de programas agrupados logicamente para formar várias transações que são
usadas para concluir uma tarefa específica para o usuário final.
CICS – Núcleo
Os cinco componentes do sistema CICS descritos anteriormente são um agrupamento conveniente de
programas do sistema CICS, cada um dos quais executa suas próprias funções especializadas. O núcleo do
CICS conhecido como CICS Nucleus, que consiste em Programas de Controle CICS e Tabelas de Controle
fornecidos pela IBM.

Programas de controle
O núcleo do CICS é construído pelos programas de controle e tabelas de controle correspondentes. Oferece
vantagens únicas. Isso torna o sistema CICS altamente flexível e, portanto, fácil de manter. A seguir estão os
importantes programas de controle do CICS -

TCP (Terminal Control Program)

O TCP é conhecido como Programa de Controle de Terminal.

 TCP é usado para receber mensagens do terminal.


 Ele mantém os requisitos de comunicação de hardware.
 Ele solicita que o CICS inicie as tarefas.

KCP (Task Control Program)

O KCP é conhecido como Programa de Controle de Tarefas.

 O KCP é usado para controlar simultaneamente a execução de tarefas e suas propriedades


relacionadas.
 Ele lida com todos os problemas relacionados à multitarefa.

PCP (Program Control Program)

O PCP é conhecido como Programa de Controle de Programa.

 O PCP é usado para localizar e carregar programas para execução.


 Ele transfere o controle entre os programas e, ao final, devolve o controle de volta ao CICS.

FCP (File Control Program)

FCP é conhecido como programa de controle de arquivos.

 O FCP é usado para fornecer programas aplicativos com serviços como leitura, inserção, atualização
ou exclusão de registros em um arquivo.
 Mantém controle exclusivo sobre os registros para manter a integridade dos dados durante as
atualizações dos registros.

SCP (Storage Control Program)

O SCP é conhecido como Programa de Controle de Armazenamento. Ele é usado para controlar a alocação e
desalocação de armazenamento em uma região CICS.
Tabelas de controle
O CICS consiste em programas e tabelas de controle CICS fornecidos pela IBM. Essas tabelas precisam ser
atualizadas de acordo com as informações do aplicativo para execução bem-sucedida dos programas
aplicativos CICS. A seguir estão as tabelas de controle importantes -

TCT (Terminal Control Table)

A TCT é conhecida como Tabela de Controle Terminal.

 Quando efetuamos login em um terminal CICS, uma entrada é feita na tabela TCT.
 TCT contém os IDs de terminal que estão conectados à região CICS atual.
 O Programa de Controle do Terminal juntamente com a tabela de controle do terminal reconhecem
os dados recebidos do terminal.

PCT (Program Control Table)

A PCT é conhecida como Tabela de Controle do Programa.

 Ele contém os IDs de transação (TRANSID) e os nomes ou IDs de programas correspondentes.


 TRANSID é único na tabela PCT.

PPT (Processing Program Table)

PPT é conhecido como Processing Program Table. O PPT contém o nome do programa ou nome do
conjunto de mapas, contador de uso da tarefa, idioma, tamanho, endereço de armazenamento principal,
endereço da biblioteca de carregamento, etc.

 O nome do programa ou conjunto de mapas é exclusivo em uma tabela PPT.


 O CICS recebe a transação e um nome de programa correspondente é alocado para a transação do
PCT. Ele verifica se o programa está carregado ou não. Se estiver carregado, o contador de uso da
tarefa é aumentado em 1. Se o programa não for carregado, então o programa é carregado primeiro e
o contador de uso da tarefa é definido como 1. Ele obtém o endereço da biblioteca de carregamento
da tabela PPT.

FCT (File Control Table)

FCT é conhecido como Tabela de Controle de Arquivos.

 Ele contém nomes de arquivo, tipo de arquivo, tamanho do registro, etc.


 Todos os arquivos utilizados em um programa CICS devem ser declarados na FCT e são abertos e
fechados pelo próprio CICS.
Transação
Quando um identificador de transação TP02 é inserido no terminal CICS, primeiro ele verifica se existe um
programa associado a este Identificador de transação na tabela PCT. Caso encontre, verifica na tabela PPT a
localização do Programa para executá-lo. Se o programa já estiver disponível na memória, ele começa a
executar aquele determinado programa; caso contrário, ele carrega o programa na memória do
armazenamento secundário e começa a executá-lo.

Ciclo de vida da transação


O ciclo de vida da transação tem as seguintes etapas -
Passo 1

O operador do terminal inicia a transação digitando um id de transação de 1 a 4 caracteres e pressionando a


tecla ENTER.

Passo 2

O TCP verifica periodicamente todos os terminais para entrada. Quando uma mensagem é recebida, ela faz o
seguinte -

 Instrui o SCP a criar um TIOA.


 Coloca a mensagem no TIOA.
 Passa o controle para o KCP.

etapa 3

O KCP assume o controle do TCP e faz o seguinte -

 Valida o ID da transação e a segurança.


 Instrui o SCP a criar uma área de controle de tarefas.
 Atribui prioridade à tarefa com base na prioridade do terminal (definida no TCT), prioridade do
operador (definida no SNT) e prioridade da transação (definida no PCT).
 Adiciona a tarefa à fila de programas em espera.
 Despacha os programas em espera na ordem de prioridade.
 Passa o controle para o PCP.

Passo 4

O PCP assume o controle do KCP e faz o seguinte -

 Localiza o programa e carrega-o, se necessário.


 Transfere o controle para o programa Aplicativo.

Passo 5

O programa aplicativo assume o controle do PCP e faz o seguinte -

 Solicita ao TCP que coloque a mensagem na área WORKING STORAGE do programa.


 Solicita que o FCP recupere os registros dos arquivos.

Passo 6

O FCP assume o controle do programa Aplicativo e faz o seguinte -

 Solicita uma área de trabalho de arquivo do SCP.


 Informa ao KCP que esta tarefa pode esperar até que o I/O seja concluído.

Passo 7

O KCP faz o seguinte -

 Despacha a próxima tarefa na fila.


 Reenvia a tarefa antiga quando a E/S é concluída.
 Transfere o controle para o FCP.
Passo 8

O FCP retorna o controle para o programa Aplicativo.

Passo 9

O programa Aplicativo faz o seguinte -

 Processa os dados do arquivo.


 Solicita que o TCP envie uma mensagem de E/S.
 Devolve o controle ao PCP.

Passo 10

O PCP devolve o controle ao KCP solicitando que finalize a tarefa.

Passo 11

O KCP instrui o SCP a liberar todo o armazenamento alocado para a tarefa (exceto TIOA).

Passo 12

O TCP faz o seguinte -

 Envia a saída para o terminal.


 Solicita que o SCP libere o TIOA.
CICS - Trãnsãçoes
As transações CICS são usadas para executar diversas operações na região CICS. Discutiremos
detalhadamente as importantes transações CICS fornecidas pela IBM.

CESN
CESN é conhecido como CICS Execute Sign On.

 O CESN é usado para conectar-se à região CICS.


 Precisamos fornecer o ID de usuário e a senha fornecidos pelo administrador do CICS para efetuar
logon no CICS. A captura de tela a seguir mostra a aparência da tela de logon −

CEDA
CEDA é conhecido como Definição e Administração de Execução do CICS. Ele é usado pelos
Administradores do Sistema CICS para definir as entradas da tabela CICS e outras atividades de
administração.
CEMT
O CEMT é conhecido como CICS Execute Master Terminal. Ele é usado para consultar e atualizar o status
dos ambientes CICS e também para outras operações do sistema.

 Usando o comando CEMT, podemos gerenciar transações, tarefas, arquivos, programas, etc.
 Para obter todas as opções possíveis, digite CEMT e pressione ENTER. Ele exibirá todas as opções.
 O CEMT é basicamente usado para carregar um novo programa no CICS ou para carregar uma nova
cópia do programa no CICS após o programa ou conjunto de mapas ser alterado.

Exemplo

Pode-se substituir o status do arquivo exibido para alterá-lo. O exemplo a seguir mostra como fechar um
arquivo -

CEMT

** Press ENTER & Following Screen is displayed **

STATUS: ENTER ONE OF THE FOLLOWING


Inquire
Perform
Set

** Command to close a file **

CEMT SET FILE (file-name)


CEMT I FILE (file-name)

CECI
O CECI é conhecido como CICS Execute Command Interpreter. Muitos comandos CICS podem ser
executados usando CECI.

 CECI é usado para verificar a sintaxe do comando. Ele executa o comando, somente se a sintaxe
estiver correta.
 Digite a opção CECI na tela vazia do CICS depois de efetuar login. Ela fornece a lista de opções
disponíveis.

Exemplo

O exemplo a seguir mostra como enviar dados de saída mapeados para o terminal. Discutiremos sobre o
MAPS nos próximos módulos.

CECI SEND MAP (map-name) MAPSET (mapset-name) ERASE


CEDF
CEDF é conhecido como CICS Execute Debug Facility. Ele é usado para depurar o programa passo a passo,
o que ajuda a encontrar os erros.

Digite CEDF e pressione enter na região CICS. A mensagem do terminal está no modo EDF será exibida.
Agora digite o ID da transação e pressione a tecla Enter. Após a inicialização, com cada tecla enter, uma
linha é executada. Antes de executar qualquer comando do CICS, mostra a tela na qual podemos modificar
os valores antes de prosseguir.

CMAC
CMAC é conhecido como CICS Messages for Abend Codes. Ele é usado para localizar a explicação e os
motivos dos Códigos Abend do CICS.

Exemplo

O exemplo a seguir mostra como verificar os detalhes de um código Abend -

CMAC abend-code

CESF
CESF é conhecido como CICS Execute Sign Off. Ele é usado para Sign Off da região CICS.

Exemplo

O exemplo a seguir mostra como fazer logoff da região CICS -

CESF LOGOFF

CEBR
O CEBR é conhecido como Pesquisa de armazenamento temporário de execução do CICS. É usado para
exibir o conteúdo de uma fila de armazenamento temporário ou TSQ.

O CEBR é usado durante a depuração para verificar se os itens da fila estão sendo gravados e recuperados
corretamente. Discutiremos mais sobre TSQ nos próximos módulos.

Exemplo

O exemplo a seguir mostra como invocar o comando CEBR -

CEBR queue-id
Conceitos CICS
Cada comando pode ser obtido executando uma série de macros CICS. Discutiremos alguns recursos básicos
que nos ajudarão a entender melhor os conceitos −

Multitarefa

Esse recurso do sistema operacional permite que mais de uma tarefa seja executada simultaneamente. A
tarefa pode estar compartilhando o mesmo programa ou usando programas diferentes. O CICS planeja a
tarefa em sua própria região.

Multi-threading

Esse recurso do sistema operacional permite que mais de uma tarefa seja executada simultaneamente
compartilhando o mesmo programa. Para que o multiencadeamento seja possível, um programa aplicativo
deve ser um programa reentrante no sistema operacional ou um quase reentrante no CICS.

Reentrada

Um programa reentrante é aquele que não se modifica e pode reentrar em si mesmo e continuar processando
após uma interrupção do sistema operacional.

Quase-reentrada

Um programa quase reentrante é um programa reentrante no ambiente CICS. O CICS garante a reentrada
adquirindo uma área de armazenamento exclusiva para cada tarefa. Entre os comandos CICS, o CICS tem o
direito exclusivo de usar os recursos da CPU e pode executar outros comandos CICS de outras tarefas.

Há momentos em que muitos usuários estão usando o mesmo programa simultaneamente; isso é o que
chamamos de multi-threading. Por exemplo, vamos supor que 50 usuários estejam usando um programa A.
Aqui, o CICS fornecerá 50 armazenamentos de trabalho para esse programa, mas uma Divisão de
Procedimento. E essa técnica é conhecida como quase-reentrância.
CICS – Noçoes bãsicãs de COBOL
Os programas CICS são escritos em linguagem COBOL em Mainframes. Estaremos discutindo sobre como
escrever um programa COBOL-CICS simples, compilá-lo e, em seguida, executá-lo.

Programa CICS
Estaremos escrevendo um programa COBOL-CICS simples que exibe alguma mensagem na tela de saída do
CICS. Este programa é para demonstrar as etapas envolvidas na execução de um programa COBOL-CICS.
A seguir estão as etapas para codificar um programa simples -

Passo 1

Faça login nos mainframes e abra uma sessão TSO.

Passo 2

Crie um novo PDS no qual estaremos codificando nosso programa.

etapa 3

Crie um novo membro dentro do PDS e codifique o seguinte programa -

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 WS-MESSAGE PIC X(40).
01 WS-LENGTH PIC S9(4) COMP.
PROCEDURE DIVISION.
A000-MAIN-PARA.
MOVE 'Hello World' TO WS-MESSAGE
MOVE '+12' TO WS-LENGTH
EXEC CICS SEND TEXT
FROM (WS-MESSAGE)
LENGHT(WS-LENGTH)
END-EXEC
EXEC CICS RETURN
END-EXEC.

Passo 4

Depois de codificar o programa, precisamos compilá-lo. Podemos compilar o programa usando o seguinte
JCL −

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C


//CICSCOB EXEC CICSCOB,
//COPYLIB = ABC.XYZ.COPYLIB,
//LOADLIB = ABC.XYZ.LOADLIB
//LIB JCLLIB ORDER = CICSXXX.CICS.XXXPROC
//CPLSTP EXEC DFHEITVL
//TRN.SYSIN DD DSN = ABC.XYZ.PDS(HELLO),DISP = SHR
//LKED.SYSIN DD *
NAME HELLO(R)
//
Passo 5

Abra uma sessão do CICS.

Passo 6

Agora vamos instalar o programa usando o seguinte comando -

CEMT SET PROG(HELLO) NEW.

Passo 7

Execute o programa usando o ID da transação associado. O ID da transação é fornecido pelo administrador.


Ele mostrará a seguinte saída -

Compilação do programa
O fluxograma a seguir mostra as etapas usadas na compilação de um programa COBOL-CICS −
Tradutor

A função de um tradutor é verificar erros de sintaxe em comandos CICS. Ele os traduz em instruções
COBOL equivalentes.

Compilador

A função de um compilador é expandir os copybooks COBOL. Ele compila o código após verificar se há
erros de sintaxe no código-fonte.

Editor de links

A função de um Linkage Editor é vincular diferentes módulos de objetos para criar um único módulo de
carga.
CICS - BMS
BMS é conhecido como Basic Mapping Support. Um aplicativo consiste em telas formatadas que atuam
como uma ponte entre o terminal e os programas CICS. Para que ocorra a comunicação entre o terminal e os
programas CICS, usamos os serviços de entrada/saída do terminal CICS. Usamos o BMS para criar designs
de tela com posições e atributos adequados. A seguir estão as funções do BMS -

 O BMS atua como uma interface entre o terminal e os programas CICS.


 O design e o formato da tela são separados da lógica do aplicativo.
 O BMS torna o hardware do aplicativo independente.

Tela Formatada (Formatted Screen)


A tela mostrada abaixo é uma Tela de Menu e pode ser projetada usando o BMS. Seus pontos-chave são os
seguintes -

 A tela pode ter um título, data e qualquer outra informação a ser exibida.
 As opções 1, 2 e 3 são os campos Sem nome que são os títulos da tela.
 No campo Seleção, precisamos fornecer a entrada. Essa entrada é então enviada ao programa CICS
para processamento adicional.
 Na parte inferior da tela, as teclas de ação são exibidas.
 Todos os campos e a própria tela são definidos com macros BMS. Quando todo o mapa estiver
definido, podemos usar o JCL para montá-lo.
Termos Básicos do BMS
A seguir estão os termos básicos que usaremos nos próximos módulos −

Mapa

O mapa é um formato de tela única que pode ser projetado usando macros BMS. Pode ter nomes contendo
de 1 a 7 caracteres.

Conjunto de mapas

Mapset é uma coleção de mapas que são vinculados para formar um módulo de carga. Deve ter uma entrada
PPT. Pode ter nomes de 1 a 7 caracteres.

Macros BMS

O mapa BMS é um programa escrito em linguagem Assembly para gerenciar telas. As três macros usadas
para definir a tela são DFHMSD, DFHMDI e DFHMDF.

DFHMSD

A macro DFHMSD gera a definição do Mapset. É um identificador de macro que mostra que estamos
iniciando um mapset. O nome do conjunto de mapas é o nome do módulo de carregamento e uma entrada na
tabela PPT deve estar presente. A tabela a seguir mostra a lista de parâmetros que podem ser usados no
DFHMSD −

Sr.
Parâmetro e Descrição
No
TYPE
TYPE é usado para definir o tipo de mapa. Se TYPE =MAP – Criação de mapa físicoDSECT – Criação
1
de mapa simbólico&&SYSPARM – Criação de ambos, Físico e SimbólicoFINAL – Para indicar o final
da codificação de um conjunto de mapas.
MODE
2 MODE é usado para indicar operações de entrada/saída. IF MODE =IN – Apenas para um mapa de
entradaOUT – Apenas para um mapa de saídaINOUT Para ambos os mapas de entrada e saída
LANG
3
LANG = ASM/COBOL/PL1Decide o idioma da estrutura DSECT, para copiar no programa aplicativo.
STORAGE
4 If STORAGE =AUTO – Para adquirir uma área de mapa simbólico separada para cada mapsetBASE –
Para ter a mesma base de armazenamento para os mapas simbólicos de mais de um mapset
CTRL
CRTL é usado para definir as solicitações de controle do dispositivo. Se CTRL =FREEKB – Para
5
desbloquear o teclado FRSET – Para redefinir MDT para o status zero ALARM – Para definir um
alarme no tempo de exibição da tela PRINT – Para indicar o mapa a ser enviado para a impressora.
TERM
6 TERM = o tipo garante a independência do dispositivo, necessário se outro terminal além do 3270
estiver sendo usado.
TIOAPFX
7 TIOAPFX = SIM/NÃO – Para reservar o espaço de prefixo (12 bytes) para os comandos do BMS
acessarem o TIOA corretamente. Necessário para o nível de comando do CICS.
Exemplo

O exemplo a seguir mostra como codificar uma definição de mapset −

MPST01 DFHMSD TYPE = &SYSPARM, X


CTRL = (FREEKB,FRSET), X
LANG = COBOL, X
STORAGE = AUTO, X
TIOAPFX = YES, X
MODE = INOUT, X
TERM = 3270
DFHMSD TYPE = FINAL
END

DFHMDI

A macro DFHMDI gera definições de mapa. Isso mostra que estamos começando um novo mapa. Mapname
é seguido pela macro DFHMDI. Mapname é usado para enviar ou receber mapas. A tabela a seguir mostra
os parâmetros que usamos dentro de uma macro DFHMDI −

Sr.
Parâmetro e Descrição
No
SIZE
SIZE = (Linha, Coluna) Este parâmetro fornece o tamanho do mapa. O BMS nos permite construir uma
1
tela usando vários mapas, e esse parâmetro se torna importante quando estamos usando mais de um
mapa em um único mapset.
LINE
2
Indica o número da linha inicial do mapa.
COLUMN
3
Indica o número da coluna inicial do mapa.
JUSTIFY
4 É usado para especificar o mapa inteiro ou os campos do mapa a serem justificados à esquerda ou à
direita.
CTRL
CRTL é usado para definir as solicitações de controle do dispositivo. Se CTRL =FREEKB – Para
5
desbloquear o teclado FRSET – Para redefinir MDT para o status zero ALARM – Para definir um
alarme na hora da exibição da tela PRINT – Para indicar o mapa a ser enviado para a impressora
TIOAPFX
TIOAPFX = YES/NO
6
YES – Para reservar o espaço de prefixo (12 bytes) para os comandos do BMS acessarem o TIOA
adequadamente. Necessário para o nível de comando do CICS.

Exemplo

O exemplo a seguir mostra como codificar uma definição de mapa −

MAPSTD DFHMDI SIZE = (20,80), X


LINE = 01, X
COLUMN = 01, X
CTRL = (FREEKB,FRSET)
DFHMDF

A macro DFHMDF é usada para definir os nomes dos campos. O nome do campo é mencionado contra o
qual a macro DFHMDF é codificada. Este nome de campo é usado dentro do programa. Não escrevemos o
nome do campo contra o campo constante que não queremos usar dentro do programa. A tabela a seguir
mostra a lista de parâmetros que podem ser usados dentro de uma macro DFHMDF −

Sr.
Parâmetro e Descrição
No
POS
Esta é a posição na tela onde o campo deve aparecer. Um campo começa com seu byte de atributo,
1
portanto, se você codificar POS = (1,1), o byte de atributo desse campo estará na linha 1 da coluna 1 e os
dados reais começarão na coluna 2.
LENGTH
2
Este é o comprimento do campo, sem contar o byte de atributo.
INITIAL
Estes são os dados de caracteres para um campo de saída. Usamos isso para especificar rótulos e títulos
3
para a tela e mantê-los independentes do programa. Para o primeiro campo da tela do menu, por
exemplo, iremos codificar: INICIAL = 'MENU'.
JUSTIFY
4 É usado para especificar o mapa inteiro ou os campos do mapa a serem justificados à esquerda ou à
direita.
ATTRB
ATTRB = (ASKIP/PROT/UNPROT, NUM, BRT/NORM/DRK, IC, FSET) Atributos do campo.
ASKIP – Autoskip. Os dados não podem ser inseridos neste campo (cursor pula para o próximo campo).
PROT – Campo protegido. Os dados não podem ser inseridos neste campo. Se os dados forem
inseridos, isso causará o status de inibição de entrada.
UNPROT – Campo desprotegido. Os dados podem ser inseridos e isso é usado para todos os campos de
entrada.
5 NUM – Campo numérico. Somente números (0 a 9) e caracteres especiais ('.' e '-') são permitidos.
BRT – Exibição brilhante de um campo (destaque).
NORM – Exibição normal.
DRK – Tela escura.
IC – Inserir cursor. O cursor será posicionado neste campo. Caso o IC seja especificado mais de uma
vez, o cursor é colocado no último campo.
FSET – Conjunto de campo. O MDT é ativado para que os dados do campo sejam enviados do terminal
para o computador host, independentemente de o campo ser realmente modificado pelo usuário.
PICIN
6
PICIN se aplica ao campo de dados que é usado como entrada como PICIN = 9(8).
PICOUT
7
PICIN se aplica ao campo de dados que é usado como saída como PICOUT = Z(8).

Exemplo

O exemplo a seguir mostra como codificar uma definição de campo -

DFHMDF POS = (01,01), X


LENGTH = 7, X
INITIAL = ‘SCREEN1’, X
ATTRB = (PROT,NORM)
STDID DFHMDF POS = (01,70), X
LENGTH = 08, X
ATTRB = (PROT,NORM)
CICS - MAPA
O BMS recebe os dados inseridos pelo usuário e os formata em uma área simbólica do mapa. O programa
aplicativo tem acesso apenas aos dados presentes no mapa simbólico. O programa aplicativo processa os
dados e a saída é enviada para o mapa simbólico. O BMS mesclará a saída dos dados simbólicos com o
mapa físico.

Mapa físico (Physical Map)


O Mapa Físico é um módulo de carregamento na biblioteca de carregamento que contém informações sobre
como o mapa deve ser exibido.

 Ele contém os detalhes sobre os atributos de todos os campos do mapa e suas posições.
 Ele contém o formato de exibição do mapa para um determinado terminal.
 Ele é codificado usando macros BMS. Ele é montado separadamente e editado por link na biblioteca
CICS.

Mapa Simbólico (Symbolic Map)


Um Mapa Simbólico é um livro de Cópia na biblioteca. O livro Copy é usado pelo programa aplicativo
CICS para enviar e receber dados do terminal.

 Ele contém todos os dados variáveis que são copiados na seção WORKINGSTORAGE do programa.
 Tem todos os campos nomeados. O programador do aplicativo usa esses campos para ler e gravar
dados no mapa.
Campo Skipper e Stopper (Skipper and Stopper Field)
Para um campo nomeado desprotegido, em um mapa, se tivermos especificado um comprimento de 10, isso
significa que o campo de nome pode receber valores cujo comprimento não pode exceder 10. Mas quando
você exibe este mapa usando o CICS e começa a inserir valores para este campo em na tela, podemos inserir
mais de 10 Caracteres, ou seja, até o final da tela e podemos inserir até na próxima linha. Para evitar isso,
usamos o campo Skipper ou o campo Stopper. Um campo Skipper geralmente seria um campo sem nome de
comprimento 1, especificado após um campo nomeado.

Skipper Field

Se colocarmos um campo skipper após o campo desprotegido nomeado, ao inserir o valor, assim que o
comprimento especificado for alcançado, o cursor se posicionará automaticamente no próximo campo
desprotegido. O exemplo a seguir mostra como adicionar um campo skipper −

NUMBER DFHMDF POS = (01,01), X


LENGTH = 5, X
ATTRB = (UNPROT,IC)
DFHMDF POS = (01,07), X
LENGTH = 1, X
ATTRB = (ASKIP)

Stopper Field

Se colocarmos um campo limitador após o campo desprotegido nomeado, ao inserir o valor, uma vez que o
comprimento especificado seja alcançado, o cursor parará seu posicionamento. O exemplo a seguir mostra
como adicionar um campo stopper −

NUMBER DFHMDF POS = (01,01), X


LENGTH = 5, X
ATTRB = (UNPROT,IC)
DFHMDF POS = (01,07), X
LENGTH = 1, X
ATTRB = (PROT)
Byte de atributo (Attribute Byte)
O byte de atributo de qualquer campo armazena informações sobre as propriedades físicas do campo. O
diagrama a seguir e a tabela explicam o significado de cada bit.

Posição do
Descrição Configurações de bits
bit
0&1 Determinado pelo conteúdo do bit 2 a 7
00 – Alfanumérico Desprotegido 01 – Numérico Desprotegido 10 –
2e3 Proteção e Mudança
Parada Protegida 11 – Pular Protegido
4e5 Intensidade 00 – Normal01 – Normal10 – Brilhante11 – Sem exibição ( Escuro )
6 Deve ser zero sempre
Etiqueta de Dados
7 0 – O campo não foi modificado 1 – O campo foi modificado
Modificada

Etiqueta de Dados Modificada


A etiqueta de dados modificados (MDT - Modified Data Tag) é o último bit no byte de atributo.

 MDT é um sinalizador que contém um único bit. Especifica se o valor deve ser transferido para o
sistema ou não.
 Seu valor padrão é 1, quando o valor do campo é alterado.
 Se MDT for 0, os dados não podem ser transferidos; e se MDT for 1, os dados podem ser
transferidos.

Enviar mapa (Send Map)


O comando send map grava a saída formatada no terminal. É usado para enviar o mapa para o terminal a
partir do programa aplicativo. O segmento de código a seguir mostra como enviar um mapa para o terminal

EXEC CICS SEND


MAP('map-name')
MAPSET('mapset-name')
[FROM(data-area)]
[LENGTH(data_value)]
[DATAONLY]
[MAPONLY]
[CURSOR]
[ERASE/ERASEAUP]
[FREEKB]
[FRSET]
END-EXEC
A tabela a seguir lista os parâmetros usados em um comando enviar mapa junto com seu significado.

Sr.
Parâmetro e Descrição
No
Map-name
1
É o nome do mapa que queremos enviar. É obrigatório.
Mapset-name
2 É o nome do conjunto de mapas que contém o mapname. O nome do conjunto de mapas é necessário, a
menos que seja igual ao nome do mapa.
FROM
3 É usado se decidimos usar um nome DSECT diferente, devemos usar a opção FROM (dsect-name)
junto com o comando SEND MAP.
MAPONLY
4 Isso significa que nenhum dado do seu programa deve ser mesclado no mapa e apenas as informações
do mapa são transmitidas.
DATAONLY
É o oposto lógico do MAPONLY. Nós o usamos para modificar os dados variáveis em um display que
5
já foi criado. Apenas os dados do seu programa são enviados para a tela. As constantes no mapa não
são enviadas.
ERASE
6
Faz com que toda a tela seja apagada antes que o que estamos enviando seja mostrado.
ERASEUP
7
Faz com que apenas os campos desprotegidos sejam apagados.
FRSET
8 Flag Reset desativa a tag de dados modificados no byte de atributo para todos os campos na tela antes
que o que você está enviando seja colocado lá.
CURSOR
9 Ele pode ser usado para posicionar o cursor na tela do terminal. O cursor pode ser definido movendo -1
para a parte L do campo e, em seguida, enviando o mapa.
ALARM
10
Isso faz com que o alarme sonoro soe.
FREEKB.
11
O teclado é desbloqueado se especificarmos FREEKB no mapa ou no comando SEND.
PRINT
12
Ele permite que a saída de um comando SEND seja impressa em uma impressora.
FORMFEED
13 Isso faz com que a impressora restaure o papel para o início da próxima página antes que a saída seja
impressa.

Receber mapa (Receive Map)


Quando queremos receber entrada de um terminal, usamos o comando RECEIVE MAP. Os parâmetros
MAP e MAPSET têm exatamente o mesmo significado do comando SEND MAP. O segmento de código a
seguir mostra como receber um mapa −

EXEC CICS RECEIVE


MAP('map-name')
MAPSET('mapset-name')
[INTO(data-area)]
[FROM(data-area)]
[LENGTH(data_value)]
END-EXEC
Execução do conjunto de mapas (Mapset Execution)
As seguintes etapas são necessárias para desenvolver e executar um mapset −

 Passo 1− Abra uma sessão TSO.


 Passo 2− Criar um novo PDS.
 etapa 3− Codifique um mapset em um novo membro de acordo com o requisito.
 Passo 4− Monte o mapset usando o JCL fornecido pelo administrador do CICS.
 Passo 5− Abra uma sessão CICS.
 Passo 6− Instale o programa usando o comando −CEMT SET PROG(mapset-name) NEW
 Passo 7− Digite o seguinte comando para enviar o mapa para o terminal −CECI SEND MAP(map-
name) MAPSET(mapset-name) ERASE FREEKB
CICS - Bloco de interfãce
Qualquer programa aplicativo exigiria uma interface para interagir com o CICS. O EIB (Execute Interface
Block) atua como uma interface para permitir que os programas aplicativos se comuniquem com o CICS.
EIB contém as informações necessárias durante a execução de um programa.

Verbos COBOL Restritos


Ao codificar um programa CICS, não podemos usar os comandos que retornam o controle diretamente ao
MVS. Se codificarmos esses verbos COBOL, não haverá nenhum erro de compilação, mas podemos obter
resultados imprevisíveis. A seguir estão os verbos COBOL que não devem ser usados em um programa
CICS -

 Instruções de E/S de arquivo, como Abrir, Ler, Gravar, Reescrever, Fechar, Excluir e Iniciar. Todas
as E/S de arquivo no CICS são tratadas pelo módulo de controle de arquivo e eles têm seu próprio
conjunto de instruções como READ, WRITE, REWRITE e DELETE, que discutiremos nos
próximos módulos.
 Seção de Arquivo e Divisão de Meio Ambiente não é necessária.
 As instruções COBOL que invocam funções do sistema operacional como Accept, Date/Time não
podem ser usadas.
 Não use DISPLAY, MERGE, STOP RUN e GO BACK.

Executar bloco de interface


Execute Interface Block (EIB) é um bloco de controle que é carregado automaticamente pelo CICS para
cada programa.

 O EIB é exclusivo para uma tarefa e existe durante a tarefa. Ele contém um conjunto de informações
relacionadas ao sistema correspondente à tarefa.
 Ele contém informações sobre identificador de transação, hora, data, etc., que são usadas pelo CICS
durante a execução de um programa aplicativo.
 Todo programa executado como parte da tarefa tem acesso ao mesmo EIB.
 Os dados no EIB em tempo de execução podem ser visualizados executando o programa no modo
CEDF.

Campos EIB (EIB Fields)


A tabela a seguir fornece uma lista de campos que estão presentes no EIB −

Campo BEI Cláusula PIC Descrição


EIBAID X(1) Tecla de ajuda pressionada
EIBCALEN S9(4) COMP Ele contém o comprimento de DFHCOMMAREA
EIBDATE S9(7) COMP-3 Ele contém a data atual do sistema
EIBRCODE X(6) Contém código de retorno da última transação
EIBTASKN S9(7) COMP-3 Ele contém o número da tarefa
EIBTIME S9(7) COMP-3 Ele contém a hora atual do sistema
EIBTRID X(4) Identificador de terminal
EIBTRNID X(4) Identificador de transação
Classificação de Programas CICS
Os Programas CICS são classificados nas três categorias a seguir, que discutiremos uma a uma −

 Programas não conversacionais (Non-Conversational Programs)


 Programas Conversacionais (Conversational Programs)
 Programas Pseudo-Conversacionais – Discutiremos no próximo módulo (Pseudo-Conversational
Programs)

Programas não conversacionais


Ao executar programas não conversacionais, nenhuma intervenção humana é necessária. Todas as entradas
necessárias são fornecidas quando o programa é iniciado.

 Eles são semelhantes aos programas em lote executados no modo de lote. Portanto, no CICS, eles
raramente são desenvolvidos.
 Podemos dizer que são usados apenas para exibir uma sequência de telas em intervalos regulares de
tempo.

Exemplo

O exemplo a seguir mostra um programa não conversacional que simplesmente exibirá “HELLO WORLD”
no terminal CICS como saída −

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-MESSAGE PIC X(30).
PROCEDURE DIVISION.
********************************************************
* SENDING DATA TO SCREEN *
********************************************************
MOVE 'HELLO WORLD' TO WS-MESSAGE
EXEC CICS SEND TEXT
FROM (WS-MESSAGE)
END-EXEC
********************************************************
* TASK TERMINATES WITHOUT ANY INTERACTION FROM THE USER*
********************************************************
EXEC CICS RETURN
END-EXEC.

Programa conversacionais
Enviar uma mensagem para o terminal e receber uma resposta do usuário é chamado de Conversacional. Um
aplicativo online consegue uma conversa entre o usuário e o programa aplicativo por um par de comandos
SEND e RECEIVE. Os pontos-chave de um programa de conversação são os seguintes -

 O sistema envia uma mensagem para a tela e aguarda a resposta do usuário.


 O tempo que o usuário leva para responder é conhecido como Think Time. Esse tempo é
consideravelmente alto, o que é uma grande desvantagem dos programas de conversão.
 O usuário fornece a entrada necessária e pressiona uma tecla AID.
 O aplicativo processa a entrada do usuário e envia a saída.
 O programa é carregado no armazenamento principal no início e é mantido até que a tarefa termine.
Exemplo

O exemplo a seguir mostra um programa de conversão que recebe a entrada do usuário e simplesmente
exibe a mesma entrada no terminal CICS como saída −

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-MESSAGE PIC X(30) VALUE SPACES.
PROCEDURE DIVISION.
MOVE 'ENTER MESSAGE' TO WS-MESSAGE
********************************************************
* SENDING DATA FROM PROGRAM TO SCREEN *
********************************************************
EXEC CICS SEND TEXT
FROM (WS-MESSAGE)
END-EXEC
********************************************************
* GETTING INPUT FROM USER *
********************************************************
EXEC CICS RECEIVE
INTO(WS-MESSAGE)
END-EXEC
EXEC CICS SEND TEXT
FROM (WS-MESSAGE)
END-EXEC
********************************************************
* COMMAND TO TERMINATE THE TRANSACTION *
********************************************************
EXEC CICS RETURN
END-EXEC.
CICS – Pseúdoprogrãmãção
A partir de agora, cobrimos programas de não conversão e conversão. Os programas de conversão têm uma
grande desvantagem, pois seu tempo de reflexão é consideravelmente alto. Para superar esse problema, a
programação de pseudoconversão entrou em cena. Agora vamos discutir mais sobre os programas de
pseudo-conversão.

Programa de Pseudoconversacional
A seguir está a sequência de eventos que ocorrem em um programa de pseudoconversão -

 Passo 1− O sistema envia uma mensagem para a tela e finaliza a transação, especificando a transação
a ser iniciada quando a entrada do usuário for recebida.
 Passo 2− O sistema aloca os recursos utilizados por esta transação para outras transações em
execução no sistema. Assim, podemos utilizar os recursos em um programa de pseudo-conversão até
que o usuário forneça a entrada.
 etapa 3− O sistema pesquisa a entrada do terminal em intervalos regulares de tempo. Quando a
entrada é recebida, ela é processada e a saída é exibida.
 Passo 4− O programa aplicativo é carregado no armazenamento principal quando necessário e
liberado quando não está em uso.

Técnicas de Pseudoconversação
O ponto importante a ser observado na pseudoconversação é a passagem de dados entre cada tarefa.
Discutiremos sobre as técnicas de passagem de dados.

COMMAREA

COMMAREA é conhecida como área de comunicação. COMMAREA é usado para passar dados entre
tarefas. O exemplo a seguir mostra como passar COMMAREA onde WSCOMMAREA e WS-
COMMAREA-LENGTH são declarados na seção de armazenamento de trabalho -
EXEC CICS RETURN
TRANSID ('transaction-id')
COMMAREA (WS-COMMAREA)
LENGTH (WS-COMMAREA-LENGTH)
END-EXEC.

DFHCOMMAREA

DFHCOMMAREA é uma área de memória especial que é fornecida pelo CICS para cada tarefa.

 Ele é usado para passar dados de um programa para outro programa. Os programas podem existir na
mesma transação ou também em transações diferentes.
 É declarado na Seção Linkage do programa no nível 01.
 Ele deve ter a mesma cláusula de imagem que WS-COMMAREA.
 Os dados podem ser movidos de volta de DFHCOMMAREA para WS-COMMAREA usando uma
instrução MOVE.
 MOVE DFHCOMMAREA TO WS-COMMAREA.

Exemplo

Após o envio do mapa, a tarefa termina e aguarda a resposta do usuário. Nesta fase, os dados precisam ser
salvos, pois embora a tarefa tenha terminado, a transação não terminou. Quando esta transação for retomada,
será necessário o status anterior da tarefa. O usuário insere a entrada. Isso agora deve ser recebido pelo
comando RECEIVE MAP e depois validado. O exemplo a seguir mostra como declarar COMMAREA e
DFHCOMMAREA −

WORKING-STORAGE SECTION.
01 WS-COMMAREA.
05 WS-DATA PIC X(10).

LINKAGE SECTION.
01 DFHCOMMAREA.
05 LK-DATA PIC X(10).

Pseudo-código
Dada a seguir está a lógica do pseudocódigo que usamos na pseudoprogramação -

MOVE DFHCOMMAREA TO WS-COMMAREA


IF EIBCALEN = 0
STEP1: SEND MAP
STEP2: MOVE <internal-transaction-id1> to WS-COMMAREA
STEP3: ISSUE CONDITIONAL RETURN
ELSE
IF WS-COMMAREA = <internal-transaction-id1>
STEP4: RECEIVE MAP
STEP5: PROCESS DATA
STEP6: SEND OUTPUT MAP
STEP7: MOVE <internal-transaction-ID2> to WS-COMMAREA
STEP8: ISSUE CONDITIONAL RETURN
END-IF
END-IF
STEP9: REPEAT STEP3 TO STEP7 UNTIL EXIT
Exemplo

O exemplo a seguir mostra um programa de pseudoconversão −

******************************************************************
* PROGRAM TO DEMONSTRATE PSEUDO-CONVERSATION *
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-MESSAGE PIC X(30).
01 WS-COMMAREA PIC X(10) VALUE SPACES.
LINKAGE SECTION.
01 DFHCOMMAREA PIC X(10).
PROCEDURE DIVISION.
MOVE DFHCOMMAREA TO WS-COMMAREA
IF WS-COMMAREA = SPACES
******************************************************************
* TRANSACTION GETTING EXECUTED FOR THE FIRST TIME *
******************************************************************
MOVE 'HELLO' TO WS-MESSAGE
EXEC CICS SEND TEXT
FROM (WS-MESSAGE)
END-EXEC
MOVE 'FIRST' TO WS-COMMAREA
******************************************************************
* TASK ENDS AS A RESULT OF RETURN. IF AID KEY PRESSED, NEXT *
* TRANSACTION SHOULD BE TP002. DATA PASSED FROM WS-COMMAREA TO *
* DFHCOMMAREA *
******************************************************************
EXEC CICS RETURN
TRANSID('TP002')
COMMAREA(WS-COMMAREA)
END-EXEC
******************************************************************
* IF COMMAREA IS NOT EMPTY , THEN TP002 HAS BEEN EXECUTED ONCE *
* ALREADY, USER INTERACTION IS FACILITATED BY RECEIVE *
******************************************************************
ELSE
EXEC CICS RECEIVE
INTO(WS-MESSAGE)
END-EXEC
EXEC CICS SEND TEXT
FROM (WS-MESSAGE)
END-EXEC
******************************************************************
* TASK ENDS AS A RESULT OF RETURN, NO NEXT TRANSACTION SPECIFIED *
* TO BE EXECUTED *
******************************************************************
EXEC CICS RETURN
END-EXEC
END-IF.

Vantagens da Pseudoconversação
A seguir estão as vantagens da pseudo conversão -

 Os recursos são melhor utilizados. Os recursos são liberados assim que o programa é suspenso
temporariamente.
 Parece que está no modo de conversação.
 Tem melhor tempo de resposta.
Declarações de Devolução
A seguir estão os dois tipos de instruções de retorno usadas no CICS -

Retorno-1

Quando a seguinte instrução de retorno incondicional é emitida, a tarefa e a transação (programa) são
encerradas.

EXEC CICS RETURN


END-EXEC.

Retorno-2

Quando o seguinte retorno condicional, ou seja, retorno com instrução TRANSID é emitido, o controle
retorna ao CICS com o próximo transid a ser executado. A próxima transação começa quando o usuário
pressiona uma tecla AID.

EXEC CICS RETURN


TRANSID ('trans-id')
[COMMAREA(WS-COMMAREA)]
END-EXEC.
CICS – Chãves de Aúxílio (Aid Keys)
Conforme discutimos em módulos anteriores, as chaves AID são conhecidas como Chaves identificadoras
de atenção. O CICS pode detectar apenas chaves AID. Depois de digitar todas as entradas, somente quando
o usuário pressiona uma das teclas AID, o CICS assume o controle. As teclas AID incluem ENTER, PF1 a
PF24, PA1 a PA3 e CLEAR.

Validando chaves AID


A tecla pressionada pelo usuário é verificada usando o EIBAID.

 O EIBAID tem um byte de comprimento e contém o valor real do identificador de atenção usado no
fluxo de entrada 3270.
 O CICS nos fornece um conjunto pré-codificado de variáveis que podem ser usadas no programa
aplicativo escrevendo a seguinte instrução −COPY DFHAID

DFHAID
DFHAID é um copybook usado em programas aplicativos para incluir um conjunto de variáveis pré-
codificado do CICS. O seguinte conteúdo está presente no copybook DFHAID -

01 DFHAID.
02 DFHNULL PIC X VALUE IS ' '.
02 DFHENTER PIC X VALUE IS ''''.
02 DFHCLEAR PIC X VALUE IS '_'.
02 DFHCLRP PIC X VALUE IS '¦'.
02 DFHPEN PIC X VALUE IS '='.
02 DFHOPID PIC X VALUE IS 'W'.
02 DFHMSRE PIC X VALUE IS 'X'.
02 DFHSTRF PIC X VALUE IS 'h'.
02 DFHTRIG PIC X VALUE IS '"'.
02 DFHPA1 PIC X VALUE IS '%'.
02 DFHPA2 PIC X VALUE IS '>'.
02 DFHPA3 PIC X VALUE IS ','.
02 DFHPF1 PIC X VALUE IS '1'.
02 DFHPF2 PIC X VALUE IS '2'.
02 DFHPF3 PIC X VALUE IS '3'.
02 DFHPF4 PIC X VALUE IS '4'.
02 DFHPF5 PIC X VALUE IS '5'.
02 DFHPF6 PIC X VALUE IS '6'.
02 DFHPF7 PIC X VALUE IS '7'.
02 DFHPF8 PIC X VALUE IS '8'.
02 DFHPF9 PIC X VALUE IS '9'.
02 DFHPF10 PIC X VALUE IS ':'.
02 DFHPF11 PIC X VALUE IS '#'.
02 DFHPF12 PIC X VALUE IS '@'.
02 DFHPF13 PIC X VALUE IS 'A'.
02 DFHPF14 PIC X VALUE IS 'B'.
02 DFHPF15 PIC X VALUE IS 'C'.
02 DFHPF16 PIC X VALUE IS 'D'.
02 DFHPF17 PIC X VALUE IS 'E'.
02 DFHPF18 PIC X VALUE IS 'F'.
02 DFHPF19 PIC X VALUE IS 'G'.
02 DFHPF20 PIC X VALUE IS 'H'.
02 DFHPF21 PIC X VALUE IS 'I'.
02 DFHPF22 PIC X VALUE IS '¢'.
02 DFHPF23 PIC X VALUE IS '.'.
02 DFHPF24 PIC X VALUE IS '<'.
Exemplo

O exemplo a seguir mostra como usar o copybook DFHAID em um programa aplicativo -

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
COPY DFHAID.
PROCEDURE DIVISION.
A000-AIDKEY-PARA.
EVALUATE EIBAID
WHEN DFHAID
PERFORM A000-PROCES-PARA
WHEN DFHPF1
PERFORM A001-HELP-PARA
WHEN DFHPF3
PERFORM A001-EXIT-PARA
END-EVALUATE.

Posicionamento do Cursor
Existem duas maneiras de substituir a posição especificada na definição do mapa.

 Uma maneira é especificar a posição da tela em relação ao número da linha e coluna na opção
CURSOR no comando enviar mapa.
 Outra maneira é mover -1 para a variável simbólica do mapa com o sufixo L. Em seguida, envie o
mapa com uma opção de CURSOR no SEND MAP.

Exemplo

O exemplo a seguir mostra como substituir a posição do cursor para o campo NAME −

MOVE -1 TO NAMEL
EXEC CICS SEND
MAP ('map-name')
MAPSET ('name-field')
ERASE
FREEKB
CURSOR
END-EXEC.

Modificando atributos dinamicamente


Ao enviar um mapa, se quisermos ter atributos diferentes para um campo diferente daquele especificado no
mapa, podemos substituir isso definindo o campo no programa. A seguir está a explicação para substituir os
atributos de um campo -

 Para substituir os atributos de um campo, devemos incluir DFHATTR no programa aplicativo. Ele é
fornecido pelo CICS.
 O atributo necessário pode ser escolhido na lista e movido para a variável do campo simbólico com o
sufixo 'A'.
DFHATTR contém o seguinte conteúdo -

01 CICS-ATTRIBUTES.
05 ATTR-UXN PIC X(01) VALUE SPACE.
05 ATTR-UXMN PIC X(01) VALUE 'A'.
05 ATTR-UXNL PIC X(01) VALUE 'D'.
05 ATTR-UXMNL PIC X(01) VALUE 'E'.
05 ATTR-UXBL PIC X(01) VALUE 'H'.
05 ATTR-UXMBL PIC X(01) VALUE 'I'.
05 ATTR-UXD PIC X(01) VALUE '<'.
05 ATTR-UXMD PIC X(01) VALUE '('.
05 ATTR-U9N PIC X(01) VALUE '&'.
05 ATTR-U9MN PIC X(01) VALUE 'J'.
05 ATTR-U9NL PIC X(01) VALUE 'M'.
05 ATTR-U9MNL PIC X(01) VALUE 'N'.
05 ATTR-U9BL PIC X(01) VALUE 'Q'.
05 ATTR-U9MBL PIC X(01) VALUE 'R'.
05 ATTR-U9D PIC X(01) VALUE '*'.
05 ATTR-U9MD PIC X(01) VALUE ')'.
05 ATTR-PXN PIC X(01) VALUE '-'.
05 ATTR-PXMN PIC X(01) VALUE '/'.
05 ATTR-PXNL PIC X(01) VALUE 'U'.
05 ATTR-PXMNL PIC X(01) VALUE 'V'.
05 ATTR-PXBL PIC X(01) VALUE 'Y'.
05 ATTR-PXMBL PIC X(01) VALUE 'Z'.
05 ATTR-PXD PIC X(01) VALUE '%'.
05 ATTR-PSN PIC X(01) VALUE '0'.
05 ATTR-PSMN PIC X(01) VALUE '1'.
05 ATTR-PSNL PIC X(01) VALUE '4'.
05 ATTR-PSMNL PIC X(01) VALUE '5'.
05 ATTR-PSBL PIC X(01) VALUE '8'.
05 ATTR-PSMBL PIC X(01) VALUE '9'.
05 ATTR-PSD PIC X(01) VALUE '@'.
05 ATTR-PSMD PIC X(01) VALUE "'".
CICS – Mãnipúlãção de Arqúivos
O CICS nos permite acessar os dados do arquivo de várias maneiras. A maioria dos acessos aos arquivos é
aleatória no sistema online, pois as transações a serem processadas não são agrupadas e classificadas em
qualquer tipo de ordem. Portanto, o CICS suporta os métodos de acesso direto usuais − VSAM e DAM
(método de acesso direto). Também nos permite acessar dados usando gerenciadores de banco de dados.

CICS – Trãtãmento de Erros


Existem muitos tipos de abends e erros que podem ocorrer ao usar um aplicativo CICS. Erros podem surgir
devido a problemas de hardware ou software. Discutiremos sobre erros e tratamento de erros neste módulo.

Erros CICS
A seguir estão os erros do CICS que podem surgir durante a execução de aplicativos CICS -

 Alguns erros esperados do CICS surgem quando as condições não são normais no sistema CICS. Por
exemplo, se estivermos lendo um determinado registro e o registro não for encontrado, obteremos o
erro “Não encontrado”. Mapfail é um erro semelhante. Erros nesta categoria são tratados pela lógica
explícita no programa.
 Erros lógicos surgem devido a alguns motivos, como divisão por zero, caractere inválido no campo
numérico ou erro de identificação da transação.
 Erros relacionados a hardware ou outras condições do sistema estão além do controle de um
programa aplicativo. Por exemplo, obtendo erro de entrada/saída ao acessar um arquivo.
CICS – Operãçoes de Controle
O CICS Program Control Program (PCP) gerencia o fluxo de programas aplicativos. Todos os programas
aplicativos devem ter uma entrada na Tabela de Programas de Processamento. A seguir estão os comandos
que são usados para serviços de controle de programa -

 XCTL
 Link
 Load
 Release
 Return

Níveis Lógicos do Programa


Os programas aplicativos executados no CICS possuem vários níveis lógicos. O primeiro programa que
recebe o controle diretamente está no nível lógico mais alto, ou seja, Nível 1. O programa vinculado está no
próximo nível lógico do programa vinculador. Os programas XCTL são executados no mesmo nível. Ficará
claro quando passarmos por Link e XCTL, mais adiante neste módulo. A imagem a seguir mostra os níveis
lógicos −
XCTLName
A explicação fundamental do XCTL é a seguinte -

 O comando XCTL é usado para passar o controle de um programa para outro no mesmo nível.
 Não espera o controle de volta.
 É semelhante à instrução GO TO.
 Um programa XCTL pode ser um pseudoconversacional.

Exemplo

O exemplo a seguir mostra como usar o comando XCTL para passar o controle para outro programa -

IDENTIFICATION DIVISION.
PROGRAM-ID. PROG1.
WORKING-STORAGE SECTION.
01 WS-COMMAREA PIC X(100).
PROCEDURE DIVISION.

EXEC CICS XCTL


PROGRAM ('PROG2')
COMMAREA (WS-COMMAREA)
LENGTH (100)
END-EXEC.

Este comando transfere o controle a ser passado para o programa 'PROG2' com 100 bytes de dados.
COMMAREA é um parâmetro opcional e é o nome da área que contém os dados a serem passados ou a área
para a qual os resultados devem ser retornados.

Link
O comando Link é usado para transferir o controle para outro programa em um nível inferior. Ele espera o
controle de volta. Um programa vinculado não pode ser pseudoconversacional.

Exemplo

O exemplo a seguir mostra como usar o comando Link para passar o controle para outro programa -

IDENTIFICATION DIVISION.
PROGRAM-ID. PROG1.
WORKING-STORAGE SECTION.
01 WS-COMMAREA PIC X(100).
PROCEDURE DIVISION.

EXEC CICS LINK


PROGRAM ('PROG2')
COMMAREA (WS-COMMAREA)
LENGTH (100)
END-EXEC.

Load
O comando Load é usado para carregar um programa ou uma tabela. A seguir está a sintaxe do comando
Load -

EXEC CICS LOAD


PROGRAM ('name')
END-EXEC.
Release
O comando Release é usado para liberar um programa ou uma tabela. A seguir está a sintaxe do comando
Release -

EXEC CICS RELEASE


PROGRAM ('name')
END-EXEC.

Return
O comando Return é usado para retornar o controle ao próximo nível lógico superior. A seguir está a sintaxe
do comando Return -

EXEC CICS RETURN


PROGRAM ('name')
COMMAREA (data-value)
LENGTH (data-value)
END-EXEC.

Operações de controle de intervalo


As operações de controle de intervalo são dos dois tipos a seguir -

ASKTIME

ASKTIME é usado para solicitar a hora e a data atuais ou carimbo de data/hora. Em seguida, movemos esse
valor para a variável de armazenamento de trabalho dentro do programa. A seguir está a sintaxe do comando
ASKTIME -

EXEC CICS ASKTIME


[ABSTIME(WS-TIMESTAMP)]
END-EXEC.

FORMATTIME

FORMATTIME formata o timestamp no formato necessário com base nas opções, que podem ser YYDDD,
YYMMDD ou YYDDMM para data. DATESEP indica o separador para DATE, assim como a variável
TIMESEP para TIME. A seguir está a sintaxe do comando FORMATTIME -

EXEC CICS FORMATTIME


ABSTIME(WS-TIMESTAMP)
[YYDDD(WS-DATE)]
[YYMMDD(WS-DATE)]
[YYDDMM(WS-DATE)]
[DATESEP(WS-DATE-SEP)]
[TIME(WS-TIME)]
[TIMESEP(WS-TIME-SEP)]
END-EXEC.
CICS - Armãzenãmento Temporãrio
Existem diferentes blocos de rascunho disponíveis no CICS para salvar dados ou para transferir os dados
entre as transações. Existem cinco áreas de armazenamento fornecidas pelo CICS, que discutiremos neste
módulo.

COMMAREA
A COMMAREA se comporta como um bloco de rascunho que pode ser usado para passar dados de um
programa para outro programa, seja dentro da mesma transação ou de transações diferentes. Deve ser
definido na SEÇÃO LINKAGE usando o nome DFHCOMMAREA.

Área de Trabalho Comum


Qualquer transação na região CICS pode acessar a Área de Trabalho Comum e, portanto, o formato e o uso
dela devem ser acordados por todas as transações no sistema que decidem usá-la. Há apenas um CWA em
toda a região CICS.

Área de trabalho da transação


A área de trabalho da transação é usada para passar dados entre os programas aplicativos que são executados
na mesma transação. TWA existe apenas durante a transação. Seu tamanho é definido na Tabela de Controle
do Programa.

Fila de armazenamento temporário


Temporary Storage Queue (TSQ) é um recurso fornecido pelo Temporary Storage Control Program (TSP).

 Um TSQ é uma fila de registros que podem ser criados, lidos e excluídos por diferentes tarefas ou
programas na mesma região CICS.
 Um identificador de fila é usado para identificar TSQ.
 Um registro dentro de um TSQ é identificado pela posição relativa conhecida como número do item.
 Os registros no TSQ permanecem acessíveis até que todo o TSQ seja excluído explicitamente.
 Os registros no TSQ podem ser lidos sequencialmente ou diretamente.
 Os TSQs podem ser gravados no armazenamento principal ou no armazenamento auxiliar no DASD.

WRITEQ TS
Este comando é usado para adicionar itens a um TSQ existente. Além disso, podemos criar um novo TSQ
usando este comando. A seguir está a sintaxe do comando WRITEQ TS -

Sintaxe
EXEC CICS WRITEQ TS
QUEUE ('queue-name')
FROM (queue-record)
[LENGTH (queue-record-length)]
[ITEM (item-number)]
[REWRITE]
[MAIN /AUXILIARY]
END-EXEC.
A seguir estão os detalhes dos parâmetros usados no comando WRITEQ TS −

 A QUEUE é identificada pelo nome que é mencionado neste parâmetro.


 As opções FROM e LENGTH são usadas para especificar o registro a ser gravado na fila e seu
comprimento.
 Se a opção ITEM for especificada, o CICS atribuirá um número de item ao registro na fila e
configurará a área de dados fornecida nessa opção para o número do item. Se o registro iniciar uma
nova fila, o número do item atribuído é 1 e os números dos itens subsequentes seguem
sequencialmente.
 A opção REWRITE é utilizada para atualizar um registro já presente na fila.
 A opção PRINCIPAL / AUXILIAR é usada para armazenar registros no armazenamento principal ou
auxiliar. O padrão é AUXILIAR.

READQ TS
Este comando é usado para ler a fila de armazenamento temporário. A seguir está a sintaxe de READQ TS -

Sintaxe
EXEC CICS READQ TS
QUEUE ('queue-name')
INTO (queue-record)
[LENGTH (queue-record-length)]
[ITEM (item-number)]
[NEXT]
END-EXEC.

DELETEQ TS
Este comando é usado para excluir a fila de armazenamento temporário. A seguir está a sintaxe de
DELETEQ TS -

Sintaxe
EXEC CICS DELETEQ TS
QUEUE ('queue-name')
END-EXEC.

Fila de Dados Transitórios


A Fila de Dados Transitórios é transitória por natureza, pois pode ser criada e excluída rapidamente. Permite
apenas acesso sequencial.

 O conteúdo da fila pode ser lido apenas uma vez, pois é destruído quando uma leitura é executada e,
portanto, o nome Transient.
 Não pode ser atualizado.
 Requer uma entrada no DCT.
WRITEQ TD
Este comando é usado para gravar filas de dados transitórios e eles sempre são gravados em um arquivo. A
seguir está a sintaxe do comando WRITEQ TD -

Sintaxe
EXEC CICS WRITEQ TD
QUEUE ('queue-name')
FROM (queue-record)
[LENGTH (queue-record-length)]
END-EXEC.

READQ TD
Este comando é usado para ler a fila de dados transitórios. A seguir está a sintaxe de READQ TD -

Sintaxe
EXEC CICS READQ TD
QUEUE ('queue-name')
INTO (queue-record)
[LENGTH (queue-record-length)]
END-EXEC.

DELETEQ TD
Este comando é usado para excluir a fila de dados transitórios. A seguir está a sintaxe de DELETEQ TD -

Sintaxe
EXEC CICS DELETEQ TD
QUEUE ('queue-name')
END-EXEC.
CICS – Intercomúnicãção
A comunicação mútua que ocorre entre dois ou mais sistemas é conhecida como intercomunicação.

Benefícios da Intercomunicação
Os benefícios importantes da intercomunicação são os seguintes -

 Não precisamos replicar os dados em todos os sistemas.


 Os usuários não precisam manter conexões com vários sistemas para acessar os dados armazenados
neles.
 Melhora o desempenho do aplicativo.

Terminologias básicas
Deve-se ter conhecimento das terminologias básicas utilizadas no sistema CICS. A seguir estão os termos
básicos -

Local System (Sistema local)

Um sistema local é um sistema que inicia uma solicitação de intercomunicação.

Local Resource (Recurso local)

Um recurso local é um recurso que está no sistema local.

Remote System (Sistema Remoto)

Um sistema remoto é um sistema iniciado como resultado de uma solicitação de intercomunicação.

Remote Resource (Recurso Remoto)

Um recurso remoto é um recurso que está no sistema remoto.

MVS Sysplex

MVS Sysplex é uma configuração de vários sistemas operacionais MVS. Eles funcionam como um único
sistema, compartilhando funções e programas.

CICSPlexName

O CICSPlex é comumente descrito como um conjunto de regiões CICS interconectadas que processam a
carga de trabalho do cliente. Um CICSPlex é um conjunto de regiões CICS interconectadas que possuem
Terminais, Aplicativos, Recursos, etc.
Métodos de Intercomunicação
Existem duas maneiras pelas quais o CICS pode se comunicar com outros sistemas −

 MRO− Multi Region Operation é usado quando duas regiões CICS dentro do mesmo MVSPLEX
precisam se comunicar entre si.
 ISC− Inter System Communication é usado quando uma região CICS em um servidor LOCAL
precisa se comunicar com uma região CICS no servidor REMOTE.
CICS - Codigos de stãtús
Ao trabalhar com o CICS, você pode encontrar abends. A seguir estão os códigos de abend comuns com
suas descrições, que o ajudarão a resolver os problemas -

Sr. No Código e Descrição

ASRA
1
Exceção de verificação do programa

AEI0
2
Erro de ID do programa

AEI9
3
Condição de falha do mapa

AEIO
4
Chave Duplicada

AEIN
5
Registro Duplicado

AEID
6
Fim do arquivo atingido

AEIS
7
O arquivo não está aberto

AEIP
8
Condição de solicitação inválida

AEY7
9
Não autorizado a usar o recurso

APCT
10
Programa não encontrado

AFCA
11
Conjunto de dados não encontrado

AKCT
12
Erro de tempo limite

ABM0
13
Mapa especificado não encontrado

AICA
14
Programa em loop infinito

AAOW
15
Erro lógico interno
CICS - Pergúntãs de entrevistãs
Estas perguntas de entrevista do CICS foram elaboradas especialmente para familiarizá-lo com a natureza
das perguntas que você pode encontrar durante sua entrevista para o assunto do CICS. De acordo com nossa
experiência, bons entrevistadores dificilmente planejam fazer qualquer pergunta específica durante uma
entrevista – normalmente as perguntas começam com algum conceito básico do assunto e, posteriormente,
continuam com base em uma discussão mais aprofundada e como você responde –

Qual é o comando CICS usado para acessar a data e hora atuais?

O comando ASKTIME é usado para acessar a data e hora atuais.


Como você define dinamicamente a posição do CURSOR para um campo específico?

MOVER -1 para campo FIELD + L. Mencione a opção CURSOR no comando


SEND.
Qual comando é usado para liberar um registro no qual o controle exclusivo é obtido?

EXEC CICS DESBLOQUEIO END-EXEC.


Quais são os valores de atributos dos campos Skipper e Stopper?

Para o campo Skipper, use ASKIP e para o campo stopper use PROT.
Como você define a opção MDT para o status 'ON', mesmo se os dados não forem
inseridos?

Mencione a opção FSET no DFHMDF ou defina-a dinamicamente no programa


usando o campo de atributo FIELD+A.
Qual transação de serviço CICS é usada para obter acessibilidade às tabelas de controle
CICS?

A transação CEDA é usada para obter acessibilidade às tabelas de controle.


Em qual tabela o ID do terminal está registrado?

Tabela de controle de terminais.


O que é um conjunto de mapas?
Mapset é uma coleção de mapas que são editados juntos para formar um módulo
de carregamento. Deve ter uma entrada PPT. Pode ter nomes de 1 a 7 caracteres.
Qual é a função do tradutor CICS?

O conversor CICS converte os comandos EXEC CICS em instruções de chamada


para uma linguagem de programação específica.
Quais são as diferenças entre um comando EXEC CICS XCTL e um comando EXEC CICS
LINK?

O comando XCTL transfere o controle para um programa aplicativo no mesmo


nível lógico e não espera o controle de volta, enquanto o comando LINK passa o
controle para um programa aplicativo no próximo nível lógico e espera o
controle de volta.
O que é o BEI? Como pode ser usado?

O CICS fornece automaticamente algumas informações relacionadas ao sistema


para cada tarefa em uma forma de EXEC Interface Block (EIB), que é exclusivo
para o nível de comando do CICS. Podemos usar todos os campos do EIB em
nossos programas de aplicação imediatamente.
Quais informações podem ser obtidas no EIBRCODE?

O EIBRCODE informa ao programa aplicativo se o último comando CICS foi


executado com sucesso ou não.
Qual é o efeito de incluir o TRANSID no comando EXEC CICS RETURN?

Na próxima vez que o usuário final pressionar uma tecla de atenção, o CICS
iniciará a transação especificada na opção TRANSID.
Qual é a função do comando EXEC CICS HANDLE CONDITION?

Para especificar o parágrafo ou rótulo do programa para o qual o controle deve


ser passado se a “condição de manipulação” ocorrer.
Qual é a diferença entre as opções INTO e SET no comando EXEC CICS RECEIVE MAP?

A opção INTO move as informações no TIOA para a área especificada


reservada, enquanto a opção SET simplesmente retorna o endereço do TIOA para
a célula BLL especificada ou “endereço de” uma seção de ligação.
Qual é a função da macro DFHMDF BMS?

A macro DFHMDF define campos, literais e características de um campo.


Qual é a diferença entre obter a hora do sistema com os comandos EIBTIME e ASKTIME?

O comando ASKTIME é usado para solicitar a data e hora atuais. Já o campo


EIBTIME possui o valor no momento do início da tarefa.
Qual é a função da Mesa de Controle do Terminal?

O TCT define as características de cada terminal com o qual o CICS pode se


comunicar.
O que é um impasse?

Um impasse ocorre quando uma tarefa está esperando por um recurso mantido
por outra tarefa que, por sua vez, está esperando por um recurso mantido pela
primeira tarefa.
Explique o termo operação multi-regional.

MRO é o mecanismo pelo qual diferentes espaços de endereço CICS na mesma


CPU podem se comunicar e compartilhar recursos.
O que significa reentrada no programa?

Um programa é considerado reentrante se mais de uma tarefa puder executar o


código sem interferir na execução das outras tarefas.
Qual é a área de trabalho comum?

A área de trabalho comum é uma área de armazenamento que pode ser acessada
por qualquer tarefa em um sistema CICS.
Qual é o significado e uso do campo EIBAID?

EIBAID é um campo-chave no bloco de interface de execução; indica qual tecla


de atenção o usuário pressionou para iniciar a tarefa.
O que é BMS?

BMS significa Basic Map Support. Ele permite codificar programas em nível de
montador para definir telas.

También podría gustarte