| Bellacosa Mainframe dominando o sort em COBOL mesmo sem usar |
☕ “Se você NÃO domina SORT em COBOL… o Batch vai te dominar”
O poder silencioso que move o coração do Mainframe (Guia para Padawans 🛰️)
“Ordenar dados não é detalhe. É infraestrutura invisível.”
Se você está começando no mundo do mainframe — jovem Padawan — prepare-se para descobrir uma das habilidades mais subestimadas e mais poderosas do COBOL clássico: File Sorting 💾🏛️.
Antes de bancos distribuídos, Spark, Data Lakes e buzzwords da moda…
👉 O mundo corporativo rodava — e ainda roda — sobre arquivos ordenados.
E no z/OS, isso é uma arte.
🧠 Por que SORT é tão importante?
Porque quase todo processamento batch depende disso:
🏦 Extratos bancários
💰 Fechamento contábil
📊 Consolidação de dados
📦 ETL legado
🧾 Billing
📡 Integração entre sistemas
Sem ordenação, você não consegue:
✔ Agrupar dados
✔ Detectar duplicidades
✔ Fazer merges eficientes
✔ Produzir relatórios sequenciais
✔ Atualizar arquivos mestre
Sorting é a base do processamento sequencial.
🏛️ O Modelo Sagrado dos 3 Arquivos
Todo Padawan deve decorar isto:
Input file → Sort work file → Output file
| Papel | Descriptor COBOL | Função |
|---|---|---|
| 📥 Entrada | FD | Dados brutos |
| 🛠️ Trabalho | SD | Área interna do sort |
| 📤 Saída | FD | Dados ordenados |
👉 O work file usa SD — Sort Description, não FD.
💡 Easter egg histórico: SD existe desde os primórdios do COBOL, muito antes do COBOL-85.
⚙️ Exemplo mínimo — SORT básico
🧱 Definições
FD Unsorted-Sales-File.
01 Unsorted-Sales-Record PIC X(100).
FD Sorted-Sales-File.
01 Sorted-Sales-Record PIC X(100).
SD Sort-Work-File.
01 Sort-Work-Record.
02 SalesClerk-ID PIC 9(6).
02 Filler PIC X(94).
🚀 O comando SORT
SORT Sort-Work-File
ON ASCENDING KEY SalesClerk-ID
USING Unsorted-Sales-File
GIVING Sorted-Sales-File.
Simples. Poderoso. Antigo. E ainda imbatível.
🔥 USING e GIVING — a força do fluxo
| Cláusula | Significado |
|---|---|
| USING | Arquivo de entrada |
| GIVING | Arquivo de saída |
👉 O SORT abre e fecha esses arquivos automaticamente.
💡 Curiosidade: você pode usar múltiplos arquivos em USING ou GIVING.
🧩 O verdadeiro poder: Sort Procedures
Quando você evolui de Padawan para Jedi Batch, descobre isto:
👉 Você pode controlar o sort antes e depois.
📥 INPUT PROCEDURE — o produtor
Fluxo:
Input file → Input Procedure → Sort
Serve para:
✔ Filtrar registros
✔ Combinar múltiplos arquivos
✔ Converter layouts
✔ Gerar dados dinamicamente
🔑 Comando obrigatório: RELEASE
MOVE Input-Record TO Sort-Work-Record
RELEASE Sort-Work-Record
Sem RELEASE → o sort não recebe nada.
📤 OUTPUT PROCEDURE — o consumidor
Fluxo:
Sort → Output Procedure → Output file
Serve para:
✔ Formatar saída
✔ Criar múltiplos arquivos
✔ Calcular totais
✔ Produzir relatórios
🔑 Comando obrigatório: RETURN
RETURN Sort-Work-File
AT END MOVE 'Y' TO EOF
NOT AT END
MOVE Sort-Work-Record TO Output-Record
WRITE Output-Record
END-RETURN
⚡ Regra Jedi: RELEASE vs RETURN
| Ação | Comando |
|---|---|
| Enviar ao sort | RELEASE |
| Receber do sort | RETURN |
Se inverter isso… o Batch vai punir você.
🧪 Exemplo completo com procedures
SORT Sort-Work-File
ON ASCENDING KEY Customer-ID
INPUT PROCEDURE IS Load-Records
OUTPUT PROCEDURE IS Write-Records
🧠 Insight profundo: o SD é o “formato interno”
O sort não usa diretamente os layouts dos arquivos.
Fluxo real:
Input record(s)
↓ (movidos/construídos)
Sort-Work-Record (SD)
↓
Ordenação pelas chaves do SD
↓
Output record(s)
👉 Por isso as chaves devem existir no SD.
💎 Curiosidades que impressionam em entrevistas
✔ SORT COBOL usa o utilitário do sistema (DFSORT/SYNCSORT)
✔ Pode lidar com volumes absurdos de dados
✔ Muitas vezes supera soluções modernas em throughput sequencial
✔ É determinístico e confiável
✔ Existe há mais de 60 anos
💡 Easter egg: DFSORT já fazia “Big Data” quando esse termo nem existia.
🏆 Quando usar SORT COBOL vs DFSORT JCL?
| Situação | Melhor opção |
|---|---|
| Sort simples e reutilizável | DFSORT no JCL |
| Lógica complexa no programa | SORT COBOL |
| Transformações avançadas | Procedures |
| Performance máxima pura | DFSORT externo |
Na vida real de produção:
👉 A maioria dos sorts massivos é feita fora do COBOL.
🧘 Conselhos do Mestre Bellacosa para Padawans
☕ “Aprenda SORT cedo. Você vai usá-lo mais do que imagina.”
✔ Domine SD vs FD
✔ Entenda USING/GIVING
✔ Memorize RELEASE/RETURN
✔ Saiba quando usar procedures
✔ Pense em fluxo sequencial
🛰️ Conclusão — O poder invisível
Sorting não aparece em demos bonitas.
Não vira post viral.
Não tem hype.
Mas sem ele…
👉 O batch não roda
👉 O fechamento não fecha
👉 O banco não fecha o dia
👉 O sistema não entrega resultados
SORT é infraestrutura silenciosa.
E quem domina isso domina o processamento de dados no mainframe.