📌 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
PROCe, se for interna, finalizada comPEND.