📌 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
DDscomDD REPLACE. -
Toda procedure interna deve ser finalizada com
PEND.