segunda-feira, agosto 10, 2026

Como Localizar uma Palavra em uma Biblioteca no TSO

Uma funcionalidade muito útil do TSO é a possibilidade de pesquisar uma determinada palavra ou expressão dentro de uma biblioteca. Esse recurso pode facilitar bastante o trabalho de quem atua diariamente no ambiente mainframe, principalmente quando precisamos localizar rapidamente onde determinada informação, comando, variável ou trecho de código está sendo utilizado. Em uma biblioteca no mainframe, normalmente temos diversos membros , e cada um deles pode conter programas, JCLs, procedimentos, parâmetros, configurações ou outras informações importantes para o ambiente. Quando precisamos descobrir em qual membro determinada palavra aparece, fazer essa pesquisa manualmente, abrindo um membro por vez, pode consumir bastante tempo. Imagine, por exemplo, que você tenha uma biblioteca com dezenas ou até centenas de membros e precise descobrir quais deles possuem uma determinada palavra. Em vez de abrir cada membro individualmente e utilizar a pesquisa dentro de cada arquivo, podemos utilizar os recursos disponíveis no TSO para realizar essa busca de forma muito mais rápida. Essa funcionalidade é especialmente interessante para tarefas de análise, manutenção e investigação, pois permite encontrar rapidamente todas as ocorrências de um determinado texto dentro dos membros de uma biblioteca. Neste post, vamos mostrar como realizar esse tipo de pesquisa no TSO, utilizando uma palavra como exemplo e verificando em quais membros da biblioteca ela está presente.

 L,S3(##CSA/PRL303                                                              
DSN:ADABAS.LIBRAR                                LIB:S3 VOL:PRL303 UNIT:1526    
SIZE(CYL): 46    PRIM.: 6     SEC.: 40    EXTENTS: 3   UTILIZATION: 38 %        
DCB: 6160/80/FB           DIR.BLKS: 180      USED: 124     MEMBERS: 750         
 ##CSA     A$SAVEFI  AAA501    AAFANAT2  AAFCUR20  AAFPU297  ADACM095  ADADBS14 
 @A1002    A$060     AABCSMFC  AAFANAVE  AAFCUR21  AAFPU299  ADACM096  ADADBS15 
 @A1003    A$080     AABSASM1  AAFARC99  AAFCUR22  AAFSA299  ADACM097  ADADBS2  
 @DDM1     A$210     AABSC104  AAFAU015  AAFNASML  AAFSEDUX  ADACM116  ADADBS3  
 @MANU001  A$240     AACCINIF  AAFAU038  AAFNDICA  AAFSNAT3  ADACM250  ADADBS9  
 @MANU002  A$241     AAFACUR2  AAFAU081  AAFNGBPM  AAFSNAT4  ADADBINC  ADADB01  
 @MANU003  AAASMFK   AAFACUR3  AAFAU160  AAFNLOAD  AAFSNSM1  ADADBRI   ADADB02  
 @MANU004  AAASMF1   AAFACUR4  AAFAU196  AAFNLOFF  AAFSNSTC  ADADBS    ADADB03  
 @MANU005  AAASMF9   AAFACUR5  AAFAU199  AAFNPAR   AAFSNST1  ADADBSD   ADADB04  
 @MANU006  AAAUSR    AAFADBAX  AAFAU20U  AAFNREST  AAFSZERA  ADADBSD1  ADADB05  
 @MANU007  AAAUSR1   AAFADBA2  AAFAU20X  AAFPCS00  ABABAN    ADADBSD9  ADADB10  
 @MANU009  AAA001    AAFADBA3  AAFAU20Y  AAFPCS01  ABACW106  ADADBSI   ADADB220 
 @SDSF     AAA001TS  AAFADBA4  AAFAU20Z  AAFPCS03  ADACDC    ADADBSP   ADADCK   
 A$ADASAV  AAA003JX  AAFAEXTB  AAFAU203  AAFPCS04  ADACMPCO  ADADBSRE  ADADEFW  
 A$INVERT  AAA004J   AAFAEX2   AAFAU216  AAFPL297  ADACMPP   ADADBSRF  ADADEFZ  
 A$NATLOA  AAA009    AAFAEX2T  AAFA199   AAFPL299  ADACMPPF  ADADBS1   ADADE020 
 A$NATUNL  AAA009J   AAFALHYP  AAFCCTES  AAFPREST  ADACMPX   ADADBS10  ADADE022 
 A$REORFI  AAA012    AAFANATI  AAFCDIC1  AAFPRES1  ADACMP01  ADADBS11  ADADE030 
 A$RESTOA  AAA020J   AAFANATK  AAFCDOC   AAFPSAVE  ADACMP1   ADADBS12  ADADE032 
 A$RESTOR  AAA500J   AAFANATZ  AAFCDSN   AAFPU033  ADACM050  ADADBS13  ADADE040 

Quero encontrar uma determinada palavra dentro dos membros de uma biblioteca. Em vez de abrir cada membro individualmente para verificar se a palavra está presente, podemos utilizar o recurso de pesquisa do TSO para realizar essa busca de forma rápida e identificar exatamente quais membros contêm a informação procurada.

MEMBER=WWWX14   000001 REC SAVE:10.08.2026 10:08 BY   USERID DBAP055  R=00000001
DSN=ADABAS.LIBRAR                                       VOL=PRL303 UNIT=1526    
....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
CLAUDEMAR - (67) 1414.324799                                                    
 COMPDS0400-D --- End of Data --- 

No TSO acesse o p.3.15

                CUSTOMPAC MASTER APPLICATION MENU                              
OPTION ===> p.3.15                                    SCROLL ===> PAGE        
                                                                               
                                                   USERID - DBAP055            
                                                   TIME   - 15:09              
                                                                               
  IS  ISMF     - Interactive Storage Management Facility                      
  P   PDF      - ISPF/Program Development Facility                            
  IP  IPCS     - Interactive Problem Control Facility                          
  DI  DITTO    - Data Interfile Transfer, Testing and Operations              
  SD  SDSF     - System Display and Search Facility                            
  IC  ICSF     - Integrated Cryptographic Service Facility                    
  HC  HCD      - Hardware Configuration Definition                            
  BMR BMR READ - BookManager Read (Read Online Documentation)                  
  BMI BMR INDX - BookManager Read (Create Bookshelf Index)                    
  S   SORT     - DF/SORT Dialogs                                              
  OU  USER     - z/OS ISPF User Options                                        
  RV  RVS      - RVSMVS File Transfer System                                  
  TL  TLMS     - TLMS Tape Management                                          
  TS  TSS      - TOP SECRET                                                    
  OS  SUPPORT  - z/OS ISPF System Support Options                              
                                                                               
 F1=HELP      F2=SPLIT     F3=END       F4=RETURN    F5=RFIND     F6=RCHANGE  
 F7=UP        F8=DOWN      F9=SWAP     F10=LEFT     F11=RIGHT    F12=RETRIEVE

CAPS

Iniciando a busca - Por uma palavra maiuscula

   Menu  Utilities  Options  Help                                               
 ¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢ 
                          Extended Search-For Utility                           
                                                                    More:     + 
 Search DS Name  . . 'ADABAS.LIBRAR'                                            
 PDS Member List . . *         (blank/pattern - member list, * - search all)    
                                                                                
 (Leave Search DSN "blank" for concatenated-uncataloged-password panel)         
                                                                                
 Enter Search Strings and Optional operands (WORD/PREFIX/SUFFIX,C)              
    Caps . . '324799'                                                           
    Caps . .                                                                    
    Caps . .                                                                    
    Asis . .                                                                    
    Asis . .                                                                    
                                                                                
 Listing DSN . . . . SRCHFOR.LIST                                               
 Process Options . .                                                            
 Statements Dsn  . .                                                            
                                                                                
 Enter "/" to select option      Execution Mode          Output Mode            
 Command ===>                                                                   
  F1=Help      F2=Split     F3=Exit      F7=Backward  F8=Forward   F9=Swap      
 F10=Actions  F12=Cancel                                                        

Encontrou - na biblioteca o membro com o nome WWWX14

   File  Edit  Edit_Settings  Menu  Utilities  Compilers  Test  Help            
 ¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢
 VIEW       DBAP055.SRCHFOR.LIST                            Columns 00001 00072 
 ****** ***************************** Top of Data ******************************
 000001 1  ISRSUPC   -   MVS/PDF FILE/LINE/WORD/BYTE/SFOR COMPARE UTILITY- ISPF 
 000002   LINE-#  SOURCE SECTION                    SRCH DSN: ADABAS.LIBRAR     
 000003                                                                         
 000004                                                                         
 000005   WWWX14                      --------- STRING(S) FOUND ----------------
 000006                                                                         
 000007        1  CLAUDEMAR - (67) 1414.324799                                  
 000008                                                                         
 000009 1  ISRSUPC   -   MVS/PDF FILE/LINE/WORD/BYTE/SFOR COMPARE UTILITY- ISPF 
 000010       SEARCH-FOR SUMMARY SECTION            SRCH DSN: ADABAS.LIBRAR     
 000011                                                                         
 000012  LINES-FOUND  LINES-PROC  MEMBERS-W/LNS  MEMBERS-WO/LNS  COMPARE-COLS  L
 000013          1        29137            1            849           1:80      
 000014                                                                         
 000015                                                                         
 000016  THE FOLLOWING PROCESS STATEMENTS (USING COLUMNS 1:72) WERE PROCESSED:  
 000017     SRCHFOR  '324799'                                                   
 Command ===>                                                  Scroll ===> PAGE 
  F1=Help      F2=Split     F3=Exit      F5=Rfind     F6=Rchange   F7=Up        
  F8=Down      F9=Swap     F10=Left     F11=Right    F12=Cancel                 

Asis

Iniciando a busca - Por uma palavra minuscula

   Menu  Utilities  Options  Help                                               
 ¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢ 
                          Extended Search-For Utility             Strings found 
                                                                    More:     + 
 Search DS Name  . . 'ADABAS.LIBRAR'                                            
 PDS Member List . . *         (blank/pattern - member list, * - search all)    
                                                                                
 (Leave Search DSN "blank" for concatenated-uncataloged-password panel)         
                                                                                
 Enter Search Strings and Optional operands (WORD/PREFIX/SUFFIX,C)              
    Caps . .                                                                    
    Caps . .                                                                    
    Caps . .                                                                    
    Asis . .                                                                    
    Asis . . 'Claudemar'                                                        
                                                                                
 Listing DSN . . . . SRCHFOR.LIST                                               
 Process Options . .                                                            
 Statements Dsn  . .                                                            
                                                                                
 Enter "/" to select option      Execution Mode          Output Mode            
 Command ===>                                                                   
  F1=Help      F2=Split     F3=Exit      F7=Backward  F8=Forward   F9=Swap      
 F10=Actions  F12=Cancel                                                        

Encontrou vários, agora é só dar PF8 e ver se encontra o membro

   File  Edit  Edit_Settings  Menu  Utilities  Compilers  Test  Help            
 ¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢
 VIEW       AA01055.SRCHFOR.LIST                            Columns 00001 00072 
 ****** ***************************** Top of Data ******************************
 000001 1  ISRSUPC   -   MVS/PDF FILE/LINE/WORD/BYTE/SFOR COMPARE UTILITY- ISPF 
 000002   LINE-#  SOURCE SECTION                    SRCH DSN: ADABAS.LIBRAR
 000003                                                                         
 000004                                                                         
 000005   ENVIA333                    --------- STRING(S) FOUND ----------------
 000006                                                                         
 000007       20  SUBJECT:teste Claudemar                                       
 000008       24  Claudemar Martins de Sa                                       
 000009                                                                         
 000010   SNG                         --------- STRING(S) FOUND ----------------
 000011                                                                         
 000012       37  Claudemar Martins de Sa                                       
 000013                                                                         
 000014 1  ISRSUPC   -   MVS/PDF FILE/LINE/WORD/BYTE/SFOR COMPARE UTILITY- ISPF 
 000015       SEARCH-FOR SUMMARY SECTION            SRCH DSN: ADABAS.LIBRAR
 000016                                                                         
 000017  LINES-FOUND  LINES-PROC  MEMBERS-W/LNS  MEMBERS-WO/LNS  COMPARE-COLS  L
 Command ===>                                                  Scroll ===> PAGE 
  F1=Help      F2=Split     F3=Exit      F5=Rfind     F6=Rchange   F7=Up        
  F8=Down      F9=Swap     F10=Left     F11=Right    F12=Cancel                 

Pesquisando via JOB

Uma outra forma bastante eficiente de pesquisar uma determinada palavra dentro de uma biblioteca é executar um JOB. Essa alternativa pode ser muito útil quando estamos trabalhando com bibliotecas que possuem uma grande quantidade de membros, tornando a pesquisa manual pelo TSO mais demorada. Por meio de um JOB, podemos automatizar essa tarefa e fazer com que o próprio ambiente percorra os membros da biblioteca em busca da palavra ou expressão informada. Ao final da execução, podemos analisar o resultado e identificar em quais membros a informação pesquisada foi encontrada. Além de agilizar o processo, essa abordagem é interessante porque permite realizar pesquisas de forma padronizada e repetir a operação sempre que necessário, principalmente em atividades de manutenção, análise de programas e investigação de informações no ambiente z/OS.

MEMBER=@CMD05   000011 REC SAVE:31.12.2022 12:05 BY   USERID DBAP055  R=00000001
DSN=AAB.DIST.JCLS                                LIB=S4 VOL=PRL303 UNIT=1526    
....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
//AAFSNATB JOB (AAF,TSS),'CLAU',CLASS=S,MSGCLASS=A             
//*UQ ALLOW                                                    
//* -----------------------------------------------------------
//*        PESQUISA DETERMINADA PALAVRA EM UMA BIBLIOTECA      
//* -----------------------------------------------------------
//SEARCH  EXEC PGM=ISRSUPC,PARM=(SRCHCMP,'FINDALL')            
//NEWDD  DD DISP=SHR,DSN=ADABAS.LIBRAR                        
//OUTDD  DD SYSOUT=*                                           
//SYSIN  DD *                                                  
 SRCHFOR '324799'

Resultado - Encontrou o membro WWWX14

1  ISRSUPC   -   MVS/PDF FILE/LINE/WORD/BYTE/SFOR COMPARE UTILITY- ISPF FOR z/OS
  LINE-#  SOURCE SECTION                    SRCH DSN: ADABAS.LIBRAR             
                                                                                
                                                                                
  WWWX14                      --------- STRING(S) FOUND -------------------     
                                                                                
       1  CLAUDEMAR - (67) 1414.324799                                          
                                                                                
1  ISRSUPC   -   MVS/PDF FILE/LINE/WORD/BYTE/SFOR COMPARE UTILITY- ISPF FOR z/OS
      SEARCH-FOR SUMMARY SECTION            SRCH DSN: ADABAS.LIBRAR             
                                                                                
 LINES-FOUND  LINES-PROC  MEMBERS-W/LNS  MEMBERS-WO/LNS  COMPARE-COLS  LONGEST-L
         1        29137            1            849           1:80           80 
                                                                                
 PROCESS OPTIONS USED: FINDALL                                                  
                                                                                
 THE FOLLOWING PROCESS STATEMENTS (USING COLUMNS 1:72) WERE PROCESSED:          
     SRCHFOR '324799'                                                           
                                                                                
UQS0009 - END OF DATA SET.                                                      

0 comentários:

Enviar um comentário