🧠 Explicação

O EIB (EXEC Interface Block) é um bloco de controle interno gerado automaticamente pelo CICS e associado a cada tarefa executada. Ele fornece informações essenciais sobre a execução da transação, como:

  • Identificador da transação (EIBTRNID)

  • Identificador do terminal (EIBTRMID)

  • Hora e data da execução

  • Retornos de erro (EIBRESP, EIBRESP2)

  • Último comando executado

  • Posição do cursor

  • Código da última tecla pressionada (AID)

O EIB pode ser acessado diretamente por nome no programa COBOL (ou em outras linguagens como C e PL/I), mas não pode ser alterado pelo programador.

🛠️ Usos mais comuns

  • Identificar a transação em execução

  • Descobrir a tecla pressionada no terminal (Enter, PF3, etc.)

  • Obter hora e data da execução

  • Capturar códigos de retorno e mensagens de erro

  • Verificar posição do cursor na tela

  • Analisar causas de abend via EIBRESP e EIBRESP2

🧾 Campos mais utilizados no EIB

Campo Função principal
EIBTRNID Código da transação executada (ex: "MENU", "CONS")
EIBTRMID Terminal de origem da transação
EIBTIME Hora em que a tarefa começou (HHMMSS)
EIBDATE Data em que a tarefa começou (CYYDDD)
EIBCPOSN Posição do cursor após entrada de dados
EIBAID Tecla AID pressionada (Enter, PF1, PF3, etc.)
EIBFN Código do último comando CICS executado
EIBRESP Código de resposta (retorno) da última instrução
EIBRESP2 Código detalhado de erro (se aplicável)
EIBTASKN Número da tarefa
EIBRCODE Código de erro textual (usado para mensagens ou abends)
EIBCALEN Tamanho da COMMAREA recebida
EIBLABEL Indica o tipo de saída da tarefa: RETURN, ABEND ou rótulo

💻 Exemplo prático em COBOL

IF EIBAID = DFHPF3
    GO TO FIM-PROGRAMA.

IF EIBRESP NOT = DFHRESP(NORMAL)
    DISPLAY "Erro na operação: " EIBRESP.

📋 Outros campos relevantes

Campo Descrição rápida
EIBFREE Indica que o recurso está ocupado e precisa ser liberado
EIBRECV Informa que ainda há dados a serem recebidos
EIBCOMPL Indica se os dados recebidos estão completos
EIBREQID ID de uma requisição de controle
EIBRSRCE Identificador do recurso acessado por último
EIBERR Indica que houve erro em conversa APPC
EIBERRCD Código de erro detalhado para APPC
EIBNODAT Indica que nenhum dado foi recebido em uma conversação
EIBRLDBK Indica que ocorreu um rollback em comando SYNCPOINT
EIBSYNC Indica que um ponto de sincronização está em andamento
EIBSYNRB Indica que um rollback está em andamento em conversas APPC
EIBCONF Indica que uma confirmação foi solicitada pelo parceiro de conversação

💡 Dicas

  • Use EIBTRNID para registrar logs e rastrear qual transação foi executada.

  • Verifique EIBAID para saber qual tecla o usuário pressionou.

  • EIBRESP e EIBRESP2 são essenciais para tratamento de exceções detalhadas.

  • Evite alterar qualquer campo do EIB — ele é apenas de leitura.

  • EIBCPOSN pode ser útil para personalizar mensagens ou validar a navegação do usuário.

 

✅ Conclusão

O EIB é uma estrutura essencial no CICS, que oferece ao programador acesso a informações contextuais da tarefa em execução. Ele permite capturar eventos, condições e dados do terminal de forma padronizada, contribuindo para o controle de fluxos, tratamento de erros e consistência de execução. Dominar o uso do EIB é fundamental para qualquer programador COBOL que desenvolve sistemas online em CICS.