A LOCAL-STORAGE SECTION faz parte da DATA DIVISION e é usada para declarar variáveis locais, ou seja, dados que só existem durante a execução de um programa ou método.

Ela é ideal para programas recursivos, subprogramas ou métodos que precisam de variáveis temporárias, sem manter valor entre execuções.

🎯 Finalidade

  • Armazenamento temporário, realocado a cada invocação

  • Dados reinicializados sempre que o programa ou método for chamado

  • Independente da WORKING-STORAGE, que preserva valores entre chamadas

  • Ideal para subprogramas e métodos em Visual COBOL

🔐 Regras importantes

Regra Detalhe
✅ Cabeçalho obrigatório Deve iniciar com LOCAL-STORAGE SECTION. (seguido de ponto final)
🔁 Alocação por invocação Dados são criados e inicializados a cada chamada
🔄 Reinicialização automática Itens com VALUE são redefinidos a cada chamada
🚫 Sem EXTERNAL A cláusula EXTERNAL não é permitida aqui
❗ Pode ser usada em métodos Inclusive métodos com múltiplas instâncias simultâneas
🔒 Valores são independentes entre execuções Nenhum dado é mantido de uma chamada para a outra

🧪 Exemplo prático

******************************************************************
LOCAL-STORAGE SECTION.
******************************************************************
01 LS-CONTADOR      PIC 9(04) VALUE ZERO.
01 LS-MENSAGEM      PIC X(50) VALUE "INICIALIZADO A CADA CHAMADA".

Neste exemplo:

  • O campo LS-CONTADOR será sempre 0000 no início de cada chamada

  • A variável LS-MENSAGEM sempre receberá a mesma frase inicial

🧬 Diferença para WORKING-STORAGE

Característica WORKING-STORAGE LOCAL-STORAGE
Persistência Mantém valor entre chamadas É reinicializado
Alocação Feita 1 vez na execução Feita a cada invocação
Ideal para Variáveis globais do programa Dados temporários
Uso com métodos Compartilhado Isolado por invocação
Suporte a EXTERNAL Sim Não permitido

📌 Quando usar LOCAL-STORAGE?

  • Subprogramas reutilizáveis

  • Métodos (Visual COBOL ou Micro Focus)

  • Programas recursivos

  • Quando você não quer manter dados entre execuções

  • Para isolamento de variáveis (como se fossem variáveis locais de uma função)

 

✅ Conclusão

A LOCAL-STORAGE SECTION é a escolha ideal para quando você precisa de variáveis temporárias, seguras e isoladas entre chamadas. Dominá-la é essencial para programar de forma moderna e eficiente com COBOL, especialmente em contextos modulares, métodos e sistemas legados bem estruturados.