📌 Explicação
O parâmetro DSN=
(Data Set Name) serve pra informar o nome do dataset (arquivo) que será usado pelo passo do job. Ele é obrigatório na maioria dos DD
statements, pois diz qual arquivo físico será acessado.
🧰 Usos mais comuns
-
Informar o nome de um arquivo existente para leitura.
-
Criar um novo arquivo durante a execução.
-
Apontar para arquivos temporários, de saída ou de trabalho.
🧾 Sintaxe
//DDNAME DD DSN=nome.do.dataset,
// DISP=...,UNIT=...,SPACE=...,...
-
Pode ser nome catalogado (
DSN=ZROBERT.ENTRADA.CLIENTES
) -
Ou nome temporário com dois
&
(DSN=&&TEMP01
) -
Se omitir
DSN=
, o dataset será considerado sem nome catalogado (só pra tempo de execução)
💻 Exemplo prático
//ENTRADA DD DSN=CDICAS.ENTRADA.CLIENTES,
// DISP=SHR
//SAIDA DD DSN=CDICAS.SAIDA.RELATORIO,
// DISP=(NEW,CATLG,DELETE),
// UNIT=SYSDA,SPACE=(TRK,(10,5)),DCB=(RECFM=FB,LRECL=80)
Nesse exemplo:
-
O
ENTRADA
está apontando pra um dataset já existente. -
O
SAIDA
vai ser criado novo, catalogado se o job terminar bem, ou deletado se falhar.
⚙️ Regras
-
O nome do dataset deve seguir a convenção: até 44 caracteres, com pontos entre os níveis.
-
Datasets temporários (com
&&
) são válidos só durante o job. -
Cada
DSN=
precisa deDISP=
pra dizer o que fazer com o arquivo.
💡 Dicas
-
Em testes, use
&&TEMP
pra evitar criar lixo no catálogo. -
Sempre use
DISP=SHR
pra arquivos de somente leitura. -
Use nomes organizados:
ZROBERT.INPUT.CLIENTES
,ZROBERT.OUTPUT.REL
, etc. Fica mais fácil manter os jobs.
✅ Conclusão
DSN=
é o endereço onde o programa vai bater pra pegar ou deixar dados. Usar corretamente esse parâmetro é essencial pra qualquer job batch funcionar. JCL sem DSN=
certo é tipo carta sem destinatário — não chega em lugar nenhum.