🧠 Explicação

O comando EXEC CICS IGNORE CONDITION informa ao CICS que determinadas condições devem ser ignoradas, ou seja, não será feito nenhum desvio em caso de erro, e o controle continuará normalmente na instrução seguinte. O erro ainda será registrado no EIB (área de comunicação do CICS), permitindo que o programa trate-o manualmente se necessário.

🔧 Usos mais comuns

  • Ignorar condições como NOTFND após um READ, quando ausência de dados é aceitável.

  • Permitir que o programa verifique erros manualmente por meio do campo EIBRESP.

  • Evitar desvios desnecessários quando a falha de um comando não compromete o processamento.

  • Substituir temporariamente um HANDLE CONDITION existente.

🧾 Sintaxe

EXEC CICS IGNORE CONDITION
     condicao1 condicao2 ...
END-EXEC.

💻 Exemplo prático

EXEC CICS IGNORE CONDITION
     NOTFND
END-EXEC.

EXEC CICS READ
     DATASET('CLIENTES')
     RIDFLD(CHAVE-CLI)
     INTO(AREA-CLI)
END-EXEC.

IF EIBRESP = DFHRESP(NOTFND)
    DISPLAY "Cliente não encontrado".
END-IF.

📌 Regras

  • Máximo de 16 condições por comando IGNORE CONDITION. Para mais, use outro comando separado.

  • O comando se aplica somente ao programa atual.

  • O tratamento permanece ativo até:

    • O término do programa;

    • Um novo HANDLE CONDITION para a mesma condição, que substitui o IGNORE;

    • Ou um LINK para outro programa (o IGNORE não é herdado).

  • Se nenhuma condição for tratada ou ignorada, o CICS executa a ação padrão (geralmente abend).

  • Apenas a primeira condição não ignorada será passada ao programa, mesmo que outras também ocorram.

💡 Dicas

  • Combine com EIBRESP para controlar a lógica após a execução do comando:

IF EIBRESP = DFHRESP(DUPREC)
    DISPLAY "Registro duplicado!".
END-IF.
  • Use IGNORE CONDITION com cuidado: errar na verificação de EIBRESP pode mascarar falhas importantes.

  • Ideal para comandos READ, DELETE, WRITE, onde certos erros podem ser esperados e tratados localmente.

 

✅ Conclusão

O comando EXEC CICS IGNORE CONDITION oferece controle granular sobre erros esperados em um programa CICS, evitando desvios automáticos e permitindo que o programador decida como lidar com determinadas falhas. É uma ferramenta útil, mas deve ser usada com responsabilidade para não ocultar problemas reais no fluxo da aplicação.