📌 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 com DD REPLACE.

  • Toda procedure interna deve ser finalizada com PEND.