| Bellacosa Mainframe apresenta o copybook em Cobol |
O que é Copybook no COBOL?
Um dos recursos mais importantes do COBOL é o:
Copybook
Ele permite reutilizar estruturas de dados e trechos de código em vários programas, evitando duplicação e facilitando a manutenção dos sistemas.
Em grandes ambientes bancários e corporativos, é comum existirem:
milhares de programas COBOL;
centenas de copybooks compartilhados;
layouts padronizados usados por toda a empresa.
Definição simples
Copybook é:
um arquivo reutilizável contendo definições COBOL.
Normalmente ele armazena:
layouts de registros;
estruturas de arquivos;
áreas de comunicação;
parâmetros de programas;
campos de telas CICS.
Analogia simples
Imagine um formulário padrão de cliente.
Em vez de recriar o formulário em cada programa, você cria apenas uma vez e reutiliza em todos.
O Copybook funciona exatamente assim.
Onde ele é usado?
Principalmente na:
DATA DIVISION
Exemplo sem Copybook
01 CLIENTE.
05 CLI-NOME PIC X(30).
05 CLI-ENDERECO PIC X(50).
05 CLI-SALDO PIC S9(7)V99 COMP-3.
Agora imagine repetir isso em 500 programas.
Solução
Criar um Copybook.
Exemplo do Copybook
Membro:
COPYLIB(CLIENTE)
Conteúdo:
01 CLIENTE.
05 CLI-NOME PIC X(30).
05 CLI-ENDERECO PIC X(50).
05 CLI-SALDO PIC S9(7)V99 COMP-3.
Como usar?
No programa COBOL:
WORKING-STORAGE SECTION.
COPY CLIENTE.
Durante a compilação, o compilador substitui o COPY pelo conteúdo do Copybook.
O que acontece internamente?
COPY CLIENTE
↓
Compilador expande
↓
Layout inserido
↓
Compilação continua
Onde os Copybooks ficam?
Normalmente em:
USER.COPYLIB
EMPRESA.COBOL.COPYLIB
BANCO.COPYLIB
Geralmente em:
PDS;
PDSE.
Estrutura típica
EMPRESA.COPYLIB
|
+-- CLIENTE
+-- PRODUTO
+-- ENDERECO
+-- CONTRATO
O comando COPY
Sintaxe básica:
COPY CLIENTE.
Exemplo completo
DATA DIVISION.
WORKING-STORAGE SECTION.
COPY CLIENTE.
PROCEDURE DIVISION.
DISPLAY CLI-NOME.
Copybook para arquivos
Muito comum.
Exemplo
FD ARQCLIENTE.
COPY CLIREG.
Copybook CLIREG
01 REG-CLIENTE.
05 CLI-ID PIC 9(5).
05 CLI-NOME PIC X(30).
Vantagem
Se o layout mudar:
30 bytes
↓
40 bytes
Alteramos apenas o Copybook.
Todos os programas passam a usar a nova estrutura.
Copybook para parâmetros
Muito usado com:
CALL
Exemplo
Programa chamador:
CALL 'CALCSAL'
USING DADOS-CLIENTE
Copybook compartilhado
01 DADOS-CLIENTE.
05 CODIGO PIC 9(5).
05 SALDO PIC S9(7)V99.
Copybook em CICS
Extremamente comum.
Exemplo
EXEC CICS RECEIVE MAP(...)
Mapas BMS geralmente geram Copybooks.
Copybook em DB2
Muito usado com host variables.
Exemplo
EXEC SQL
INCLUDE SQLCA
END-EXEC
SQLCA é um Copybook
Contém:
SQLCODE;
SQLSTATE;
informações da execução SQL.
Copybooks famosos
SQLCA
Retorno DB2.
DFHAID
Teclas PF do CICS.
DFHBMSCA
Mapas CICS.
DCLGEN
Layouts gerados pelo DB2.
O que é REPLACING?
Permite substituir textos durante o COPY.
Exemplo
Copybook:
05 CAMPO PIC X(10).
Uso:
COPY CLIENTE
REPLACING CAMPO BY NOME.
Muito usado em frameworks COBOL
Benefícios do Copybook
Reutilização
Padronização
Menos código duplicado
Facilidade manutenção
Menos erros
Integração entre sistemas
Problemas comuns
Alterar Copybook sem analisar impacto
Pode afetar centenas de programas.
Copiar layouts incompatíveis
Pode causar:
S0C7;
truncamento;
dados incorretos.
Não versionar Copybooks
Dificulta manutenção.
Boas práticas
✅ Um Copybook para cada entidade de negócio
✅ Nome padronizado
✅ Documentar alterações
✅ Evitar campos sem descrição
✅ Manter compatibilidade sempre que possível
Como identificar um Copybook?
Normalmente aparecem comandos como:
COPY CLIENTE.
ou
EXEC SQL
INCLUDE SQLCA
END-EXEC.
Curiosidades
1. Alguns bancos possuem mais de 50 mil Copybooks em produção
2. Uma alteração em um único Copybook pode impactar centenas de aplicações
3. Copybooks são uma das bases da reutilização no COBOL
4. Muitos layouts de arquivos, VSAM e DB2 são compartilhados via Copybook
Resumo rápido
| Conceito | Função |
|---|---|
| Copybook | Arquivo reutilizável |
| COPY | Inclui Copybook |
| COPYLIB | Biblioteca de Copybooks |
| SQLCA | Copybook DB2 |
| DFHAID | Copybook CICS |
| REPLACING | Substituição dinâmica |
| DCLGEN | Geração layouts DB2 |
Conclusão
O Copybook é um dos mecanismos mais importantes do COBOL. Ele permite compartilhar layouts, parâmetros e estruturas entre programas, garantindo padronização, reutilização e manutenção eficiente dos sistemas corporativos executados no ambiente IBM Z.