TSO e ISPF fazem parte da rotina de milhares de profissionais que desenvolvem e mantêm aplicações no z/OS. Embora sejam normalmente mencionados juntos, eles não são a mesma coisa.
- TSO/E — Time Sharing Option/Extensions: ambiente que permite ao usuário interagir com o z/OS e executar comandos.
- ISPF — Interactive System Productivity Facility: interface baseada em painéis que funciona sobre o TSO e facilita tarefas como navegar, editar membros, manipular datasets e executar utilitários.
Um comando TSO pode ser executado após a mensagem READY, na opção 6 do ISPF ou, em muitos painéis, com o prefixo TSO. Por exemplo:
TSO LISTALC STATUS
1. Comandos básicos do TSO/E
HELP — consultar ajuda
Exibe informações sobre um comando e seus operandos.
HELP ALLOCATE
HELP ALLOCATE SYNTAX
É o primeiro recurso a utilizar quando houver dúvida sobre a sintaxe aceita pelo ambiente.
LISTCAT — consultar entradas do catálogo
Lista informações catalogadas sobre datasets. O comando TSO/E LISTCAT utiliza o Access Method Services.
LISTCAT ENTRY('USER01.COBOL.FONTE') ALL
LISTCAT LEVEL('USER01')
Use ENTRY quando souber o nome exato e LEVEL para consultar um conjunto de entradas relacionado a um prefixo.
LISTDS — exibir informações de um dataset
Mostra atributos de um ou mais datasets.
LISTDS 'USER01.COBOL.FONTE'
LISTDS 'USER01.COBOL.FONTE' MEMBERS
O operando MEMBERS permite listar membros de uma biblioteca particionada quando aplicável.
LISTALC — consultar alocações da sessão
Exibe os datasets atualmente alocados à sessão TSO.
LISTALC
LISTALC STATUS
É especialmente útil para descobrir conflitos de alocação e conferir os DD names disponíveis.
ALLOCATE — alocar ou criar um dataset
Associa um dataset a um nome lógico e também pode criar datasets.
Alocação de um dataset existente:
ALLOCATE FILE(MYFILE) DATASET('USER01.DADOS.ENTRADA') SHR
Exemplo didático de criação de um dataset sequencial:
ALLOCATE DATASET('USER01.DADOS.NOVO') NEW CATALOG +
SPACE(5,2) TRACKS RECFM(F B) LRECL(80) BLKSIZE(0)
Os atributos devem ser definidos conforme o padrão de SMS e as regras da instalação. Em ambientes gerenciados por SMS, parâmetros como classe de armazenamento podem ser determinados automaticamente.
FREE — liberar uma alocação
Libera um dataset ou DD name previamente alocado.
FREE FILE(MYFILE)
FREE DATASET('USER01.DADOS.ENTRADA')
RENAME — renomear dataset
Altera o nome de um dataset catalogado.
RENAME 'USER01.DADOS.TESTE' 'USER01.DADOS.BACKUP'
O dataset não pode estar em uso de maneira incompatível, e o usuário precisa ter as autorizações necessárias.
DELETE — excluir dataset
Exclui um dataset.
DELETE 'USER01.DADOS.BACKUP'
Confirme cuidadosamente o nome antes da execução. Em ambientes corporativos, exclusões podem ser restringidas por segurança, retenção ou políticas de catálogo.
EXEC — executar CLIST ou REXX
Executa um procedimento CLIST ou um programa REXX.
EXEC 'USER01.REXX(MEUPROC)'
EXEC 'USER01.REXX(MEUPROC)' EXEC
O segundo formato ajuda a indicar explicitamente a execução de um REXX quando necessário.
PROFILE — consultar ou alterar o perfil TSO
Exibe ou modifica características da sessão do usuário.
PROFILE
PROFILE PREFIX(USER01)
PROFILE NOPREFIX
O prefixo influencia a qualificação automática de nomes de datasets.
SEND — enviar mensagem
Envia uma mensagem para outro usuário ou para o operador, conforme as permissões e a configuração local.
SEND 'PROCESSAMENTO CONCLUIDO' USER(USER02)
TRANSMIT e RECEIVE — transmitir e receber dados
TRANSMIT, frequentemente abreviado como XMIT, envia datasets ou mensagens por uma rede compatível. RECEIVE processa o material recebido.
TRANSMIT SISTEMA.USER02 DATASET('USER01.COBOL.FONTE')
RECEIVE
Esse recurso depende da infraestrutura e das políticas da instalação.
2. Comandos TSO para jobs
SUBMIT — submeter JCL
Envia um dataset ou membro contendo JCL para processamento em batch.
SUBMIT 'USER01.JCL(MEUJOB)'
No editor ISPF, SUBMIT ou SUB normalmente submete o conteúdo que está sendo editado.
STATUS — consultar o estado do job
Consulta a situação de jobs submetidos pelo usuário.
STATUS
STATUS JOB12345
OUTPUT — acessar saída do job
Permite recuperar ou tratar saída de jobs conforme os operandos informados e a configuração do ambiente.
OUTPUT JOB12345
Na prática corporativa, o SDSF costuma oferecer uma interface mais conveniente para examinar spool e resultados.
CANCEL — cancelar job
Solicita o cancelamento de um job autorizado.
CANCEL JOB12345
O cancelamento pode interromper processamento e gerar inconsistências funcionais. Antes de utilizá-lo, confirme o job, a etapa em execução e o procedimento operacional da empresa.
3. Comandos gerais do ISPF
| Comando | Finalidade | Exemplo ou observação |
END |
Encerra a função atual e retorna ao painel anterior | Frequentemente associado à PF3 |
RETURN |
Retorna diretamente a um menu principal definido pela aplicação | Pode encerrar uma sequência de painéis |
CANCEL |
Cancela a operação atual | Em edição, pode descartar mudanças mediante confirmação |
SWAP |
Alterna entre telas lógicas | SWAP, SWAP LIST ou seleção indicada pelo painel |
SPLIT |
Divide a tela e inicia outra tela lógica | Frequentemente associado à PF2 |
START |
Inicia uma nova tela lógica | Pode aceitar painel ou comando conforme o contexto |
SETTINGS |
Abre as configurações do ISPF | Disponibilidade depende da aplicação/painel |
KEYS |
Exibe ou altera definições das teclas de função | Útil para conferir PF1 a PF24 |
PFSHOW |
Mostra ou oculta as funções associadas às teclas | PFSHOW ON, PFSHOW OFF |
PANELID |
Mostra ou oculta o identificador do painel | PANELID ON, PANELID OFF |
RETRIEVE |
Recupera comandos digitados anteriormente | Normalmente associado à PF12 |
TSO |
Executa um comando TSO sem sair do painel | TSO LISTALC STATUS |
UP |
Rola o conteúdo para cima | Quantidade depende do campo Scroll |
DOWN |
Rola o conteúdo para baixo | Frequentemente PF8 |
LEFT |
Rola horizontalmente para a esquerda | Frequentemente PF10 |
RIGHT |
Rola horizontalmente para a direita | Frequentemente PF11 |
As associações de teclas podem ser alteradas pelo usuário ou pela instalação. Por isso, a ação mostrada na barra de PF keys é mais confiável do que decorar uma configuração presumida.
4. Comandos primários do editor ISPF
Comandos primários são digitados no campo Command ===> e normalmente afetam o conteúdo ou o estado completo da sessão de edição.
FIND — localizar texto
FIND 'CLIENTE'
F 'CLIENTE' ALL
F 'CLIENTE' 20 40 ALL
O último exemplo restringe a busca às colunas informadas. Outros qualificadores podem ser utilizados conforme o objetivo e a sintaxe da versão instalada.
CHANGE — substituir texto
CHANGE 'CLIENTE' 'USUARIO'
C 'CLIENTE' 'USUARIO' ALL
C 'CLIENTE' 'USUARIO' 20 40 ALL
Sem ALL, a alteração normalmente ocorre por ocorrência conforme a execução repetida do comando.
EXCLUDE — ocultar linhas da visualização
EXCLUDE 'COMENTARIO' ALL
X 'COMENTARIO' ALL
As linhas continuam no conteúdo; apenas ficam excluídas da visualização. Use RESET para reexibi-las.
RESET — restaurar a visualização
RESET
RESET EXCLUDED
Remove estados de visualização e marcadores conforme o operando utilizado.
LOCATE — posicionar em uma linha
LOCATE 500
L 500
SORT — ordenar linhas
SORT 1 10 A
SORT 20 30 D
Ordenações alteram a sequência das linhas. Use com atenção em programas, JCLs e arquivos cuja ordem tenha significado.
COPY e MOVE — inserir dados de outro membro ou dataset
COPY OUTROMEM
MOVE OUTROMEM
Após informar o comando, o editor pode solicitar uma linha de destino com A ou B. O comportamento exato depende da origem, do perfil e dos painéis apresentados.
CREATE e REPLACE — gravar linhas em outro destino
CREATE NOVOMEM
REPLACE NOVOMEM
CREATE cria o destino; REPLACE substitui um destino existente. Normalmente, utiliza-se CC para delimitar previamente um bloco específico.
SAVE, END e CANCEL
SAVE
END
CANCEL
- SAVE grava as mudanças e mantém a sessão.
- END normalmente grava e encerra a edição.
- CANCEL encerra sem salvar as alterações, sujeito ao perfil e às confirmações configuradas.
SUBMIT — submeter o conteúdo editado
SUBMIT
SUB
É comum utilizá-lo ao editar um membro de JCL. Após a submissão, anote o job ID retornado.
HEX — visualizar representação hexadecimal
HEX ON
HEX OFF
Ajuda a identificar caracteres não imprimíveis, problemas de codificação e conteúdo inválido.
CAPS — controlar conversão para maiúsculas
CAPS ON
CAPS OFF
O efeito pode depender do perfil do editor e do tipo de dado.
NUMBER — controlar numeração
NUMBER ON
NUMBER OFF
Em fontes COBOL de formato fixo, é essencial considerar as áreas de sequência, indicador, código e identificação.
COLS, BOUNDS e TABS
COLS
BOUNDS
TABS
Esses recursos auxiliam o trabalho com posições de coluna, limites de edição e tabulação. Também existem comandos de linha relacionados, como COLS e BNDS.
5. Comandos de linha do editor
Comandos de linha são digitados sobre a área de numeração de uma linha. Podem afetar uma única linha, uma quantidade informada ou um bloco delimitado.
| Comando | Finalidade | Exemplo |
I |
Inserir uma linha | I |
In |
Inserir várias linhas | I5 |
D |
Excluir uma linha | D |
Dn |
Excluir várias linhas | D5 |
DD...DD |
Delimitar bloco para exclusão | Marcar início e fim |
R |
Repetir uma linha | R |
Rn |
Repetir uma linha várias vezes | R5 |
RR...RR |
Delimitar bloco para repetição | Marcar início e fim |
C |
Copiar uma linha | Combinar com A (After), B(Before) ou O(Overlay) |
CC...CC |
Delimitar bloco para cópia | Marcar início e fim |
M |
Mover uma linha | Combinar com A (After), B(Before) ou O(Overlay) |
MM...MM |
Delimitar bloco para movimentação | Marcar início e fim |
A |
Destino depois da linha | After |
B |
Destino antes da linha | Before |
O |
Sobrepor linha de destino | Overlay |
OO...OO |
Delimitar bloco de sobreposição | Usado com cópia ou movimentação |
X |
Excluir linha da visualização | Não apaga o conteúdo |
XX...XX |
Excluir bloco da visualização | Delimita início e fim |
S |
Mostrar/selecionar linha ou membro | Significado depende do painel |
UC |
Converter texto para maiúsculas | Pode aceitar bloco ou quantidade |
LC |
Converter texto para minúsculas | Pode aceitar bloco ou quantidade |
TE |
Text Entry | Auxilia a entrada de texto corrido |
TS |
Text Split | Divide texto conforme os limites |
TF |
Text Flow | Reorganiza o fluxo do texto |
COLS |
Exibir régua de colunas | Linha informativa temporária |
BNDS |
Exibir ou definir limites | Linha de limites do editor |
MASK |
Exibir ou definir máscara de inserção | Útil para estruturas repetitivas |
6. Exemplos práticos
Localizar todas as chamadas de um programa
FIND 'CALL' ALL
Para restringir a busca à área de código de um fonte COBOL de formato fixo:
FIND 'CALL' 8 72 ALL
Alterar um nome apenas na área de código
CHANGE 'WS-CLIENTE' 'WS-CORRENTISTA' 8 72 ALL
Revise as ocorrências antes de salvar, principalmente quando o texto puder aparecer em comentários ou literais.
Copiar um bloco de linhas
- Digite
CCna primeira linha do bloco. - Digite
CCna última linha. - Digite
Apara inserir depois de uma linha, ouBpara inserir antes. - Pressione Enter.
Mover um bloco
- Marque o início e o fim com
MM. - Informe
AouBna linha de destino. - Pressione Enter.
Submeter um JCL e consultar o resultado
- Abra o membro em Edit ou View, conforme permitido.
- Digite
SUBMITna linha de comando. - Anote o job ID retornado.
- Consulte o job no SDSF ou utilize
STATUSquando aplicável. - Verifique o return code de cada step e as mensagens do JES.
7. Boas práticas
- Consulte
HELP nome-do-comandoantes de utilizar operandos desconhecidos. - Confirme o dataset completo antes de executar
DELETE,RENAMEouFREE. - Em alterações globais, use
FIND ... ALLantes deCHANGE ... ALL. - Restrinja
FINDeCHANGEàs colunas relevantes em fontes de formato fixo. - Confira as PF keys exibidas pelo ambiente; elas podem ter sido redefinidas.
- Antes de cancelar um job, identifique seu estado, etapa e impacto funcional.
- Trate comandos e menus customizados como particularidades da instalação.
- Em produção, siga os procedimentos de segurança e gestão de mudanças da empresa.
8. O que vem a seguir
Este artigo apresenta a base do TSO e do ISPF. O Guia de Comandos Mainframe do COBOL Dicas será complementado por páginas específicas sobre:
- editor ISPF em profundidade;
- datasets, PDS, PDSE e membros;
- utilitários ISPF 3.x;
- SDSF e análise de jobs;
- ChangeMan ZMF e ciclo de implantação.
Conclusão
TSO e ISPF podem parecer ambientes antigos para quem está chegando, mas continuam oferecendo uma forma rápida, estável e produtiva de trabalhar no z/OS. O verdadeiro ganho acontece quando o profissional deixa de decorar caminhos e passa a compreender o objetivo de cada comando.
Conhecer COBOL é fundamental. Saber utilizar bem o ambiente em que o COBOL vive é o que transforma conhecimento da linguagem em produtividade no mainframe.
