📌 Descrição
O comando PROC
(procedure) define um conjunto reutilizável de instruções JCL que podem ser chamadas em vários jobs ou etapas. Ele é útil para padronizar a execução de rotinas frequentes, melhorando a organização e reduzindo a duplicidade de código.
🧠 Sintaxe
//NOMEPROC PROC PARÂMETROS_OPCIONAIS
instruções JCL (EXEC, DD, etc.)
...
// PEND
🔍 Características
Elemento | Descrição |
---|---|
NOMEPROC |
Nome da procedure (até 8 caracteres). |
PROC |
Palavra-chave que indica início da procedure. |
PEND |
Finaliza a definição da procedure embutida. |
Parâmetros | Podem ser definidos e substituídos ao chamar a procedure. |
EXEC PROC= |
Utilizado para chamar a procedure dentro de um job. |
✅ Exemplo — Procedure embutida
//COPIA PROC
//STEP01 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=ARQ.ENTRADA,DISP=SHR
//SYSUT2 DD DSN=ARQ.SAIDA,DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(1,1)),UNIT=SYSDA
//SYSIN DD DUMMY
// PEND
Chamando a procedure:
//COPIAR1 EXEC COPIA
⚠️ Observações
-
Procedures podem ser interna (no mesmo JCL) ou externa (armazenada em biblioteca referenciada via
JCLLIB
). -
Ao chamar uma procedure, é possível substituir parâmetros e redefinir
DDs
comDD REPLACE
. -
Toda procedure interna deve ser finalizada com
PEND
.