☕ Um Café no Bellacosa Mainframe
Gostou do conteúdo? Ajude a manter o café quente, o COBOL compilando e o mainframe acordado. 😄
☕ Pague um café ao Bellacosa

Translate

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

sábado, 24 de junho de 2023

IEBPTPCH: Como um Padawan COBOL Pode Enxergar os Segredos dos Data Sets do IBM Z Sem Invocar IDCAMS, ISPF ou Magia Negra

 

Bellacosa Mainframe e o iebptpch para analise de copybooks

☕ O Holocron do IEBPTPCH

Como um Padawan COBOL Pode Enxergar os Segredos dos Data Sets do IBM Z Sem Invocar IDCAMS, ISPF ou Magia Negra

"O Mainframe nunca escondeu seus segredos. Apenas esperava que alguém tivesse paciência suficiente para imprimir seus antigos holocrons."

— Bellacosa Mainframe

Introdução – O dia em que o Padawan encontrou um artefato esquecido

Todo programador COBOL passa por algumas iniciações obrigatórias.

Primeiro aprende a editar no ISPF.

Depois descobre o SDSF.

Em seguida entende que JCL não é exatamente uma linguagem, mas uma espécie de contrato legal escrito por advogados intergalácticos.

E então chega um dia estranho.

Seu Tech Lead aparece.

Pergunta:

— Bellacosa Jr., consegue verificar o conteúdo do copybook ACCOUNT-COMMON sem abrir o ISPF?

Você responde:

— Posso fazer um Browse...

Ele sorri.

— Não.

— Quero um spool.

— Quero evidência.

— Quero auditoria.

— Quero algo que funcione igual em 1985, 2005 e 2026.

Nesse momento surge um pequeno utilitário.

Pequeno.

Discreto.

Quase esquecido.

Chamado IEBPTPCH.

E ele provavelmente estava instalado no seu sistema antes mesmo de você nascer.


Afinal, o que é o IEBPTPCH?

IEBPTPCH é um dos utilitários clássicos do z/OS.

Seu nome vem de uma época em que desenvolvedores utilizavam cartões perfurados.

IBM Extended Basic Punch Utility

O nome ficou.

Os cartões morreram.

Mas o utilitário continua vivo.

Sua missão é extremamente simples:

Visualizar dados sem alterá-los.

Ele funciona como um scanner arqueológico.

Abre.

Lê.

Imprime.

Exporta.

Documenta.

Mas não modifica.

É quase um modo READ ONLY elevado ao estado zen.


Por que ele ainda existe?

Porque empresas grandes amam evidências.

Bancos.

Seguradoras.

Governo.

Bolsa de Valores.

Data Centers.

Auditores não gostam de ouvir:

"Confia em mim."

Eles gostam de receber:

PDF

Spool

Relatórios

Listagens

Evidências históricas

IEBPTPCH nasceu para isso.


O grande poder do utilitário

Ele consegue trabalhar com:

Dataset sequencial

PS


Biblioteca particionada

PDS

PDSE


Vários datasets concatenados

ARQ1

ARQ2

ARQ3

Tudo junto.


Membros específicos

COPYBOOKS

COBOL

JCL

PROC


Anatomia do Job

Passo 1

EXEC

//STEP01 EXEC PGM=IEBPTPCH

Nada de parâmetros.

Nada complicado.


Passo 2

SYSUT1

Entrada.

É o Holocron.

Dataset origem.

//SYSUT1 DD DSN=BANK.COPYLIB,
// DISP=SHR

Passo 3

SYSUT2

Destino.

Geralmente spool.

//SYSUT2 DD SYSOUT=*

Pode ser arquivo também.


Passo 4

SYSPRINT

Mensagens.

Diagnóstico.

//SYSPRINT DD SYSOUT=*

Passo 5

SYSIN

Comandos.

//SYSIN DD *
PRINT TYPORG=PO
/*

Fim.

Literalmente.

Acabou.

O utilitário já está funcionando.


Entendendo o TYPORG

Esse parâmetro derruba muitos padawans.

TYPORG=PO

Partitioned Organization

PDS

PDSE

Exemplo:

PRINT TYPORG=PO

TYPORG=PS

Sequential

Arquivo sequencial.

Exemplo:

PRINT TYPORG=PS

Laboratório 1 — Imprimindo um programa COBOL

Suponha:

BELLA.COBOL.SOURCE

Possui:

PGMCLIENT

Nosso objetivo:

Visualizar.

Imprimir.

Documentar.

Sem editar.


JCL

//PRINT01 EXEC PGM=IEBPTPCH

//SYSUT1 DD DSN=BELLA.COBOL.SOURCE,
/// DISP=SHR

//SYSUT2 DD SYSOUT=*

//SYSPRINT DD SYSOUT=*

//SYSIN DD *

PRINT MEMBER=PGMCLIENT,
      TYPORG=PO

/*

Resultado:

IDENTIFICATION DIVISION.

PROGRAM-ID. PGMCLIENT.

DATA DIVISION.

WORKING-STORAGE SECTION.

Tudo vai para spool.

Pode virar PDF.

Enviar email.

Arquivar.

Git.

Wiki.

Confluence.

RAG.

LLM.


Laboratório 2 — Copybook perdido

Situação real.

Padawan recebe erro:

IGYDS1089-E

Copybook não encontrado.

Ele suspeita.

Existe um copybook chamado:

CLIENTE

Mas não sabe.

Executa:

PRINT MEMBER=CLIENTE,
      TYPORG=PO

Descobre:

05 CPF PIC 9(11).

05 NOME PIC X(50).

Mistério resolvido.


Laboratório 3 — Dataset Sequencial

Arquivo:

BANK.CLIENT.FILE

Conteúdo:

000001JOSE
000002MARIA
000003ANA

JCL:

PRINT TYPORG=PS

Saída:

000001JOSE

000002MARIA

000003ANA

Simples.

Elegante.

Funciona desde o System/370.


Laboratório 4 — Concatenando datasets

Algo muito utilizado.

Exemplo:

//SYSUT1 DD DSN=FILE01,
// DISP=SHR

// DD DSN=FILE02,
// DISP=SHR

// DD DSN=FILE03,
// DISP=SHR

IEBPTPCH processa tudo.

Como se fosse um único arquivo.

Excelente para auditorias.


Easter Egg Nº 1

Pouca gente sabe.

O nome PUNCH não desapareceu.

Existe ainda.

PUNCH TYPORG=PO

Originalmente produzia cartões perfurados.

Hoje gera saída textual.

É um pequeno fóssil tecnológico preservado dentro do z/OS.


Easter Egg Nº 2

Em vários bancos brasileiros o IEBPTPCH ainda é usado por equipes SOX.

Motivo?

Auditores adoram spool.

Spool possui:

Timestamp

Classe

Owner

Jobname

Número do Job

Histórico

É praticamente uma cadeia de custódia digital.


Easter Egg Nº 3

Muitos pipelines modernos de IA podem usar IEBPTPCH.

Arquitetura:

PDS

↓

IEBPTPCH

↓

TXT

↓

Chunking

↓

Embedding

↓

Vector DB

↓

RAG

↓

Agente COBOL

Sim.

Um utilitário criado na década de 1960 pode alimentar agentes de IA em 2026.

Existe certa poesia nisso.


Comparação com outros utilitários

UtilitárioFaz o quê
IEBPTPCHVisualiza
IEBGENERCopia
IEBCOPYManipula PDS
IDCAMSVSAM
DFSORTOrdena
ISPF BrowseVisualiza
SDSFConsulta spool

Dicas de veterano Bellacosa Mainframe

Dica 1

Nunca faça EDIT apenas para olhar.

Use Browse.

Ou IEBPTPCH.


Dica 2

Quer documentação automática?

IEBPTPCH.

Spool.

PDF.

Git.

IA.


Dica 3

Quer descobrir rapidamente o que existe numa biblioteca antiga?

IEBPTPCH.


Dica 4

Em ambientes regulados, produzir evidência vale ouro.

IEBPTPCH é praticamente um gerador oficial de evidências.


O que um Padawan COBOL deve aprender com isso?

O erro comum dos iniciantes é imaginar que dominar Mainframe significa conhecer apenas COBOL, DB2 e CICS.

Não.

O verdadeiro Jedi do IBM Z entende que o ecossistema é formado por centenas de pequenos holocrons tecnológicos acumulados ao longo de mais de sessenta anos de engenharia.

IEBPTPCH é um deles.

Ele não possui interface web.

Não oferece API REST.

Não conversa diretamente com ChatGPT.

Não tem dashboard em React.

Mas continua fazendo algo extraordinariamente importante:

Permitir observar, compreender e preservar conhecimento corporativo armazenado em datasets do z/OS de forma simples, segura e praticamente imutável.

E talvez seja exatamente isso que diferencia um simples programador COBOL de um Mestre Bellacosa Mainframe: entender que, antes de modernizar sistemas, conectar APIs ou alimentar agentes de IA, é preciso primeiro abrir os antigos holocrons do datacenter e aprender a escutar o que eles ainda têm a ensinar.


domingo, 6 de novembro de 2016

☕ Os Holocrons dos Utilitários JCL: As Ferramentas Secretas que Transformam um Padawan COBOL em um Mestre do Batch

 

Bellacosa Mainframe e os utilitarios de jcl que aumentam a produtividade 

☕ Os Holocrons dos Utilitários JCL: As Ferramentas Secretas que Transformam um Padawan COBOL em um Mestre do Batch

"Todo programador COBOL aprende IF, PERFORM e READ. Poucos descobrem que grande parte do trabalho pesado do mundo IBM Z é realizado por pequenos utilitários invisíveis que trabalham silenciosamente há décadas."

Existe um momento na jornada de todo Padawan COBOL em que ele percebe uma verdade desconfortável.

Ele passou três horas escrevendo um programa COBOL para copiar arquivos.

Depois mais duas horas desenvolvendo outro para ordenar registros.

Em seguida criou um terceiro para contar ocorrências.

Um quarto para apagar datasets.

Um quinto para gerar relatórios simples.

E então aparece um velho Sysprog tomando café, olha para a tela e pergunta:

— Por que você escreveu tudo isso?

— Porque precisava fazer essas tarefas...

O veterano sorri.

— Meu jovem Padawan... o z/OS faz isso desde antes de você nascer.

E então ele abre o Holocron dos Utilitários.


O que são utilitários no mundo JCL?

Utilitários são programas fornecidos pela IBM ou por produtos instalados que executam tarefas administrativas, operacionais e de manipulação de dados.

São verdadeiros canivetes suíços do IBM Z.

Eles permitem:

  • Copiar datasets

  • Ordenar milhões de registros

  • Filtrar informações

  • Mesclar arquivos

  • Criar datasets

  • Excluir datasets

  • Imprimir conteúdos

  • Fazer backup

  • Gerar estatísticas

  • Converter formatos

  • Executar manutenção

Sem escrever uma única linha de COBOL.

O desenvolvedor produtivo não programa tudo.

Ele sabe quando reutilizar ferramentas.


1. IEBGENER — O utilitário que todo Padawan deveria conhecer primeiro

É provavelmente o utilitário mais usado do ambiente z/OS.

Função principal:

Copiar datasets.

Exemplo

//STEP01 EXEC PGM=IEBGENER

//SYSUT1 DD DSN=ARQ.ORIGEM,
//       DISP=SHR

//SYSUT2 DD DSN=ARQ.DESTINO,
//       DISP=OLD

//SYSPRINT DD SYSOUT=*

//SYSIN DD DUMMY

Pode parecer simples.

Mas resolve dezenas de situações.

Copiar arquivos VSAM exportados.

Duplicar layouts.

Criar arquivos de teste.

Mover resultados batch.


Quando evita escrever COBOL?

Imagine desenvolver um programa com:

OPEN INPUT

OPEN OUTPUT

READ

WRITE

EOF

CLOSE

Tudo isso apenas para copiar um arquivo.

IEBGENER faz em segundos.


2. SORT (DFSORT/SYNCSORT)

Este talvez seja o utilitário mais poderoso do ecossistema IBM.

É praticamente uma linguagem própria.

Pode:

Ordenar

Mesclar

Somar

Agrupar

Transformar

Filtrar

Criar relatórios

Converter formatos

Gerar arquivos

Manipular datas

Remover duplicidades


Exemplo simples

SORT FIELDS=(1,10,CH,A)

Ordena pelo campo posição 1 tamanho 10.


Remover duplicados

SORT FIELDS=(1,10,CH,A)

SUM FIELDS=NONE

Resultado:

Arquivo limpo.


Filtrar registros

INCLUDE COND=(1,1,CH,EQ,C'A')

Mantém apenas registros iniciados por A.


OUTFIL

Uma das funcionalidades mais incríveis.

Separar arquivos.

Criar múltiplas saídas.

Gerar cabeçalhos.

Gerar trailers.

Formatar colunas.


Exemplo:

OUTFIL FNAMES=CLIENTE

INCLUDE=(1,1,CH,EQ,C'C')

OUTFIL FNAMES=FORNEC

Um arquivo vira dois.

Sem COBOL.


3. IDCAMS

O mestre Jedi dos datasets.

Principalmente VSAM.


DELETE

DELETE CLIENTES.KSDS

DEFINE CLUSTER

Criar VSAM.

DEFINE CLUSTER -

(NAME(CLIENTES)) -

INDEXED

LISTCAT

Consultar catálogo.

LISTCAT ENT(CLIENTES)

Retorna:

Volume

Datas

Extents

Organização


REPRO

Copiar VSAM.

REPRO -

INFILE(INPUT)

OUTFILE(OUTPUT)

Muito usado em testes.


4. IEHLIST

Pouco conhecido pelos iniciantes.

Extremamente útil.

Lista informações físicas.

Volumes.

Tracks.

Datasets.


Exemplo:

LISTVTOC

Excelente para administradores.


5. IEFBR14

O programa mais famoso do z/OS.

Possui praticamente uma única instrução.

BR 14

Retornar.


Mas é extremamente útil.


Criar datasets

//EXEC PGM=IEFBR14


//ARQ DD DSN=TESTE.ARQ,

//DISP=(NEW,CATLG),

//SPACE=(CYL,(1,1))

Apagar datasets

DISP=(OLD,DELETE)

Padawan normalmente fica surpreso.

"Um programa vazio consegue criar arquivos?"

Sim.

Porque quem cria é o sistema.

IEFBR14 apenas dispara a alocação.


6. IEBCOPY

Especialista em bibliotecas.

PDS

PDSE

Loadlibs

JCLLIB

PROCLIB

COPYLIB


Copiar membros

COPY OUTDD=OUT


INDD=IN

Selecionar membros

SELECT MEMBER=(PROG1)

Ideal para:

Promotion

Deploy

Backup

Migração


7. IEBUPDTE

O ancestral do Git.

Poucos conhecem.

Mas era revolucionário.

Permitia atualizar bibliotecas por comandos.


Exemplo

./ ADD NAME=PROG1

Inserir membros.

Alterar.

Excluir.


Décadas antes do GitHub.


8. ICETOOL

O irmão mais sofisticado do DFSORT.

Executa tarefas complexas.


COUNT

DISPLAY

UNIQUE

OCCUR

SPLICE

STATS


Contar registros

COUNT FROM(INPUT)

Encontrar duplicados

OCCUR

Estatísticas

STATS

Ideal para auditorias.


9. ADRDSSU

Backup corporativo.

Conhecido como DFDSS.


Pode:

Copiar volumes

Backup

Restore

Compressão

Dump

Movimentação


Exemplo

DUMP DATASET(INCLUDE(TESTE))

Muito usado em produção.


10. IKJEFT01

Uma verdadeira ponte entre TSO e Batch.

Executa comandos TSO.

DB2.

REXX.

CLIST.


Executar DB2

EXEC PGM=IKJEFT01

Rodar:

SPUFI

DSN

BIND

REBIND

RUNSTATS

REORG


Executar REXX

Automação total.


11. DSNUTILB

Utilitário poderoso do DB2.

Executa:

LOAD

UNLOAD

COPY

RUNSTATS

REORG

CHECK DATA

MODIFY


Exemplo

LOAD DATA

Carga massiva.

Milhões de registros.

Muito mais rápido que COBOL.


12. File Manager, SORT Products e Ferramentas Modernas

Em muitos ambientes corporativos existem produtos adicionais.

IBM File Manager

Syncsort

CA-Easytrieve

DB2 Utilities

Abend-AID

Xpediter


Ganhos impressionantes:

Visualização rápida

Edição de arquivos

Comparação datasets

Conversão

Debug

Geração de testes


A Mentalidade do Desenvolvedor COBOL Produtivo

Um erro comum dos iniciantes é acreditar que produtividade significa escrever mais programas.

No IBM Z ocorre exatamente o oposto.

Um desenvolvedor experiente faz constantemente a seguinte pergunta:

"Existe um utilitário que já resolva este problema?"

Muitas vezes a resposta é sim.

Em vez de construir um COBOL de 800 linhas para separar registros, o especialista utiliza DFSORT.

Ao invés de criar um programa apenas para copiar arquivos, usa IEBGENER.

No lugar de escrever uma rotina de manutenção VSAM, emprega IDCAMS.

Em vez de desenvolver scripts externos para estatísticas, utiliza ICETOOL.

O resultado é significativo:

  • Menos código para manter;

  • Menos testes;

  • Menor risco de erros em produção;

  • Redução de consumo de CPU;

  • Processamentos batch mais rápidos;

  • Maior padronização operacional;

  • Entregas mais ágeis.

No universo IBM Z, conhecimento técnico não se mede apenas pela capacidade de programar COBOL sofisticado. Mede-se também pela habilidade de reconhecer quando não é necessário programar.

O verdadeiro Mestre Jedi do Batch entende que o sistema operacional já oferece um arsenal construído ao longo de mais de cinquenta anos de evolução. Cada utilitário é um pequeno holocron de sabedoria acumulada, refinado por milhares de empresas que processam diariamente bilhões de transações financeiras, seguros, telecomunicações e sistemas governamentais.

E talvez esta seja uma das maiores lições para um Padawan COBOL: a produtividade não está em produzir mais linhas de código. Está em conhecer profundamente as ferramentas disponíveis, reutilizar capacidades existentes e permitir que o IBM Z faça aquilo para o qual ele foi projetado desde o início: executar trabalho pesado com elegância, estabilidade e uma eficiência que continua impressionando gerações sucessivas de desenvolvedores. Afinal, no mundo do mainframe, muitas vezes o melhor programa COBOL é justamente aquele que você nunca precisou escrever.

Vagner Renato Bellacosa, IBM Champion e especialista em IBM Mainframe
IBM Z17 SYSTEM ONLINE
Sobre o autor

Vagner Renato Bellacosa

IBM Champion 2026 • Especialista em IBM Mainframe

Vagner Renato Bellacosa trabalha com IBM Mainframe desde 1988 , é IBM Champion e especialista em COBOL, CICS, Db2, z/OS e IBM Z. Compartilha experiências profissionais, conhecimento técnico, história da computação e práticas do universo mainframe para aproximar novas gerações das tecnologias que sustentam empresas, bancos e governos ao redor do mundo.

IBM Champion IBM Z COBOL CICS Db2 z/OS Mainframe desde 1988
GitHub LinkedIn
Inicializando conteúdo...