1. Acessando a linha de comando — ISPF Opção 6
Para acessar a linha de comando TSO dentro do ISPF, vá para a opção 6 no Primary Menu ou use o fast path =6 de qualquer tela. Você verá a tela TSO Command Processor:
Digite o comando no campo ==> e pressione Enter. O resultado aparece na mesma tela. Para executar outro comando, pressione PF3 para voltar ao campo de entrada.
🦕 Analogia — Opção 6 como o terminal
Pense na opção 6 como o terminal do Linux ou o PowerShell do Windows dentro do ISPF. Em vez de clicar em menus para ver propriedades de um arquivo ou submeter um job, você simplesmente digita o comando. É mais rápido para quem já conhece os comandos, e essencial para automatização.
2. Comandos de dataset
Estes são os comandos TSO mais usados no dia a dia para gerenciar datasets:
LISTCAT — ver informações do catálogo
O LISTCAT mostra informações sobre datasets registrados no catálogo do sistema — tipo, organização, tamanho, datas de criação e acesso.
💡 Shorthand do LISTCAT
Você pode abreviar: LISTC em vez de LISTCAT, e omitir as aspas se o prefixo for seu próprio TSO user ID. Com o TSO prefix configurado, LISTC L(MEUS.DADOS) ALL já funciona.
LISTDS — detalhes de um PDS ou PS
O LISTDS mostra as características físicas do dataset — RECFM, LRECL, BLKSIZE — e, para PDS, lista os membros.
ALLOCATE — criar um dataset
O ALLOCATE cria um novo dataset diretamente pela linha de comando, equivalente ao que você faria pelo ISPF 3.2.
FREE — liberar alocação
O FREE libera a alocação de um DD name da sua sessão TSO. Não apaga o dataset.
RENAME — renomear dataset
DELETE — apagar dataset
⚠️ DELETE é imediato e irreversível
Diferente do ISPF 3.4 que pede confirmação, o DELETE na linha de comando executa na hora sem perguntar. Confirme o nome do dataset antes de pressionar Enter.
3. Comandos de job
SUBMIT — submeter um job
O SUBMIT envia um membro JCL para a fila de execução do JES. É equivalente a usar o comando SUB no editor do ISPF.
STATUS — verificar status de um job
O STATUS mostra o estado atual dos seus jobs — em fila, executando ou concluídos. Por padrão lista jobs do seu próprio user ID.
CANCEL — cancelar um job em execução
💡 CANCEL vs PURGE
CANCEL interrompe um job que ainda está executando. PURGE (feito pelo SDSF) apaga o output de um job que já terminou. São operações diferentes — um para parar, outro para limpar.
4. Executando programas e CLISTs/REXX
EXEC — executar uma CLIST ou REXX
CLISTs (Command Lists) e programas REXX são scripts que automatizam sequências de comandos TSO. O EXEC executa um membro de uma PDS de procedimentos.
CALL — executar um programa de load library
O CALL executa um programa compilado (módulo de carga) diretamente da linha de comando.
🦕 Analogia — EXEC vs CALL
Pense em EXEC como rodar um script shell (arquivo de texto interpretado linha a linha) e CALL como executar um binário compilado. CLISTs/REXX são scripts; módulos de carga são programas compilados (COBOL, PL/I, etc.).
5. Usando TSO direto da command line do ISPF
Você não precisa ir à opção 6 para executar um comando TSO. Em qualquer tela do ISPF, basta digitar TSO seguido do comando na command line ==>:
Isso é muito útil quando você está no editor e quer verificar o status de um job sem sair da tela. Após o resultado, o ISPF volta automaticamente para onde você estava.
💡 TSO prefix automático
O TSO tem um prefix configurado com o seu user ID. Quando você digita um nome de dataset sem aspas, o TSO automaticamente adiciona o prefix na frente. LISTDS MEUS.DADOS equivale a LISTDS 'USUARIO.MEUS.DADOS'. Use aspas simples sempre que quiser um nome de dataset exato, sem o prefix automático.
Tabela rápida — comandos mais usados
| Comando | O que faz | Exemplo rápido |
|---|---|---|
LISTCAT |
Info do catálogo | LISTC L(USUARIO) ALL |
LISTDS |
Info e membros do dataset | LISTDS 'DS' MEMBERS |
ALLOCATE |
Criar dataset | ALLOC F(DD) DS('DS') NEW ... |
FREE |
Liberar alocação | FREE F(DD) |
RENAME |
Renomear dataset | RENAME 'OLD' 'NEW' |
DELETE |
Apagar dataset | DELETE 'USUARIO.DS' |
SUBMIT |
Submeter job JCL | SUBMIT 'PDS(MEMBRO)' |
STATUS |
Status dos seus jobs | STATUS JOBNOME |
CANCEL |
Cancelar job em execução | CANCEL JOBNOME |
EXEC |
Executar CLIST ou REXX | EXEC 'PDS(EXEC)' 'PARM' |
CALL |
Executar módulo compilado | CALL 'LOADLIB(PROG)' |
6. TSO em batch — IKJEFT01
O TSO não é só interativo. Você pode rodar comandos TSO dentro de um job JCL usando o programa IKJEFT01 — o interpretador TSO em modo batch. Isso é útil para automatizar tarefas que normalmente precisariam de interação humana.
O DD SYSTSIN recebe os comandos TSO (um por linha), e o DD SYSTSPRT captura toda a saída — incluindo resultados de LISTCAT, LISTDS e outros.
Executando um programa COBOL via IKJEFT01
O IKJEFT01 também é usado para executar programas que requerem ambiente TSO — como programas COBOL que fazem chamadas TSO ou programas com ISPF Services:
🦕 Analogia — IKJEFT01 como cron job
Pense no IKJEFT01 como um cron job que executa comandos de terminal automaticamente. Em vez de abrir um terminal e digitar comandos à mão, você monta um script (o SYSTSIN) e o JES executa tudo em batch, sem intervenção humana. Ideal para rotinas de manutenção agendadas.
✅ Combinando IKJEFT01 com outros steps
Um job JCL pode misturar steps IKJEFT01 com steps comuns. Por exemplo: um step copia dados com IEBGENER, outro chama um COBOL via IKJEFT01, um terceiro faz limpeza com IDCAMS. Cada step pode usar COND para executar condicionalmente com base no return code do anterior.