Mostrar mensagens com a etiqueta condense. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta condense. Mostrar todas as mensagens

segunda-feira, 15 de dezembro de 2025

☕ SLINE, ALT, CONDENSE e XREF no REXX Mainframe

 


SLINE, ALT, CONDENSE e XREF no REXX Mainframe

As “condições invisíveis” que mandam no batch (e quase ninguém percebe)

“O batch não falhou.
Ele apenas executou exatamente o que você mandou…
inclusive o que você não sabia que estava mandando.”




🧠 Introdução – O batch não é só JCL

Quando falamos de batch no mainframe, a maioria pensa em:

  • JCL

  • Utilities

  • RC

  • Cond codes

Mas quem já viveu produção sabe:

O verdadeiro controle do batch moderno está nos REXX intermediários.

E dentro desses REXX, existem condições operacionais silenciosas que raramente são documentadas, mas mudam completamente o comportamento do processamento:

👉 SLINE
👉 ALT
👉 CONDENSE
👉 XREF

Elas não aparecem no JCL.
Não geram ABEND.
Mas definem o destino do processamento.


🕰️ Origem histórica – Por que isso existe?

Esses conceitos nasceram entre o final dos anos 80 e início dos 90, quando:

  • REXX começou a ser usado como cola entre utilities

  • ISPF virou padrão

  • O batch passou a depender de pré-processamento inteligente

  • O volume de dados cresceu, mas o tempo de janela diminuiu

O REXX deixou de ser “script do programador” e virou:

Camada de controle semântico do batch

SLINE, ALT, CONDENSE e XREF surgem como padrões operacionais, não como comandos formais únicos.


📜 SLINE – A linha como unidade de decisão

O que é SLINE?

SLINE representa o conceito de Single Logical Line.

No batch tradicional:

  • Você lê registros

  • Processa campos

  • Escreve saída

No REXX:

  • A linha inteira vira contexto

  • A decisão acontece antes do parsing pesado

Onde aparece?

  • Leitura de SYSIN

  • Pré-processamento de arquivos texto

  • Logs JES, SYSOUT, relatórios

Exemplo conceitual

do while lines(infile) > 0 sline = linein(infile) if pos('ERROR', sline) > 0 then ... end

🧩 Curiosidade

SLINE é o motivo pelo qual muitos REXX detectam erro antes do COBOL rodar.

SLINE é o “olhar rápido” do batch.


🔁 ALT – Alteração controlada de realidade

O que é ALT?

ALT representa a alteração do conteúdo original, normalmente:

  • Substituição

  • Normalização

  • Correção emergencial

ALT não é “editar”.
ALT é corrigir o mundo antes que o batch veja.

Exemplo

sline = changestr(';;', ';', sline)

Onde ALT reina?

  • Arquivos vindos de sistemas externos

  • Migrações

  • Contornos de erro sem recompilar COBOL

⚠️ Comentário Bellacosa

ALT é poderoso… e perigoso.
Se você altera dados sem log, você está reescrevendo a história.


🧹 CONDENSE – Limpar antes de decidir

O que é CONDENSE?

CONDENSE elimina:

  • Espaços redundantes

  • Caracteres inválidos

  • Ambiguidade de parsing

É o equivalente batch do:

“Vamos arrumar a casa antes de discutir.”

Exemplo

sline = space(sline, 1)

Por que isso importa?

Porque 90% das falhas de batch REXX vêm de espaços invisíveis.

Easter Egg técnico 🥚

Muitos problemas “intermitentes” desaparecem apenas adicionando CONDENSE.

Não era bug.
Era whitespace.


🔗 XREF – A memória do batch

O que é XREF?

XREF (cross reference) não é um comando REXX padrão.
É um conceito de rastreabilidade:

  • De onde veio o dado

  • Para onde ele foi

  • Quem foi afetado

No REXX batch, XREF geralmente aparece como:

  • Tabelas stem

  • Arquivos auxiliares

  • Logs correlacionados

Exemplo conceitual

xref.userid = jobname xref.record = sline

Por que isso existe?

Porque batch sem XREF:

  • Não é auditável

  • Não é explicável

  • Não é confiável

XREF é o que transforma automação em processo corporativo.


🧪 Exemplo integrado – O batch invisível

do while lines(in) > 0 sline = linein(in) sline = space(sline, 1) /* CONDENSE */ sline = changestr('|', ';', sline) /* ALT */ if pos('INVALID', sline) > 0 then do xref.error = sline /* XREF */ iterate end call lineout out, sline end

Esse REXX:

  • Limpa

  • Corrige

  • Decide

  • Documenta

Tudo antes do COBOL rodar.


🧠 O que isso significa no processo batch?

SLINE, ALT, CONDENSE e XREF são:

  • Condições implícitas

  • Regras não declaradas

  • Decisões fora do JCL

Eles definem:

  • Se o job falha ou passa

  • Se o dado é confiável

  • Se o erro é detectado cedo

  • Se o incidente é explicável depois


⚠️ O risco oculto

“Não está no JCL, então ninguém revisa.”

Esse é o maior perigo.

REXX batch sem governança vira:

  • Caixa-preta

  • Dependência de pessoa

  • Fonte de incidente crônico


☕ Comentário final – Um Café no Bellacosa Mainframe

No mainframe moderno:

O JCL agenda.
O COBOL processa.
Mas o REXX decide.

E quem domina SLINE, ALT, CONDENSE e XREF entende que o batch não quebra por acaso — ele quebra por decisões invisíveis.

Conhecer essas condições não te torna um programador melhor.
Te torna um guardião do processamento.