📌 Descrição
O comando EXEC PROC=...
é utilizado para chamar uma procedure (PROC), seja ela definida internamente no JCL ou armazenada externamente em uma biblioteca referenciada com JCLLIB
. Esse tipo de chamada permite reutilizar blocos padronizados de código JCL.
🧠 Sintaxe
//NOMESTEP EXEC PROC=nome_da_procedure
🔍 Características
Elemento | Descrição |
---|---|
NOMESTEP |
Nome lógico da etapa que está invocando a procedure. |
EXEC |
Palavra-chave que inicia a execução da etapa. |
PROC=... |
Nome da procedure a ser chamada (interna ou externa). |
PARM='...' |
(Opcional) Passa parâmetros simbólicos para a procedure. |
REPLACEMENT DD |
Pode redefinir arquivos definidos na procedure. |
✅ Exemplos
Chamando uma procedure interna:
//ETAPA01 EXEC PROC=GERACAO
Chamando uma procedure externa (com JCLLIB
):
// JCLLIB ORDER=(SYS1.PROCLIB)
//ETAPA02 EXEC PROC=IMPRESSAO
Com substituição de parâmetros:
//ETAPA03 EXEC PROC=GERADOR,PARM='RELATORIO MENSAL'
Redefinindo um DD da procedure:
//INFILE DD DSN=NOVO.DADOS.ENTRADA,DISP=SHR
⚠️ Observações
-
Se a procedure for externa, deve-se informar a biblioteca com o comando
JCLLIB
. -
O nome da procedure não pode exceder 8 caracteres.
-
É possível fazer substituição de parâmetros simbólicos e redefinição de arquivos (
DDs
) definidos dentro da procedure. -
A procedure chamada deve estar previamente definida com
PROC
e, se for interna, finalizada comPEND
.