📌 Explicação
O parâmetro COND= (de "condição") serve pra pular a execução de um passo com base no return code (RC) de passos anteriores.
Ele não executa nada — só impede que um passo seja executado se a condição for verdadeira.
🧰 Usos mais comuns
-
Evitar rodar um passo se um anterior falhou (ex:
RC > 4). -
Economizar recursos pulando etapas desnecessárias.
-
Controlar a lógica do job com base no que aconteceu nos passos anteriores.
🧾 Sintaxe
//ETAPA EXEC PGM=PROGRAMA,
// COND=(rc,operador,passo)
-
rc: return code (ex: 4, 8, 16) -
operador:LT,LE,EQ,NE,GE,GT -
passo: nome do passo anterior (opcional)
Atalho comum:
COND=(4,LT)
Interpretação: "Se algum passo anterior tiver RC < 4, então PULE este passo."
💻 Exemplo prático
//PASSO01 EXEC PGM=PROGA
//PASSO02 EXEC PGM=PROGB,COND=(4,LT)
//PASSO03 EXEC PGM=PROGC,COND=(8,GE,PASSO01)
-
PASSO02só roda se RC de qualquer passo anterior for >= 4 -
PASSO03só roda se o RC de PASSO01 for < 8
⚙️ Regras
-
O
COND=não cancela o job — ele pula o passo. -
Se você omitir o nome do passo, ele considera todos os passos anteriores.
-
Operador lógico é aplicado contra o RC anterior:
-
Se a condição for verdadeira, o passo é ignorado.
-
💡 Dicas
-
Lembre da regra de ouro:
“Se a condição for verdadeira, o passo é pulado.” -
Evite misturar
COND=comIF/THEN/ELSE— pode dar lógica confusa. -
Para lógicas complexas, use
IF/THENque é mais legível.
✅ Conclusão
COND= é um dos parâmetros mais poderosos e traiçoeiros do JCL. Com ele, você controla o fluxo de execução baseado em resultados reais dos passos anteriores. Mas se não entender a lógica invertida dele, vira armadilha. Use com clareza, e se precisar de lógica mais complexa, parte pro IF/THEN/ELSE.