Domingo, Janeiro 23, 2022

CICS (Customer Information Control System) é um sistema de processamento de transações designado tanto para atividade Online como processamento Batch. Seu objetivo é criar aplicações iterativas com o usuário através de telas. 

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 como DB2, ADABAS, VSAM, DLI, etc.) e sejam então transmitidos de volta ao terminal de origem. Pode ser executado sob os sistemas MVS, VSE, VM ou OS/2, suportando as seguintes linguagens de programação : COBOL, Assembler, FORTRAN, PL/I e RPG II. Os programas podem ser transportados de um ambiente para outro com pouca ou mesmo nenhuma alteração. 

O CICS é composto de vários módulos/programas de gerenciamento, é um sistema de dados e de comunicação de dados desenvolvido pela IBM para rodar em equipamentos IBM e compatíveis.

Existem dois níveis de codificação do CICS:

  • MACRO LEVEL que é similar ao Assembler; e Command, que é similar ao COBOL.
  • COMMAND LEVEL que é uma aplicação onde possui uma interface a nível de comando.

Cada programa CICS é iniciado usando um identificador de transação "TRANSACTION ID". Telas CICS são enviadas como construções chamadas "MAPAS", usando uma linguagem de programação como o COBOL. 

Uma transação é basicamente um conjunto de comandos que executam uma tarefa. Normalmente , a maioria das transações são tarefas relativamente simples, como a atualização de uma conta corrente. Executado em servidores Z IBM System, o CICS facilmente suporta milhares de transações por segundo. 

Como  todo  sistema  ele incorpora  várias  tabelas  de  controle  que ajudam a controlar os serviços solicitados.

Tabelas de controle do CICS

  •  TCT - Terminal Control Table - Controla os endereços dos terminais
  •  KCT - Task Control Table - Controla os serviços ativos no CICS 
  •  PCT - Program Control Table - Controla o uso dos programas 
  •  TCP - Transation Control Program - Controla as transações sob o CICS
  •  FCT - File Control table - Controla os arquivos sob CICS

Camisetas

ABEND code

Comandos - CICS

Bloco de interface EXEC (EIB)

Além dos blocos de controle CICS usuais, cada tarefa possui um bloco de controle denominado bloco de interface EXEC (EIB) associado a ela. Um programa aplicativo pode acessar por nome todos...

CICS - Customer Information Control Syst…

CICS significa Sistema de Controle de Informações do Cliente (Customer Information Control System), ou simplesmente CICS®, é um monitor de transações utilizado inicialmente nos sistemas operacionais z/OS e z/VSE dos...

Command Level

O Command Level é um conjunto de comandos usados em programas COBOL ou ASSEMBLER para fazer a interação com os módulos do Cics (PCP, TCP, FCP etc.). A sintaxe básica...

Construção de um mapa BMS

As telas do Mainframe são escritas em uma linguagem fonte chamada BMS. O mapa BMS para descrever uma tela deve ser codificado usando a sintaxe do Assembler do Mainframe. Nesta...

DFHMDF

A macro DFHMDF define os atributos sobre a tela. É necessario uma macro DFHMDF para cada atributo da tela. Como exemplo, suponhamos que na coluna 10 de uma tela desejamos criar...

DFHMDI

A sintaxe desta macro é   Mapa DFHMDI argumentos Mapa (Na coluna 1) é o nome da tela. Este nome será usado nos programas para leitura e gravação da tela.  Os argumentos da macro...

DFHMSD

A sintaxe desta macro é   Label DFHMSD argumentos O Label desta macro define o nome do mapset. Ele deverá ser usado nos programas dentro dos comandos de leitura e gravação da tela. Os...

EXEC CICS ABEND

ABEND   O comando ABEND encerra uma tarefa de forma anormal.   O CICS libera o armazenamento principal associado à tarefa finalizada; opcionalmente, você pode obter um despejo de transação desse armazenamento.   A chamada do...

EXEC CICS ADDRESS

Descrição: ADDRESS ​​acessa as seguintes áreas: O elemento do ambiente de controle de acesso (ACEE) A área de comunicação disponível para o programa invocado (COMMAREA) A área de trabalho comum (CWA) O bloco de interface...

EXEC CICS ASKTIME

Este comando é threadsafe.   Descrição: ASKTIME atualiza os campos de data (EIBDATE) e relógio de hora do dia do CICS® (EIBTIME) no EIB. Esses dois campos contêm inicialmente a data e a...

EXEC CICS ASSIGN

O comando ASSIGN obtém valores de fora do ambiente local do programa de aplicativo. Os dados obtidos dependem das opções especificadas. Você pode especificar até 16 opções em um comando...

EXEC CICS BIF DEEDIT

Descrição O BIF DEEDIT fornece a função incorporada DEEDIT. Ele especifica que caracteres alfabéticos e especiais são removidos de um campo de dados EBCDIC e os dígitos restantes alinhados à direita...

EXEC CICS CANCEL

Condições: ISCINVREQ, NOTAUTH, NOTFND, SYSIDERR   Nota para roteamento de transação dinâmica : Usar CANCEL com REQID (de um POST, DELAY ou START) pode criar afinidades de intertransação que afetam adversamente o...

EXEC CICS DELAY

Condições: EXPIRED, INVREQ   Este comando é thread-safe apenas quando o intervalo é 0. Nota para roteamento de transação dinâmica : Usar DELAY com REQID se CANCELADO posteriormente pode criar afinidades entre transações...

EXEC CICS DELETE

Condições: CHANGED, DISABLED, DUPKEY, FILENOTFOUND, ILLOGIC, INVREQ, IOERR, ISCINVREQ, LOADING, LOCKED, NOTAUTH, NOTFND, NOTOPEN, RECORDBUSY, SYSIDERR   Este comando é threadsafe se o arquivo ao qual se refere for: Definido como remoto e...

EXEC CICS DELETEQ TD

Exclua todos os dados transitórios. Condições: DISABLED, INVREQ, ISCINVREQ, LOCKED, NOTAUTH, QIDERR, SYSIDERR Este comando é thread-safe quando é usado com uma fila em uma região CICS local ou função enviada para...

EXEC CICS DELETEQ TS

Exclua uma fila de armazenamento temporário. Condições: INVREQ, ISCINVREQ, LOCKED, NOTAUTH, QIDERR, SYSIDERR Este comando é thread-safe quando usado com uma fila no armazenamento principal ou auxiliar, seja em uma região CICS...

EXEC CICS DEQ

Programe o uso de um recurso por uma tarefa (desenfileirar). Condições: INVREQ, LENGERR Este comando é threadsafe se for definido como LOCAL. Não é threadsafe se for definido como GLOBAL. Nota para roteamento...

EXEC CICS ENDBR

Condições: FILENOTFOUND, ILLOGIC, INVREQ, IOERR, ISCINVREQ, NOTAUTH, SYSIDERR   Este comando é threadsafe se o arquivo ao qual se refere for: Definido como remoto e a função do comando é enviada por meio...

EXEC CICS ENQ

Programe o uso de um recurso por uma tarefa (enfileirar). Condições: ENQBUSY, INVREQ, LENGERR Este comando é threadsafe se for definido como LOCAL. Não é threadsafe se for definido como GLOBAL. Descrição: ENQ faz...

EXEC CICS FORMATTIME

Condição: INVREQ   Este comando é threadsafe. Descrição: FORMATTIME transforma a data e hora absolutas em qualquer um de uma variedade de formatos. Normalmente, o argumento ABSTIME é o valor retornado por um comando...

EXEC CICS HANDLE ABEND

HANDLE ABEND   Condições: NOTAUTH, PGMIDERR (apenas PROGRAMA)   Descrição Use o comando HANDLE ABEND para ativar, cancelar ou reativar uma saída para processamento de finalização anormal. Você pode suspender o comando usando os comandos...

EXEC CICS HANDLE CONDITION

Descrição Use o comando HANDLE CONDITION para especificar o rótulo para o qual o controle deve ser passado se ocorrer uma condição. Você deve incluir o nome da condição e, opcionalmente...

EXEC CICS IGNORE CONDITION

Use o comando IGNORE CONDITION para especificar que nenhuma ação será executada se ocorrer uma condição (ou seja, o controle retornará à instrução após o comando que falhou na execução...

EXEC CICS LINK

Condições: CHANNELERR, INVREQ, LENGERR, NOTAUTH, PGMIDERR, RESUNAVAIL, ROLLEDBACK, SYSIDERR, TERMERR Este comando é thread-safe quando é usado para se vincular a um programa em uma região CICS local ou em uma...

EXEC CICS READ

READ lê um registro de um arquivo em um sistema local ou remoto.   Para comandos UPDATE e não UPDATE, você deve identificar o registro a ser recuperado pelo campo de identificação...

EXEC CICS READNEXT

Condições: DUPKEY, ENDFILE, FILENOTFOUND, ILLOGIC, INVREQ, IOERR, ISCINVREQ, LENGERR, LOADING, LOCKED, NOTAUTH, NOTFND, RECORDBUSY, SYSIDERR   Este comando é threadsafe se o arquivo ao qual se refere for: Definido como remoto e a...

EXEC CICS READPREV

Condições: DUPKEY, ENDFILE, FILENOTFOUND, ILLOGIC, INVREQ, IOERR, ISCINVREQ, LENGERR, LOCKED, NOTAUTH, NOTFND, RECORDBUSY, SYSIDERR   Este comando é threadsafe se o arquivo ao qual se refere for: Definido como remoto e a função...

EXEC CICS READQ TD

Leia os dados da fila de dados transitórios. Condições: DISABLED, INVREQ, IOERR, ISCINVREQ, LENGERR, LOCKED, NOTAUTH, NOTOPEN, QBUSY, QIDERR, QZERO, SYSIDERR Este comando é thread-safe quando é usado com uma fila em...

EXEC CICS READQ TS

Leia os dados de uma fila de armazenamento temporário. Condições: INVREQ, IOERR, ISCINVREQ, ITEMERR, LENGERR, NOTAUTH, QIDERR, SYSIDERR Este comando é thread-safe quando usado com uma fila no armazenamento principal ou auxiliar...

EXEC CICS RECEIVE MAP

RECEIVE MAP mapeia os dados de entrada de um terminal para uma área de dados em um programa aplicativo. Os dados de determinadas unidades lógicas não são mapeados, mas permanecem inalterados...

EXEC CICS RESETBR

Condições: FILENOTFOUND, ILLOGIC, INVREQ, IOERR, ISCINVREQ, NOTAUTH, NOTFND, SYSIDERR   Este comando é threadsafe se o arquivo ao qual se refere for: Definido como remoto e a função do comando é enviada por...

EXEC CICS RETRIEVE

Condições: ENDDATA, ENVDEFERR, INVREQ, IOERR, LENGERR   Nota para roteamento de transação dinâmica : O uso de RETRIEVE com WAIT pode criar afinidades entre transações que afetam adversamente o uso de roteamento...

EXEC CICS RETURN

Retorne o controle do programa. Condições: CHANNELERR , INVREQ, LENGERR Este comando é threadsafe. Descrição: RETURN retorna o controle de um programa de aplicativo para um programa de aplicativo no próximo nível lógico superior...

EXEC CICS REWRITE

Condições: CHANGED, DUPREC, FILENOTFOUND, ILLOGIC, INVREQ, IOERR, ISCINVREQ, LENGERR, LOCKED, NOSPACE, NOTAUTH, NOTFND, RECORDBUSY, SYSIDERR Este comando é threadsafe se o arquivo ao qual se refere for: Definido como remoto e a...

EXEC CICS SEND MAP

O comando EXEC CICS SEND MAP envia a tela para o terminal.  Existem 2 formas basicas para este comando: A primeira é usada no inicio do processamento para enviar para o...

EXEC CICS START

Condições: INVREQ, IOERR, ISCINVREQ, LENGERR, NOTAUTH, RESUNAVAIL, SYSIDERR, TERMIDERR, TRANSIDERR, USERIDERR   Nota: Para roteamento de transação dinâmica : Se START for cancelado posteriormente por outra tarefa, ou se a transação iniciada...

EXEC CICS STARTBR

Condições: DISABLED, FILENOTFOUND, ILLOGIC, INVREQ, IOERR, ISCINVREQ, LOADING, NOTAUTH, NOTFND, NOTOPEN, SYSIDERR   Este comando é threadsafe se o arquivo ao qual se refere for: Definido como remoto e a função do comando...

EXEC CICS SUSPEND

Suspenda uma tarefa. Descrição: SUSPEND cede o controle a uma tarefa de prioridade de despacho igual ou superior. O controle é devolvido à tarefa que emite o comando assim que nenhuma outra...

EXEC CICS SYNCPOINT

Condições: INVREQ, ROLLEDBACK   Este comando é threadsafe. Nota: O Recovery Manager processa este comando em um TCB aberto sempre que possível para minimizar a comutação de TCB. O processamento do ponto de...

EXEC CICS SYNCPOINT ROLLBACK

Condição: INVREQ   Este comando é threadsafe. Nota: O Recovery Manager processa este comando em um TCB aberto sempre que possível para minimizar a comutação de TCB. O processamento do ponto de sincronização...

EXEC CICS WRITE

Condições: DISABLED, DUPREC, FILENOTFOUND, ILLOGIC, INVREQ, IOERR, ISCINVREQ, LENGERR, LOADING, LOCKED, NOSPACE, NOTAUTH, NOTOPEN, RECORDBUSY, SUPPRESSED, SYSIDERR   Este comando é threadsafe se o arquivo ao qual se refere for: Definido como remoto...

EXEC CICS WRITEQ TD

Grave dados na fila de dados transitórios. Condições: DISABLED, ERROR, INVREQ, IOERR, ISCINVREQ, LENGERR, LOCKED, NOSPACE, NOTAUTH, NOTOPEN, QIDERR, SYSIDERR Este comando é thread-safe quando é usado com uma fila em uma...

EXEC CICS WRITEQ TS

Grave dados em uma fila de armazenamento temporário. Condições: INVREQ, IOERR, ISCINVREQ, ITEMERR, LENGERR, LOCKED, NOSPACE, NOTAUTH, QIDERR, SYSIDERR Este comando é thread-safe quando usado com uma fila no armazenamento principal ou...

EXEC CICS XCTL

Transfira o controle do programa. Condições: CHANNELERR, INVREQ, LENGERR, NOTAUTH, PGMIDERR Este comando é threadsafe. Descrição: O XCTL transfere o controle de um programa aplicativo para outro no mesmo nível lógico. O programa do...

Identificador de atenção (EIBAID)

Para cada operação de entrada de controle de terminal (ou BMS) associada a um dispositivo de exibição, um identificador de atenção (AID) é colocado no campo EIBAID do EIB. O...

Retorno dos comandos

Cada um dos comandos acima possui um conjunto especifico de condições de retorno. Por exemplo o comando: EXEC CICS READ(CLIENTE)  RIDFLD(CODCLI) END-EXEC Pode retornar situações como: Erro Código do erro Registro não encontrado NOTFND Arquivo não está...