📌 Explicação

SORT é o utilitário usado pra:

  • Ordenar arquivos com base em campos específicos

  • Filtrar registros com base em condições (INCLUDE/OMIT)

  • Resumir dados com somatório (SUM FIELDS)

  • Formatar saídas (OUTREC, INREC)

  • Fazer merge, split e join de arquivos

É tipo o Excel do mainframe, só que via JCL!

🧰 Usos mais comuns

  • Ordenar um arquivo para gerar relatórios

  • Eliminar duplicidades

  • Somar valores por chave (tipo GROUP BY)

  • Separar arquivos por condição

  • Gerar novos layouts de arquivo

🧾 Exemplo básico: ordenar por campo

//ORDENA JOB (1234),'COBOL DICAS',
//             CLASS=A,MSGCLASS=X
//*
//STEP01  EXEC PGM=SORT
//SYSOUT  DD SYSOUT=*
//SORTIN  DD DSN=CDICAS.ENTRADA.DADOS,DISP=SHR
//SORTOUT DD DSN=CDICAS.SAIDA.ORDENADO,
//           DISP=(NEW,CATLG,DELETE),
//           SPACE=(TRK,(5,2)),UNIT=SYSDA
//SYSIN   DD *
  SORT FIELDS=(1,10,CH,A)
/*

Esse exemplo:

  • Ordena o arquivo de entrada a partir da posição 1, com tamanho 10, tipo alfanumérico (CH) e em ordem ascendente (A)

🧾 Exemplo: eliminar registros duplicados

//SYSIN DD *
  SORT FIELDS=(1,10,CH,A)
  SUM FIELDS=NONE
/*

Ele vai manter apenas um registro por chave entre as posições 1 e 10.

🧾 Exemplo: somar valores por chave

//SYSIN DD *
  SORT FIELDS=(1,10,CH,A)
  SUM FIELDS=(11,5,ZD)
/*

Isso soma os valores numéricos contidos entre as posições 11 e 15, agrupados por chave entre 1 e 10.

🧾 Exemplo: selecionar registros

//SYSIN DD *
  SORT FIELDS=COPY
  INCLUDE COND=(20,2,CH,EQ,C'RJ')
/*

Copia somente registros que tenham o valor "RJ" entre as posições 20 e 21.

🧾 Exemplo: reformatar registros

//SYSIN DD *
  SORT FIELDS=COPY
  OUTREC FIELDS=(1,10,C' - ',11,20)
/*

Gera um novo layout com os 10 primeiros bytes, insere " - ", e depois os 20 seguintes.

⚙️ Regras

  • Sempre defina corretamente o formato dos campos:

    • CH = alfanumérico

    • ZD = decimal zonado

    • PD = decimal compactado

    • BI = binário

  • SORT FIELDS=COPY é usado quando não quer ordenar, só aplicar filtros ou formatação

  • Tudo é feito via SYSIN (sem programação externa!)

💡 Dicas

  • Use o SORT pra preparar arquivos antes de carregar no COBOL ou DB2.

  • Combine INREC, OUTREC, SUM, INCLUDE e OMIT pra montar lógicas avançadas.

  • Pode usar JOINKEYS pra fazer junção de dois arquivos — tipo JOIN do SQL.

 

✅ Conclusão

O SORT é um dos utilitários mais versáteis do mainframe. Com ele, dá pra fazer desde um filtro simples até um relatório complexo com agrupamentos, totais, quebras e formatação — tudo via JCL. Se dominar SORT, você reduz programas COBOL inteiros a poucos comandos. E isso é poder de verdade!