📌 Explicação

O IEHPROGM é um utilitário poderoso usado para:

  • Apagar datasets (DELETE)

  • Renomear datasets (RENAME)

  • Catalogar ou descatalogar datasets (CATALOG / UNCATALOG)

  • Operar sobre datasets não catalogados (acesso direto via VOL=SER=)

🧰 Usos mais comuns

  • Limpar datasets antigos ou temporários

  • Renomear datasets diretamente via JCL

  • Forçar remoção ou catalogação de datasets problemáticos

  • Ações de emergência quando tudo mais falha 😅

🧾 Sintaxe básica

//TAREFA  JOB (1234),'COBOL DICAS',
//            CLASS=A,MSGCLASS=X
//*
//PASSO1  EXEC PGM=IEHPROGM
//SYSPRINT DD SYSOUT=*
//DD1      DD UNIT=SYSDA,VOL=SER=WORK01,DISP=OLD
//SYSIN    DD *
  DELETE CDICAS.TESTE.DADOS
/*

💻 Exemplo prático: apagar dataset

//APAGAR EXEC PGM=IEHPROGM
//SYSPRINT DD SYSOUT=*
//DD1      DD UNIT=SYSDA,VOL=SER=WORK01,DISP=OLD
//SYSIN    DD *
  DELETE CDICAS.ENTRADA.CLIENTES
/*

Esse comando deleta o dataset CDICAS.ENTRADA.CLIENTES que está no volume WORK01.

💻 Exemplo prático: renomear dataset

//RENOMEIA EXEC PGM=IEHPROGM
//SYSPRINT DD SYSOUT=*
//DD1      DD UNIT=SYSDA,VOL=SER=WORK01,DISP=OLD
//SYSIN    DD *
  RENAME CDICAS.TEMP.CLIENTES,CDICAS.DEFINITIVO.CLIENTES
/*

💻 Exemplo prático: catalogar dataset manualmente

//CATALOG EXEC PGM=IEHPROGM
//SYSPRINT DD SYSOUT=*
//DD1      DD UNIT=SYSDA,VOL=SER=WORK01,DISP=OLD
//SYSIN    DD *
  CATALOG CDICAS.RELATORIO.MENSAL
/*

⚙️ Regras

  • DD1 deve apontar pro volume físico correto (VOL=SER=...)

  • O DISP=OLD é necessário pra permitir alteração

  • O dataset pode estar catalogado ou não, dependendo da operação

💡 Dicas

  • Antes de usar IEHPROGM, confirma três vezes o nome do dataset — ele apaga mesmo.

  • Use em conjunto com IEHLIST pra verificar o que tem no volume antes.

  • Não é ideal para uso rotineiro — reserve para manutenção pesada ou situações emergenciais.

 

✅ Conclusão

IEHPROGM é o "desmanche" oficial do JCL. Ele remove, renomeia e manipula datasets direto na unha, acessando volumes por fora do catálogo. É útil pra manutenção, limpeza e correções quando os comandos convencionais não resolvem. Mas usa com responsabilidade — a chance de dar ruim é real.