🧠 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
eEIBRESP2
🧾 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
eEIBRESP2
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.