📌 Explicação
O IEBGENER
é um utilitário usado para:
-
Copiar datasets sequenciais
-
Gerar relatórios simples (print)
-
Copiar arquivos entre disco e fita
-
Gerar arquivos com conteúdo manual (INSTREAM)
É tipo um "Ctrl+C, Ctrl+V" do mainframe, só que com esteroides.
🧰 Usos mais comuns
-
Copiar arquivo de entrada para saída com ou sem alterações
-
Imprimir um dataset
-
Gerar arquivo a partir de dados digitados no JCL
-
Backup simples de datasets
🧾 Sintaxe básica
//COPIADOR JOB (1234),'COBOL DICAS',
// CLASS=A,MSGCLASS=X
//*
//STEP01 EXEC PGM=IEBGENER
//SYSUT1 DD DSN=CDICAS.ARQ.ORIGEM,DISP=SHR
//SYSUT2 DD DSN=CDICAS.ARQ.DESTINO,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(5,5)),UNIT=SYSDA
//SYSPRINT DD SYSOUT=*
//SYSIN DD DUMMY
📂 Descrição dos DDs
-
SYSUT1 → dataset de entrada (origem)
-
SYSUT2 → dataset de saída (destino)
-
SYSPRINT → log da execução (mensagens do utilitário)
-
SYSIN → parâmetros de controle (pode ser
DUMMY
se não tiver nada especial)
💻 Exemplo prático: gerar arquivo a partir de dados internos
//GERARJOB JOB (1234),'COBOL DICAS',
// CLASS=A,MSGCLASS=X
//*
//STEP01 EXEC PGM=IEBGENER
//SYSUT1 DD *
0001 JOSE ROBERTO COBOL
0002 ANA LIMA CICS
0003 JOSE CARLOS DB2
/*
//SYSUT2 DD DSN=CDICAS.ARQ.GERADO,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(1,1)),UNIT=SYSDA,
// DCB=(RECFM=FB,LRECL=40)
//SYSPRINT DD SYSOUT=*
//SYSIN DD DUMMY
Esse exemplo gera um arquivo novo (CDICAS.ARQ.GERADO
) com conteúdo digitado diretamente no JCL.
⚙️ Regras
-
Os arquivos devem ser sequenciais.
-
O
LRECL
eRECFM
devem ser compatíveis entre entrada e saída (ou você define noDCB
). -
IEBGENER
não é bom com arquivos VSAM — pra isso, useIDCAMS
.
💡 Dicas
-
Use
IEBGENER
sempre que precisar copiar, gerar ou mover datasets simples. -
Pra copiar biblioteca de programas (
PDS
), use oIEBCOPY
, que é mais apropriado. -
Combine com
SYSUT1 DD *
eSYSUT2
comDISP=NEW
pra gerar arquivos de dados direto no JCL.
✅ Conclusão
O IEBGENER
é o tratorzinho do JCL: simples, direto e confiável. Ele faz cópias, gera arquivos, imprime e resolve uma pá de coisa sem frescura. Se você quer mover dados sem complicar, ele é a escolha certa. Todo programador batch tem que saber usar isso de olhos fechados.