| Bellacosa Mainframe o que é PROC em Job JCL |
O que é PROC no JCL?
Quando começamos a trabalhar com JCL em ambientes corporativos, rapidamente encontramos algo muito importante:
PROC
Ela é uma das estruturas mais usadas em produção no z/OS.
Praticamente todo ambiente mainframe grande utiliza:
PROCs;
bibliotecas PROC;
variáveis simbólicas;
JCL reutilizável.
O que significa PROC?
PROC significa:
Procedure
Em português:
procedimento reutilizável.
Definição simples
Uma PROC é:
um JCL reutilizável.
Ela permite:
evitar repetição;
padronizar execução;
facilitar manutenção;
reutilizar STEPs.
Analogia simples
Imagine uma receita pronta.
Em vez de escrever toda a receita novamente:
você reutiliza o modelo;
apenas troca alguns ingredientes.
PROC funciona exatamente assim.
Problema que PROC resolve
Imagine uma empresa com:
500 JOBs;
todos executando SORT;
DB2;
backup;
mesmas etapas.
Sem PROC:
muito JCL duplicado;
manutenção difícil;
alto risco operacional.
Então surgiu a PROC
Ela permite:
centralizar lógica JCL.
Exemplo sem PROC
//STEP1 EXEC PGM=SORT
//SORTIN DD ...
//SORTOUT DD ...
//SYSIN DD ...
Repetido centenas de vezes.
Exemplo com PROC
//STEP1 EXEC PROC=SORTPROC
Muito mais simples.
Onde a PROC fica?
Normalmente em:
bibliotecas PROC.
Exemplo:
SYS1.PROCLIB
ou:
USUARIO.PROCLIB
Como o sistema encontra PROC?
Usando:
JCLLIB
ou bibliotecas configuradas no JES2.
Estrutura básica de PROC
Exemplo simples
//MINHAPRC PROC
//STEP1 EXEC PGM=IEFBR14
//PEND
Entendendo
PROC
Início da procedure.
PEND
Fim da procedure.
Como usar PROC?
No JOB:
//STEP1 EXEC PROC=MINHAPRC
Fluxo simples
JOB
↓
EXEC PROC
↓
JES2 expande PROC
↓
EXECUÇÃO
O que significa “expandir PROC”?
O JES2 substitui:
EXEC PROC
pelo conteúdo real da PROC.
O usuário vê isso?
Sim.
No spool:
JESJCL
mostra o JCL expandido.
O que são variáveis simbólicas?
Um dos recursos mais importantes das PROCs.
Também chamadas:
symbolic parameters.
Elas funcionam como variáveis
Permitem alterar:
datasets;
programas;
parâmetros;
classes;
SYSOUT.
Sem alterar a PROC original.
Exemplo simples
//MINHAPRC PROC ARQ=CLIENTES
//STEP1 EXEC PGM=MEUPGM
//INPUT DD DSN=&ARQ,
// DISP=SHR
//PEND
O que significa "&ARQ"?
Variável simbólica.
Como usar?
//STEP1 EXEC PROC=MINHAPRC,
// ARQ=PRODUCAO.CLIENTES
Resultado expandido
//INPUT DD DSN=PRODUCAO.CLIENTES
Isso é extremamente poderoso
Porque permite:
reutilização;
flexibilidade;
padronização.
Variáveis mais comuns
Dataset
&DSN
Classe
&CLASS
Programa
&PGM
SYSOUT
&OUT
Exemplo profissional
//COBPROC PROC PGM=COBPGM,
// IN=CLIENTE.ARQ,
// OUT=RELAT.SAIDA
//STEP1 EXEC PGM=&PGM
//INPUT DD DSN=&IN,DISP=SHR
//OUTPUT DD DSN=&OUT,
// DISP=(NEW,CATLG,DELETE)
//PEND
Chamada
//STEP1 EXEC PROC=COBPROC,
// PGM=FINANCE,
// IN=FINAN.ENTRADA,
// OUT=FINAN.SAIDA
O que é PROC catalogada?
PROC armazenada em:
PROCLIB.
Mais comum em produção.
O que é PROC inline?
PROC escrita dentro do próprio JOB.
Exemplo inline
//MINHA PROC
//STEP1 EXEC PGM=IEFBR14
//PEND
//
//JOB1 EXEC MINHA
Vantagens da PROC
Reutilização
Padronização
Menos erros
Manutenção centralizada
Menos duplicação
Muito usada em produção
O que é override?
Alterar parâmetros da PROC no JOB.
Exemplo
PROC:
//STEP1 EXEC PGM=COBOL
JOB:
//STEP1.STEP1 EXEC PGM=TESTE
Isso substitui o EXEC original
O que é nested PROC?
PROC chamando outra PROC.
Muito usado em ambientes grandes.
O que é JCLLIB?
Define bibliotecas PROC.
Exemplo
//JCLLIB JCLLIB ORDER=USUARIO.PROCLIB
O que acontece se PROC não for encontrada?
Erro no JESJCL.
Exemplo:
PROC NOT FOUND
Curiosidades incríveis
1. Grandes bancos possuem milhares de PROCs
2. Muitas automações batch dependem delas
3. Algumas PROCs existem há décadas
4. PROCs ajudam muito em padronização operacional
Erros comuns de iniciantes
1. Esquecer PEND
Erro clássico.
2. Variável simbólica incorreta
Exemplo:
&ARQ
não definida.
3. PROC não encontrada
Problema de PROCLIB.
4. Override errado
Pode alterar execução sem perceber.
Dicas importantes
Sempre use nomes claros
Padronize variáveis
Leia JESJCL expandido
Use PROC para lógica repetitiva
Como PROC aparece no dia a dia?
Praticamente em tudo:
COBOL;
DB2;
SORT;
backups;
produção batch;
automação.
Por que aprender PROC?
Porque PROC é:
uma das estruturas mais importantes do JCL corporativo.
Quem domina PROC entende:
automação batch;
reutilização JCL;
produção z/OS;
arquitetura operacional.
Resumo rápido
| Conceito | Significado |
|---|---|
| PROC | JCL reutilizável |
| PEND | Final da PROC |
| Symbolic Parameter | Variável JCL |
| PROCLIB | Biblioteca de PROC |
| Override | Substituição de parâmetro |
| Inline PROC | PROC dentro do JOB |
| Cataloged PROC | PROC em biblioteca |
Conclusão
PROC é um dos recursos mais poderosos do JCL no ambiente z/OS.
Ela permite reutilizar etapas batch, padronizar processamento e criar JOBs flexíveis usando variáveis simbólicas, sendo fundamental para operações corporativas em mainframe IBM Z.