Translate

quinta-feira, 7 de agosto de 2025

Conheça os diversos tipos de variáveis COBOL

 

Conheça os diversos tipos de variáveis COBOL

4,424 followers

Salve jovem padawan, no artigo de hoje, apresento um programa COBOL explorando os diversos tipos de variáveis, gerando como saída, um arquivo de 143 bytes ilustrando como é o armazenamento e o formato dos dados.

Aproveito e apresento alguns comandos COBOL com diversas parametrizações, onde poderemos explorar e entender na prática seu funcionamento.

O programa foi dividido em Sections e Parágrafos, ajudando a conhecer técnicas de laço e salto de parágrafo.

PROGRAMA COBOL117

 *****************************************************************
      * DATA     : 29/08/2024
      * AUTOR    : VAGNER RENATO BELLACOSA
      * OBJETIVO : PROGRAMA EXEMPLO ARQUIVO QSAM LOOP
      * CPD      : INEFE
      *****************************************************************
       IDENTIFICATION DIVISION.
      *************************
       PROGRAM-ID. COBOL117.
       AUTHOR. VAGNER BELLACOSA.
       DATE-WRITTEN. 29/08/24 @ 21:18:00.
       DATE-COMPILED. 2024-08-29.

      **********************
       ENVIRONMENT DIVISION.
      **********************
      *
       CONFIGURATION SECTION.
      *
       SOURCE-COMPUTER. IBM-I.
       OBJECT-COMPUTER. IBM-I.
       SPECIAL-NAMES. DECIMAL-POINT IS COMMA.
      *
       INPUT-OUTPUT SECTION.
      *
       FILE-CONTROL.
           SELECT OUTPTFL    ASSIGN TO OUTPTFL
           ORGANIZATION IS SEQUENTIAL
           ACCESS MODE IS SEQUENTIAL
           FILE STATUS IS FS-STATUS.

      ***************
       DATA DIVISION.
      ***************
      *
       FILE SECTION.
      *
       FD OUTPTFL
           RECORD CONTAINS 145 CHARACTERS
           LABEL RECORDS ARE STANDARD
           RECORDING MODE IS F
           DATA RECORD IS REG-DADOS.
      *
       COPY COPY117A.
      *
      *
       WORKING-STORAGE SECTION.
      *
      *
       01  WSS-VARIAVEL-AUX.
          05  WSS-EOF            PIC A(01).
          05  FS-STATUS          PIC 99.
      *
       77 WSS-RANDOM-NUMBER1   PIC 999 VALUE ZEROES.
       77 WSS-RANDOM-NUMBER2   PIC 999 VALUE ZEROES.
       77 WSS-REG-GRAVADOS     PIC 999 VALUE ZEROES.
       77 WSS-CICLO            PIC 99  VALUE 15.
       77 WSS-DATA-COMPIL      PIC X(16).
      *
      ****************************************************************
      **  DECLARATIONS FOR THE LOCAL DATE/TIME FOR DISPLAY
      ****************************************************************
       01  WSS-CAMPOS-AUXILIARES.
           05 WSS-YYYYMMDD          PIC  9(008).
           05 WSS-YYMMDD            PIC  9(006).
           05 WSS-HHMMSS            PIC  9(006).
           05 WSS-HHMMSSCC          PIC  9(008).
           05 WSS-DIA-SEMANA        PIC  9(001).
           05 WSS-ANO-DIA           PIC  9(005).
           05 WSS-DAY-YYYYDDD       PIC  9(007).
           05 WSS-DAY-001           PIC  S9(009).
           05 WSS-INTEGER-FORM      PIC  S9(9) SIGN LEADING SEPARATE.
           05 WSS-INT-DATE          PIC  9(8) VALUE ZERO.
           05 WSS-DATE-TODAY        PIC  9(7) VALUE ZERO.
           05 WSS-DUE-DATE          PIC  9(7) VALUE ZERO.

      ********************
       PROCEDURE DIVISION.
      ********************

       001-INICIALIZAR          SECTION.

           PERFORM ROT-LISTA-INFO
              THRU ROT-LISTA-INFO-EXIT.

           PERFORM ROT-OPEN-FILE
              THRU ROT-OPEN-FILE-EXIT.

           PERFORM ROT-INITIALIZE-VAR
              THRU ROT-INITIALIZE-VAR-EXIT.

       002-WORKFILE             SECTION.

           PERFORM ROT-FORMATA-OUTPUT
              THRU ROT-FORMATA-OUTPUT-EXIT WSS-CICLO TIMES.

       003-PROCEDIMENTOS-FINAIS SECTION.

           PERFORM ROT-CLOSE-FILE
              THRU ROT-CLOSE-FILE-EXIT.

           PERFORM ROT-ESTATISTICA
              THRU ROT-ESTATISTICA-EXIT.

           STOP RUN.

      * SEçãO DE CODIGOS AUXILIARES
       004-PARAGRAFOS            SECTION.

      * INICIALIZA VARIAVEIS
       ROT-INITIALIZE-VAR.

      **** MOVE ZEROES TO REG-DADOS

           INITIALIZE REG-DADOS
              REPLACING ALPHANUMERIC BY   SPACES
                        NUMERIC      BY   ZEROES.

       ROT-INITIALIZE-VAR-EXIT.
           EXIT.

      * LISTA CABECALHO DO PROGRAMA
       ROT-LISTA-INFO.

           DISPLAY ' '.
           DISPLAY '*****************************************'.
           DISPLAY '*            COBOL117                   *'.
           DISPLAY '*****************************************'.
           DISPLAY '*                                       *'.
           DISPLAY '* EXEMPLO DE OPEN WRITE CLOSE QSAM FILE *'.
           DISPLAY '*  USO DE COPY BOOK PARA LAYOUT ARQUIVO *'.
           DISPLAY '*  GRAVACAO ALFABETICA ALFANUMERICA     *'.
           DISPLAY '*  COMP1 COMP2 COMP3 COMP4 COMP5        *'.
           DISPLAY '*  USO DE FUNçãO INTRINSECA             *'.
           DISPLAY '*  INITIALIZE 3 MODOS                   *'.
           DISPLAY '*  SECTIONS E PARAGRAFOS                *'.
           DISPLAY '*  TAMANHO DO REGISTRO '
                               LENGTH OF REG-DADOS ' BYTES  *'.
           DISPLAY '*  WSS-CICLO = ' WSS-CICLO
                   '      LOOP DE GRAVACAO *'
           DISPLAY '*****************************************'.
           DISPLAY ' '.

           PERFORM ROT-GET-DATA
              THRU ROT-GET-DATA-EXIT.

           DISPLAY '* WSS-DATA-COMPIL = ' WSS-DATA-COMPIL
                          '          *'.
           DISPLAY ' '.

       ROT-LISTA-INFO-EXIT.
           EXIT.

      * FUNCOES INTRINSECAS OBTEM DADOS DO SISTEMA
       ROT-GET-DATA.

      * OBTEM A DATA DA COMPILACAO
           MOVE FUNCTION WHEN-COMPILED  TO WSS-DATA-COMPIL

      * BUSCA DATA VIA CURRENT-DATE

           MOVE FUNCTION CURRENT-DATE(1:8) TO WSS-YYYYMMDD

           DISPLAY ' WSS-YYYYMMDD    = ' WSS-YYYYMMDD

      * CALCULA DIA VIA INTEGER-OF-DATE

           COMPUTE WSS-YYYYMMDD    = FUNCTION INTEGER-OF-DATE
                                     (WSS-YYYYMMDD)
                                     + 15.
           DISPLAY ' WSS-YYYYMMDD    = ' WSS-YYYYMMDD
           DISPLAY 'NOVA DATA: ' WSS-DAY-YYYYDDD

      * ACCEPT

           ACCEPT WSS-DAY-YYYYDDD FROM DAY YYYYDDD.
           ACCEPT WSS-YYYYMMDD    FROM DATE YYYYMMDD.
           ACCEPT WSS-YYMMDD      FROM DATE.
           ACCEPT WSS-HHMMSS      FROM TIME.
           ACCEPT WSS-HHMMSSCC    FROM TIME.
           ACCEPT WSS-DIA-SEMANA  FROM DAY-OF-WEEK.
           ACCEPT WSS-ANO-DIA     FROM DAY.

       ROT-GET-DATA-EXIT.
           EXIT.

      * ABERTURA DE ARQUIVO QSAM
       ROT-OPEN-FILE.

           DISPLAY 'ROT-OPEN-FILE'.

           OPEN OUTPUT OUTPTFL.

           IF FS-STATUS > 0
              DISPLAY 'ERRO NA ABERTURA DO ARQUIVO OUTPTFL '
              DISPLAY 'FS-STATUS : ' FS-STATUS
              MOVE FS-STATUS    TO  RETURN-CODE
              PERFORM ROT-ABEND
           END-IF.

       ROT-OPEN-FILE-EXIT.
           EXIT.

      * FORMATA REGISTRO DE SAIDA
       ROT-FORMATA-OUTPUT.

           DISPLAY 'ROT-FORMATA-OUTPUT'.

           PERFORM ROT-INITIALIZE-VAR
              THRU ROT-INITIALIZE-VAR-EXIT.

           MOVE  'WILSON LUPINO'   TO   REG-NOME.
           MOVE  '2014-05-11'      TO   REG-DATA-NASC.
           MOVE  WSS-REG-GRAVADOS  TO   REG-ORDEM.
           MOVE  'RUA A NO 15'     TO   REG-ENDERECO
           MOVE  'TAUBATE'         TO   REG-CIDADE
           MOVE  'SP'              TO   REG-ESTADO
           MOVE  '18000-100'       TO   REG-CEP
           MOVE   123              TO   REG-COMP1-4
           MOVE   123456           TO   REG-COMP2-8
           MOVE  -123456           TO   REG-COMP3-5
           MOVE   199998           TO   REG-COMP3-5A
           MOVE  -789012           TO   REG-COMP3-6
           MOVE  1000              TO   REG-COMP4-2
           MOVE  2000000           TO   REG-COMP4-4
           MOVE  3000000000        TO   REG-COMP4-8
           MOVE  -1000             TO   REG-COMP5-2
           MOVE  -2000000          TO   REG-COMP5-4
           MOVE  -3000000000       TO   REG-COMP5-8
           MOVE  'FIM'             TO   REG-TEXTO5C

           PERFORM ROT-ALEATORIA
              THRU ROT-ALEATORIA-EXIT.

           MOVE WSS-RANDOM-NUMBER1 TO   REG-ANO-DIA.
           MOVE WSS-RANDOM-NUMBER2 TO   REG-ANO-MES.

           DISPLAY ' REG-DADOS     : ' REG-DADOS ' '
                     LENGTH OF REG-DADOS ' BYTES '.
           DISPLAY ' REG-NOME      : ' REG-NOME.
           DISPLAY ' REG-DATA-NASC : ' REG-DATA-NASC.
           DISPLAY ' WSS-CICLO     : ' WSS-CICLO.

           PERFORM ROT-WRITE-FILE
              THRU ROT-WRITE-FILE-EXIT

      ***** 4 LINHAS ADICIONAIS

           IF WSS-REG-GRAVADOS = 15
      * GRAVA LOW-VALUES NO ARQUIVO
             MOVE LOW-VALUES       TO REG-DADOS
             PERFORM ROT-WRITE-FILE
                THRU ROT-WRITE-FILE-EXIT
      * GRAVA HIGH-VALUES NO ARQUIVO
             MOVE HIGH-VALUES      TO REG-DADOS
             PERFORM ROT-WRITE-FILE
                THRU ROT-WRITE-FILE-EXIT
      * INICIALIZA ESTRUTURA DO ARQUIVO COM 9 E X
             INITIALIZE REG-DADOS
                REPLACING ALPHANUMERIC DATA BY 'X'
                          NUMERIC      DATA BY 9
             PERFORM ROT-WRITE-FILE
                THRU ROT-WRITE-FILE-EXIT
      * INICIALIZA ESTRUTURA
             INITIALIZE REG-DADOS
             PERFORM ROT-WRITE-FILE
                THRU ROT-WRITE-FILE-EXIT
           END-IF.

       ROT-FORMATA-OUTPUT-EXIT.
           EXIT.

      * GRAVA REGISTRO DE SAIDA
       ROT-WRITE-FILE.

           WRITE REG-DADOS
           END-WRITE.

           IF FS-STATUS > 0
              DISPLAY 'ERRO NA GRAVACAO DO ARQUIVO OUTPTFL '
              DISPLAY 'FS-STATUS : ' FS-STATUS
              MOVE FS-STATUS    TO  RETURN-CODE
              PERFORM ROT-ABEND
           END-IF.

           ADD  01                 TO   WSS-REG-GRAVADOS.

       ROT-WRITE-FILE-EXIT.
           EXIT.

      * FECHA ARQUIVO QSAM
       ROT-CLOSE-FILE.

           DISPLAY 'ROT-CLOSE-FILE'.

           CLOSE OUTPTFL.

           IF FS-STATUS > 0
              DISPLAY 'ERRO NO FECHAMENTO DO ARQUIVO OUTPTFL '
              DISPLAY 'FS-STATUS : ' FS-STATUS
              MOVE FS-STATUS    TO  RETURN-CODE
              PERFORM ROT-ABEND
           END-IF.

       ROT-CLOSE-FILE-EXIT.
           EXIT.

      * LISTA AS ESTATISTICAS DO PROCESSAMENTO
       ROT-ESTATISTICA.

           ACCEPT WSS-HHMMSSCC    FROM TIME.

           DISPLAY ' '.
           DISPLAY '*******************************************'.
           DISPLAY '*** PROGRAMA COBOL117                   ***'.
           DISPLAY '*******************************************'.
           DISPLAY '*** DATA DO PROCESSAMENTO : '
                    WSS-YYYYMMDD  '   ***'.
           DISPLAY '*** HORA DO PROCESSAMENTO : '
                    WSS-HHMMSSCC  '   ***'.
           DISPLAY '*******************************************'.
           DISPLAY '*                                         *'.
           DISPLAY '* TERMINO DE PROCESSAMENTO OK             *'.
           DISPLAY '*                                         *'.
           DISPLAY '* REGISTRO GRAVADOS : ' WSS-REG-GRAVADOS
                   '                *'.
           DISPLAY '*                                         *'.
           DISPLAY '*******************************************'.

       ROT-ESTATISTICA-EXIT.
           EXIT.

      * SAIDA CONTROLADA - ABEND NO PROCESSAMENTO
       ROT-ABEND.

           ACCEPT WSS-HHMMSSCC    FROM TIME.

           DISPLAY '*******************************************'.
           DISPLAY '*** PROGRAMA COBOL117                   ***'.
           DISPLAY '*******************************************'.
           DISPLAY '*** DATA DO PROCESSAMENTO : '
                    WSS-YYYYMMDD  '  ***'.
           DISPLAY '*** HORA DO PROCESSAMENTO : '
                    WSS-HHMMSSCC  '  **'.
           DISPLAY '*******************************************'.
           DISPLAY ' ABEND PROGRAMADO '.
           DISPLAY ' ERRO ENCONTRADO : '  RETURN-CODE.
           DISPLAY ' FAVOR AVISAR O ANALISTA RESPONSAVEL'.
           DISPLAY '*******************************************'.
      **** CALL ABEND.
           STOP RUN.

       ROT-ABEND-EXIT.
           EXIT.

      * GERADOR DE NUMERO ALEATORIO
       ROT-ALEATORIA.

           COMPUTE WSS-RANDOM-NUMBER1 = FUNCTION RANDOM * 31.
           COMPUTE WSS-RANDOM-NUMBER2 = FUNCTION RANDOM * 12.
           DISPLAY ' '.
           DISPLAY ' 1 --> ' WSS-RANDOM-NUMBER1
                   ' 2 --> ' WSS-RANDOM-NUMBER2
           DISPLAY ' '.

       ROT-ALEATORIA-EXIT.
           EXIT.

       END PROGRAM COBOL117.
      ********************** FIM PROGRAMA   **************************** 

Código Comentado por Section

Este programa foi dividido em 4 seções, o código usou da Logica Estruturado preparado para receber novos parágrafos e funcionalidades com o menor impacto no código legado.

001-INICIALIZAR SECTION.

Nesta seção o programa lista a info da abertura do programa, abre arquivo output e inicializa as variaveis.

002-WORKFILE SECTION.

Nesta seção trataremos da formatação das variáveis e procedimento de gravação dos registros.

003-PROCEDIMENTOS-FINAIS SECTION.

Nesta seção trataremos dos procedimentos finais, fechando arquivo e listando a estatistica do processamento

004-PARAGRAFOS SECTION.

Seção auxiliar que armazena as diversas sub-rotinas do programa. Objetivando facilitar a manutenção das mesmas.


COPY

É um arquivo de definição das variáveis publico, destinado a compartilhar entre diversos programas a mesma estrutura. Em um COPY book inclui o Grupo de Dados estruturado e separados por níveis de 1 até 10.

Exemplificamos os três tipos de variável COBOL. Alfabética, Alfanumérica e Numérico, expandindo para os tipos Computacional de 1 a 5.

************************************************************************************
*******  ESTE COPY BOOK CONTEM COMANDOS DA DATA DIVISION                       ***
*******                                    WORKING-STORAGE SECTION.                                    ***
*******  EM TEMPO DE COMPILACAO ESTE BLOCO DE CODIGO SERA INSERIDO NO***
*******  PROGRAMA, PODENDO SER REUTILIZADO POR N PROGRAMAS, DEVENDO**  ***
*******  ESTAR NA LIBRARY DEFINIDA PARA OS COPIES.                   ***
************************************************************************
      *
      * DATA GROUP ITEM
       01 REG-DADOS.
      *
      *  VARIABLE NUMERIC       -> PIC 9
         05 REG-ORDEM                  PIC 999.
      *  VARIABLE ALPHABETIC   -> PIC A
         05 REG-NOME                    PIC A(20).
      *  VARIABLE ALPHANUMERIC -> PIC X
         05 REG-DATA-NASC            PIC X(10).
      *  REDEFINES ITEM
         05 FILLER       REDEFINES  REG-DATA-NASC.
           10 REG-ANO-NASC           PIC 9(04).
           10 FILLER                            PIC X.
           10 REG-ANO-MES              PIC 9(02).
           10 FILLER                            PIC X.
           10 REG-ANO-DIA               PIC 9(02).
         05 REG-ENDERECO              PIC X(20).
         05 REG-CIDADE                   PIC X(10).
         05 REG-ESTADO                  PIC XX.
         05 REG-CEP                         PIC X(09).
         05 FILLER       REDEFINES  REG-CEP.
           10 REG-CEP-INT                PIC 9(05).
           10 FILLER                           PIC X.
           10 REG-CEP-COMP           PIC 9(03).
      * COMPUTACIONAL  1
         05 REG-COMP1-4            USAGE IS COMP-1.
         05 REG-TEXTO1                  PIC X(01).
      * COMPUTACIONAL  2
         05 REG-COMP2-8            USAGE IS COMP-2.
         05 REG-TEXTO2                  PIC X(01).
      * COMPUTACIONAL  3
         05 REG-COMP3-5               PIC S9(10) COMP-3.
         05 REG-TEXTO3A                PIC X(01).
         05 REG-COMP3-5A             PIC  9(10) COMP-3.
         05 REG-TEXTO3B                PIC X(01).
         05 REG-COMP3-6               PIC S9(11) COMP-3.
         05 REG-TEXTO3C                PIC X(01).
      * COMPUTACIONAL  4
         05 REG-COMP4-2               PIC S9(4)  COMP-4.
         05 REG-TEXTO4A                PIC X(01).
         05 REG-COMP4-4               PIC S9(9)  COMP-4.
         05 REG-TEXTO4B                PIC X(01).
         05 REG-COMP4-8               PIC S9(18) COMP-4.
         05 REG-TEXTO4C                PIC X(01).
      * COMPUTACIONAL  5
         05 REG-COMP5-2               PIC S9(4)  COMP-5.
         05 REG-TEXTO5A                PIC X(01).
         05 REG-COMP5-4               PIC S9(9)  COMP-5.
         05 REG-TEXTO5B                PIC X(01).
         05 REG-COMP5-8               PIC S9(18) COMP-5.
      *
         05 REG-TEXTO5C                PIC X(03).
**************************** FIM DO COPYBOOK *************************** 

JCL - JOB CONTROL LANGUAGE

Para o teste, após compilarmos o programa num compilador igual ou maior que a versão 4, o ideal é a versão 6.3. Segue o JCL em dois steps.

//EXECPGM1   JOB ('00'),TSO.&SYSUID,                           
//          REGION=0M,NOTIFY=&SYSUID,LINES=(17000,CANCEL),
//          MSGCLASS=T,MSGLEVEL=1,CLASS=A
//**********************************************************************
//*            TESTE PARA CRIACãO DE ARQUIVO
//*            GERAR UM ARQUIVO COM 143 BYTES
//**********************************************************************
//JOBLIB  DD DSN=KC02745.LIB.CBLPDSE,DISP=SHR
//**********************************************************************
//* STEP TO DELETE A DATASET
//**********************************************************************
//STEP001  EXEC PGM=IEFBR14
//DD1      DD DSN=KC02745.OUTPTFL.EXEWRITE.D0117,
//         DISP=(OLD,DELETE,DELETE)
//**********************************************************************
//* PROGRAMA QUE GERA ARQUIVO DE SAIDA COM EXEMPLO DE COMPUTACIONAL
//**********************************************************************
//STEP002  EXEC PGM=COBOL117
//*    ARQUIVO DE SAIDA                                                   *\\
//OUTPTFL DD DSN=KC02745.OUTPTFL.EXEWRITE.D0117,
//             DISP=(NEW,CATLG,DELETE),
//             SPACE=(TRK,(1,1),RLSE),UNIT=SYSDA,
//             DCB=(LRECL=145,RECFM=FB,BLKSIZE=0)
//SYSTSPRT DD  SYSOUT=*
//SYSPRINT DD  SYSOUT=*
//CEEDUMP  DD  SYSOUT=*
//SYSUDUMP DD  SYSOUT=*
//SYSOUT   DD  SYSOUT=*
//REPORT   DD  SYSOUT=*
//SYSABOUT DD  SYSOUT=*
//SYSDBOUT DD  SYSOUT=*
/*
//****************************** FIM DO JCL **************************** 

//STEP001 EXEC PGM=IEFBR14

Este aplicativo da IBM permite apagar o Dataset.

//STEP002 EXEC PGM=COBOL117

Executa o programa e grava arquivo de saída com 145 bytes.

Output

Resultado com as estatísticas de execução.

SDSF

Exobe a Sysout do processamento, lembrando que um JOB é enviado ao JES2. onde passa por 3 filas de workflow, senda a primeira de validação , a segunda de execução e a terceira de impressão.

Article content
Article content

O Resultado será do processamento irá criar um Dataset QSAM Fixo Blocado com 145 bytes de cumprimento por registro e ao final será gravado 19 linhas.

Info do DATASET

Article content

Registros EBCDIC convertidos no Emulador para ASCII

O arquivo no formato EBCDIC:


Article content
Article content

Formato HEX

Usando comando de linha Hexadecimal o arquivo mostrará os registros no formato EBCDIC divididos em Alto e Baixo do octeto de bits.


Article content

Neste print exemplifico os registros de 15 até 19 no formato hexadecimal.

Conheça os diversos formatos


  1. Low-Values
  2. High-Values
  3. Initialize de X a 9
  4. Initialize de espaços e zero


Computacional de 1 a 5


Article content

Exemplo de uso das variáveis computacional e seu uso em bytes na geração de arquivo.


Espero ter ajudado e qualquer duvida entre em contato.




quarta-feira, 6 de agosto de 2025

🧠 Comandos TSO/ISPF - Modo Edit/View

 

🧠 Comandos TSO/ISPF - Modo Edit/View

4,424 followers

Salve jovem padawan em complemento ao nosso curso do ISPF e Z/OS, listo abaixo uma pequena listagem com os comandos de linha, mais comuns no TSO ISPF, esses comando ajudam na produtividade, configurando a IDE para melhorar a apresentação, editar entre outras coisas.

Coloquei os comandos que repasso aos meus alunos no curso, com certeza faltam alguns outros, que esqueci ou desconheço. Agradeço toda contribuição para enriquecer ainda mais esta lista.

COMANDOS TSO ISPF

AUTOSAVE ON/OFF

Habilita ou desabilita o salvamento automático ao sair com F3. Com ON, as alterações são salvas automaticamente.

CAPS ON/OFF

Força a digitação em letras maiúsculas no editor ISPF, útil para padronizar código em COBOL, JCL, etc.

HEX ON/OFF

Exibe o conteúdo do arquivo no formato hexadecimal (EBCDIC + HEX), útil para análise de dados binários ou caracteres ocultos.

HLITE COBOL/JCL/SQL/OFF

Ativa realce de sintaxe no editor para a linguagem indicada. Torna o código mais legível com cores diferentes para palavras-chave.

NUMBER ON/OFF STD/COBOL

Ativa ou desativa a numeração de linhas. STD mostra números simples, COBOL usa colunas específicas (A, B, etc.).

AUTONUM ON/OFF

Liga ou desliga a numeração automática de linhas ao inserir. Útil para manter sequências numéricas válidas no código.

AUTOLIST ON/OFF

Ativa/desativa a exibição automática de membros ao navegar por bibliotecas (DSNs).

STATS ON/OFF

Ativa/desativa a gravação automática de estatísticas (última modificação, usuário, data/hora, etc.) em um membro.

VERSION xxx

Define o número de versão a ser incluído nos dados de estatísticas do membro (usado com STATS).

PROFILE

Exibe o perfil atual do editor ISPF, incluindo configurações como CAPS, NUMBER, HEX, etc.

START

Inicia uma nova sessão ou janela ISPF (como uma aba).

SPLIT

Divide a tela atual em duas janelas (vertical), útil para ver dois arquivos ou duas partes do mesmo.

SWAP

Alterna entre as janelas abertas (após START ou SPLIT).

SWAPLIST

Mostra uma lista de todas as sessões ISPF ativas.

SWAPBAR

Exibe ou esconde a barra inferior (linha 24) com as sessões abertas.

SCRNAME nome

Renomeia a janela ISPF atual. Muito útil ao trabalhar com múltiplas sessões.

RESET ou RES

Remove mensagens de erro, alertas ou marcações da tela. Faz uma “limpeza visual”.

SUB

Submete o job JCL em edição para o JES2 (spool), iniciando sua execução.

SAVE

Salva manualmente as alterações do arquivo em edição.

SRCHFOR texto

Pesquisa no membro atual (ou biblioteca, se SRCHFOR ALL) por uma string específica.

FIND texto (Complementar)

Localiza a primeira ocorrência de um texto no membro atual.

CHANGE old new (Complementar)

Substitui um texto por outro.

NULLS ON/OFF

Ativa ou desativa os “nulls” — regiões sem dados em branco. Quando ON, os espaços vazios são representados como nulls (sem preenchimento visível).

TABS ON/OFF

Habilita o uso de tabulação e define a posição dos tabs com TABS xx yy.

BOUNDS xx yy

Define os limites de edição no editor. Útil para evitar digitação fora das colunas permitidas (ex: 8 a 72 para COBOL).

UP

Rola uma página para cima no editor.

DOWN

Rola uma página para baixo no editor.

EXCLUDE ALL

Exclui todas as linhas da visualização (não apaga do membro).

RESET FIND

Remove marcações de pesquisa FIND anteriores.

TSO ISRDDN

Mostra as bibliotecas atribuídas dinamicamente via STEPLIB, ISPLLIB, etc. (muito útil).

TSO ISRFIND

Utilitário de busca de texto por datasets, bibliotecas e membros.

TSO SDSF

Acessa a interface do spool JES2 (para ver jobs, outputs, status, etc).

TSO 3.4

Lista datasets, um atalho direto para utilitários.

Espero ter ajudado e caso algum Jedi sinta falta de algum outro comando, me avise inbox ou nos comentários para deixarmos esta lista o mais completa possível.

Obrigado.


Article content

Mini-curso sobre TSO ISPF


Article content

Mini-curso sobre DATASET no TSO


Article content

Mini-curso sobre Z/OS Mainframe

💡 Extra pra enriquecer


No ISPF, os comandos se dividem em dois mundos poderosos:

  • Primary commands → atuam no dataset inteiro (ex: FIND, CHANGE, SORT)
  • Line commands → atuam linha a linha (ex: C, M, D, I)

E o detalhe ninja:
👉 O modo VIEW parece EDIT… mas é uma armadilha elegante — não salva nada