A ENVIRONMENT DIVISION é a segunda divisão obrigatória de um programa COBOL. Ela serve como ponte entre o código-fonte e o ambiente operacional, informando ao compilador como o programa interage com o sistema e seus arquivos.
🧭 Estrutura geral da ENVIRONMENT DIVISION
A divisão é composta por duas seções:
1. CONFIGURATION SECTION
Define o ambiente físico e lógico onde o programa será compilado e executado.
2. INPUT-OUTPUT SECTION
Define como os arquivos serão acessados e manipulados durante a execução do programa.
⚙️ CONFIGURATION SECTION
Contém três possíveis parágrafos:
Parágrafo | Função |
---|---|
SOURCE-COMPUTER |
Identifica o computador onde o código-fonte foi escrito e compilado. (opcional, uso mais documental) |
OBJECT-COMPUTER |
Identifica o ambiente onde o programa será executado. (também opcional, pode ser ignorado sem prejuízo técnico) |
SPECIAL-NAMES |
Define configurações especiais, como o símbolo monetário ou o uso da vírgula como ponto decimal (ex: DECIMAL-POINT IS COMMA ) |
📌 Exemplo: Uso da cláusula DECIMAL-POINT IS COMMA
Sem a cláusula | Com a cláusula DECIMAL-POINT IS COMMA |
---|---|
456.23 (quatrocentos e cinquenta e seis ponto vinte e três) |
456,23 (mesmo valor com vírgula) |
1,978 (mil e novecentos e setenta e oito) |
1.978 (mil e noventa e oito, dependendo do contexto) |
💾 INPUT-OUTPUT SECTION
Define os arquivos que o programa irá acessar, o modo de acesso e suas características.
Parágrafos:
-
FILE-CONTROL
: Define arquivos, organização, modo de acesso e status. -
I-O CONTROL
: Obsoleto em versões modernas, usado apenas em ambientes mainframe legados.
🔄 Modos de acesso e organização
🟢 SEQUENCIAL
Usado para arquivos que serão lidos ou gravados linha por linha, do início ao fim.
SELECT nome-arquivo ASSIGN TO nome-externo
ORGANIZATION IS LINE SEQUENTIAL
ACCESS MODE IS SEQUENTIAL
FILE STATUS IS fs-arquivo.
🟡 RANDÔMICO
Para acesso direto a registros com base em chave ou posição.
SELECT nome-arquivo ASSIGN TO nome-externo
ORGANIZATION IS RELATIVE
ACCESS MODE IS RANDOM
RELATIVE KEY IS chave-randomica
FILE STATUS IS fs-arquivo.
🔵 DINÂMICO
Permite acesso sequencial ou randômico no mesmo programa.
SELECT nome-arquivo ASSIGN TO nome-externo
ORGANIZATION IS RELATIVE
ACCESS MODE IS DYNAMIC
RELATIVE KEY IS chave-randomica
FILE STATUS IS fs-arquivo.
🧪 Exemplo prático
******************************************************************
ENVIRONMENT DIVISION.
******************************************************************
CONFIGURATION SECTION.
******************************************************************
SPECIAL-NAMES. DECIMAL-POINT IS COMMA.
******************************************************************
INPUT-OUTPUT SECTION.
******************************************************************
FILE-CONTROL.
******************************************************************
SELECT CADCLIEN ASSIGN TO UT-S-CADCLIEN
FILE STATUS IS WS-FS-CADCLIEN.
SELECT CADFORN ASSIGN TO UT-S-CADFORN
FILE STATUS IS WS-FS-CADFORN.
SELECT CADVSAM ASSIGN TO DA-I-CADVSAM
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS VSAM-COD-CHAVE
FILE STATUS IS WS-FS-CADVSAM.
▶️ Vídeo: ENVIRONMENT DIVISION no COBOL
Assista ao conteúdo prático e detalhado no canal Cobol Dicas:
✅ Conclusão
A ENVIRONMENT DIVISION
conecta seu programa COBOL ao sistema operacional. Mesmo com seções que se tornaram opcionais, ela ainda é vital para definir arquivos e garantir que o programa funcione corretamente no ambiente de produção.