Translate

sábado, 10 de fevereiro de 2007

O que é Copybook no COBOL?

 

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

ConceitoFunção
CopybookArquivo reutilizável
COPYInclui Copybook
COPYLIBBiblioteca de Copybooks
SQLCACopybook DB2
DFHAIDCopybook CICS
REPLACINGSubstituição dinâmica
DCLGENGeraçã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.


Sem comentários:

Enviar um comentário