CICS - Bloco de Interface

Qualquer programa de aplicativo requer uma interface para interagir com o CICS. EIB (Execute Interface Block) atua como uma interface para permitir que 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 para o 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. Toda E / S de arquivo no CICS é tratada 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.

  • A Seção de Arquivos e a Divisão de Meio Ambiente não são necessárias.

  • As instruções COBOL que chamam funções do sistema operacional como Aceitar, Data / Hora 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 BEI é exclusivo para uma tarefa e existe durante a tarefa. Ele contém um conjunto de informações relacionadas ao sistema correspondentes à tarefa.

  • Ele contém informações sobre o identificador de transação, hora, data, etc., que é usado pelo CICS durante a execução de um programa de 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

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

Campo EIB Cláusula PIC Descrição
EIBAID X (1) Tecla de ajuda pressionada
EIBCALEN S9 (4) COMP Ele contém comprimento de DFHCOMMAREA
EIBDATE S9 (7) COMP-3 Ele contém a Data Atual do Sistema
EIBRCODE X (6) Contém o 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
EIBTRMID 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 um por um -

  • Programas não conversacionais
  • Programas de conversação
  • Programas pseudo-conversacionais - discutiremos no próximo módulo

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 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 de conversação

Enviar uma mensagem para o terminal e receber uma resposta do usuário é chamado de Conversational. 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 é retido até o fim da tarefa.

Exemplo

O exemplo a seguir mostra um programa de conversão que obtém a entrada do usuário e, em seguida, 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.