quinta-feira, agosto 13, 2026

Criando Sistemas em Natural/Adabas - RMM

Neste post, apresento a estrutura inicial de um sistema desenvolvido em Natural/Adabas, criado com o objetivo de tornar mais simples, rápida e eficiente a consulta e o gerenciamento de informações relacionadas aos cartuchos no ambiente de grande porte. A aplicação no mainframe que gerencia os cartuchos é o RMM (Removable Media Manager), responsável pelo controle, inventário, movimentação e retenção de mídias utilizadas no ambiente mainframe. A ideia surgiu de uma necessidade bastante prática: embora o TSO seja uma ferramenta extremamente importante e que faz parte da rotina de administração do mainframe, algumas consultas poderiam ser realizadas de maneira muito mais rápida e amigável por meio de uma aplicação desenvolvida em Natural. Um dos exemplos é justamente a consulta de cartuchos. No dia a dia, muitas vezes precisamos localizar rapidamente um volume, verificar seu status, consultar informações da mídia ou simplesmente confirmar alguma informação relacionada ao armazenamento. Fazer esse tipo de consulta diretamente pelo TSO funciona, mas nem sempre oferece a praticidade necessária para uma consulta operacional rápida. Foi pensando nisso que surgiu a proposta deste sistema: utilizar os recursos do Natural/Adabas para criar uma interface simples, objetiva e rápida, permitindo que a equipe técnica tenha acesso às principais informações dos cartuchos sem a necessidade de executar diversos comandos ou navegar por diferentes processos. A solução foi desenvolvida com uma estrutura enxuta, aproveitando a integração direta entre o Natural e o Adabas. Dessa forma, é possível realizar consultas de forma praticamente imediata, utilizando os próprios recursos disponíveis no ambiente de grande porte. Mais do que criar uma aplicação complexa, a proposta é demonstrar como uma ferramenta relativamente simples pode resolver uma necessidade operacional do dia a dia. O Natural permite construir interfaces bastante funcionais, enquanto o Adabas oferece o suporte necessário para armazenar e consultar essas informações com excelente desempenho. Ao longo deste post, apresento a arquitetura inicial da solução, os principais programas envolvidos, a estrutura das consultas, o fluxo de navegação e a forma como o sistema foi organizado para facilitar o trabalho da equipe responsável pela administração das mídias. A ideia é mostrar, na prática, que mesmo utilizando tecnologias consideradas antigas, como Natural e Adabas, ainda é possível desenvolver soluções rápidas, eficientes e perfeitamente adequadas às necessidades atuais de um ambiente mainframe.

AADPA000

Tela do menu inicial
                                                                                
  ------------------------------------------------------------------------------
  DBAP055           SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS           AADPA000
  09:41:53 ------------------------------------------------------------ 13/08/26
                                                                        RMM
                                                                                
  ------------------------------------------------------------------------------
                              01 - Pesquisa de Cartucho          
                              02 - Pesquisa de Label             
                              03 - Pesquisa de Data              
                              04 - Pesquisa de OWNER             
  ------------------------------------------------------------------------------
                                                                                
                           DIGITE A OPCAO DESEJADA 0__                          
                                                                                
                              TECLE PF3 PARA SAIR                               
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
                   MENU                                                         

Programa Natural
* ==================================================================== *
* FUNCAO: SUBMETE JOBS PARA PESQUISAR OS CARTUCHOS DO RMM              *
*  AUTOR: CLAUDEMAR MARTINS DE SA                                      *
* CRIADO: 01/12/2022                                                   *
* ==================================================================== *
DEFINE DATA LOCAL                                                       
1 #ARQ1 (N3)                                                            
END-DEFINE                                                              
* ==================================================================== *
FORMAT KD=ON                                                            
SET CONTROL 'U'                                                         
* SET KEY PF3 = 'AABP300M' NAMED 'MENU'                                   
REPEAT                                                                  
* ==================================================================== *
  INPUT (IP=OFF SG=OFF AD=MIL'_')                                       
    02T '-' (78)                                                        
    / 02T *USER                                                         
    20T 'SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS' (I)72T *PROGRAM      
    / 02T *TIME(AL=8) 11T '-' (60) 72T  *DATE                           
    /72T *LIBRARY-ID                                                    
    //                                               
    02T '-' (78)                                        /                                                
    29T '01 - Pesquisa de Cartucho ' (I)                /                                                
    29T '02 - Pesquisa de Label    ' (I)                /                                                
    29T '03 - Pesquisa de Data     ' (I)                /                                                
    29T '04 - Pesquisa de OWNER    ' (I)                /                                                
    29T '-' (78)                                     
    //27T'DIGITE A OPCAO DESEJADA'(YE) #ARQ1(AD=MIL'_')                 
    //30T'TECLE PF3 PARA SAIR'(I)                                       
* ==================================================================== *
  DECIDE ON FIRST VALUE OF #ARQ1                                        
    VALUE 01 FETCH 'AADPA001'                                           
    VALUE 02 FETCH 'AADPA002'                                           
    VALUE 03 FETCH 'AADPA003'                                           
    VALUE 04 FETCH 'AADPA004'                                           
    NONE VALUE REINPUT ' OPCAO INVALIDA'                                
  END-DECIDE                                                            
* ==================================================================== *
END                                                                     

AADPA002

Pesquisa pelo nome do dataset (label) do cartucho;
                                                                                
  ------------------------------------------------------------------------------
  DBAP055           SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS            AADPA002
  09:55:43 ------------------------------------------------------------ 13/08/26
                            PESQUISA LABEL DE CARTUCHO                  RMM
                                                                                
           ------------------------------------------------------------         
                                                                                
                 LABEL : RMM_________________________________________           
                                                                                
           ------------------------------------------------------------         
                                                                                
                              TECLE PF3 PARA SAIR                               
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
                   EXIT                                                          

Resultado da pesquisa
                                                                                
 09:56:29                  CARTUCHO DO TLMS                            13/08/26 
                    DATASET                     CART   OWNER      DATA    SEQ   
 --------------------------------------------- ------ -------- ---------- ---   
                                                                                
 RMM.C.BACKUP.DIARIO.G0078V00                  VC1108          01/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0080V00                  VC1110          03/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0081V00                  VC1029          04/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0082V00                  VC1121          05/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0083V00                  VC1125          06/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0084V00                  VC1133          07/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0085V00                  VC1135          08/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0086V00                  VC1058          09/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0087V00                  VC1137          10/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0088V00                  VC1064          11/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0089V00                  VC1140          12/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0090V00                  VC1142          13/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0091V00                  VC1147          14/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0092V00                  VC1153          15/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0093V00                  VC0987          16/10/2025 1     
 RMM.C.BACKUP.DIARIO.G0094V00                  VC1075          17/10/2025 1     
                                                                                
 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
                   EXIT                                                         

Programa Natural
* -------------------------------------------------------------------- *
* FUNCAO .: PESQUISA CARTUCHO NO TLMS USANDO O NOME DO LABEL           *
* AUTOR ..: CLAUDEMAR MARTINS                                          *
* -------------------------------------------------------------------- *
DEFINE DATA                                                             
LOCAL                                                                   
01 #DIRECTION (A1) INIT <'D'>   /* 'A' = ASCENDING                      
01 MONITORAMENTO VIEW OF AAFU-FITOTECA-RMM                              
  02 AAF-DATASET                                                        
  02 AAF-CARTUCHO                                                       
  02 AAF-OWNER                                                          
  02 AAF-DATA                                                           
  02 AAF-SEQUENCIA                                                      
01 #LABEL (A44) /* INIT <'ADABAS.C.SAVE.DB240.MES.G0199V00'>            
* -------------------------------------------------------------------- *
END-DEFINE                                                              
FORMAT LS=180 PS=20 KD=ON                                               
* -------------------------------------------------------------------- *
FORMAT KD=ON                                                            
SET KEY                                                                 
PF3  = PGM  NAMED 'EXIT'                                                
* -------------------------------------------------------------------- *
INPUT (IP=OFF SG=OFF AD=MIL'_')                                         
  02T '-' (78)                                                          
  /       02T *USER                                                     
  20T 'SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS' (I)                    
  72T  *PROGRAM                                                         
  /       02T  *TIME(AL=8)                                              
  11T '-' (60)                                                          
  72T  *DATE                                                            
  /    28T 'PESQUISA LABEL DE CARTUCHO'(I) 72T *LIBRARY-ID /            
* -------------------------------------------------------------------- *
  /                                                                     
  11T '-' (60)                                                          
  /                                                                     
  /14T'   LABEL :' #LABEL (AD=MIL'_')                                   
  //                                                                    
  11T '-' (60)                                                          
* -------------------------------------------------------------------- *
  //30T'TECLE PF3 PARA SAIR' (I)                                        
* -------------------------------------------------------------------- *
IF *PF-KEY EQ 'PF3'                                                     
  FETCH 'AADPA000'                                                      
END-IF                                                                  
* -------------------------------------------------------------------- *
READ MONITORAMENTO BY AAF-DATASET = #LABEL                              
* -------------------------------------------------------------------- *
DISPLAY                                                               
'DATASET' AAF-DATASET                                                   
'CART'    AAF-CARTUCHO                                                  
'OWNER'   AAF-OWNER                                                     
'DATA'    AAF-DATA                                                      
'SEQ'     AAF-SEQUENCIA                                                 
* -------------------------------------------------------------------- *
  WRITE TITLE LEFT JUSTIFIED                                            
    *TIME(AL=8) 27T 'CARTUCHO DO RMM' (I) 71T *DATE                    
  AT END OF PAGE                                                        
    INPUT ' '                                                           
    IF *PF-KEY EQ 'PF3'                                                 
      FETCH 'AADPA000'                                                  
    END-IF                                                              
  END-ENDPAGE                                                           
* -------------------------------------------------------------------- *
END-READ                                                                
FETCH 'AADPA002'                                                        
END                                                                     

AADPA003

Busca pelo dia, interessante pra gente saber o que rodou em um dia especifico no mainframe
                                                                                
  ------------------------------------------------------------------------------
  DBAP055           SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS            AADPA003
  10:02:30 ------------------------------------------------------------ 13/08/26
                      PESQUISA CARTUCHO - DATA DE GRAVACAO              RMM
                                                                                
           ------------------------------------------------------------         
                                                                                
                       DATA DE GRAVACAO .....: 13/08/2026                       
                                                                                
           ------------------------------------------------------------         
                                                                                
                              TECLE PF3 PARA SAIR                               
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
                   EXIT                                                         

Resultado
 MORE                                                                           
 10:03:43                  CARTUCHO DO TLMS                            13/08/26 
                    DATASET                     CART    DONO      DATA    SEQ   
 --------------------------------------------- ------ -------- ---------- ---   
                                                                                
 AAA.C.ACCOUNT.DIARIO.G4307V00                 VC1393 AAASMFDB 13/08/2026 1     
 AAB.C.RACF.BACKUP.DIARIO.G0446V00             VC1155 AABSRA02 13/08/2026 1     
 ADABAS.C.DB240.PLOG.G8182V00                  VC1360 ADABA01  13/08/2026 1     
 ADABAS.C.SAVE.DB240.DIA.G5628V00              VC1189 ADABA01  13/08/2026 1     
 ADABAS.C.SAVE.DB240.DIA.G5628V00              VC1286 ADABA01  13/08/2026 1     
 ADABAS.C.SAVE.DB240.DIA.G5628V00              VC1356 ADABA01  13/08/2026 1     
 ADABAS.C.SAVE.DB240.DIA.G5628V00              VC1357 ADABA01  13/08/2026 1     
 ADABAS.C.SAVE.DB240.DIA.G5628V00              VC1358 ADABA01  13/08/2026 1     
 ADABAS.C.SAVE.DB240.DIA.G5628V00              VC1359 ADABA01  13/08/2026 1     
 ADABAS.C.SAVE.DB240.DIA.G5628V00              VC1392 ADABA01  13/08/2026 1     
 RMM.C.BACKUP.DIARIO.G0396V00                  VC1452 RMM00010 13/08/2026 1     
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
                   MENU                                                         

Programa Natural
* -------------------------------------------------------------------- *
* FUNCAO .: PESQUISA CARTUCHO CRIADOS NO DIA ESPECIFICADO              *
* AUTOR ..: CLAUDEMAR MARTINS                                          *
* -------------------------------------------------------------------- *
DEFINE DATA                                                             
LOCAL                                                                   
01 MONITORAMENTO VIEW OF AAFU-FITOTECA-RMM                              
02 AAF-DATASET                                                          
02 AAF-CARTUCHO                                                         
02 AAF-OWNER                                                            
02 AAF-DATA                                                             
02 AAF-SEQUENCIA                                                        
01 #DIA   (A10)                                                         
* -------------------------------------------------------------------- *
END-DEFINE                                                              
FORMAT LS=80 PS=20                                                      
* -------------------------------------------------------------------- *
MOVE *DAT4E TO #DIA                                                     
* -------------------------------------------------------------------- *
FORMAT KD=ON                                                            
SET KEY                                                                 
PF3  = PGM  NAMED 'EXIT'                                                
* -------------------------------------------------------------------- *
  INPUT (IP=OFF SG=OFF AD=MIL'_')                                       
    02T '-' (78)                                                        
    /       02T *USER                                                   
    20T 'SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS' (I)                  
    72T  *PROGRAM                                                       
    /       02T  *TIME(AL=8)                                            
    11T '-' (60)                                                        
    72T  *DATE                                                          
/    22T 'PESQUISA CARTUCHO - DATA DE GRAVACAO'(I) 72T *LIBRARY-ID /    
* -------------------------------------------------------------------- *
/                                                                       
11T '-' (60)                                                            
/                                                                       
/12T'           DATA DE GRAVACAO .....:' #DIA (AD=MIL'_')               
//                                                                      
11T '-' (60)                                                            
* -------------------------------------------------------------------- *
//30T'TECLE PF3 PARA SAIR' (I)                                          
* -------------------------------------------------------------------- *
   IF *PF-KEY EQ 'PF3'                                                  
   FETCH 'AADPA000'                                                     
   END-IF                                                               
* -------------------------------------------------------------------- *
* READ     MONITORAMENTO            BY AAF-DSN  = #DIA                  
* -------------------------------------------------------------------- *
  FIND  MONITORAMENTO WITH AAF-DATA  = #DIA                             
   SORTED BY AAF-DATASET   /* AAF-VOLSEQ  /* DESCENDING                 
   IF NO RECORDS FOUND                                                  
   REINPUT 'NAO TEM CARTUCHO GRAVADO NESTE DIA' /*  MARK #CARTUCHO      
   END-NOREC                                                            
* -------------------------------------------------------------------- *
 DISPLAY                                                                
'DATASET' AAF-DATASET                                                   
'CART'    AAF-CARTUCHO                                                  
'DONO'    AAF-OWNER                                                     
'DATA'    AAF-DATA                                                      
'SEQ'     AAF-SEQUENCIA                                                 
* -------------------------------------------------------------------- *
  WRITE TITLE LEFT JUSTIFIED                                            
  *TIME(AL=8) 27T 'CARTUCHO DO TLMS' (I) 71T *DATE                      
  AT END OF PAGE                                                        
     INPUT ' '                                                          
     IF *PF-KEY EQ 'PF3'                                                
        FETCH 'AADPA000'                                                
     END-IF                                                             
  END-ENDPAGE                                                           
* -------------------------------------------------------------------- *
  END-FIND                                                              
    FETCH 'AADPA003'                                                    
  END                                                                   

AADPA004

Pesquisando quem é o Owner
                                                                                
  ------------------------------------------------------------------------------
  DBAP055           SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS            AADPA004
  10:07:34 ------------------------------------------------------------ 13/08/26
                                PESQUISA OWNER                          RMM
                                                                                
           ------------------------------------------------------------         
                                                                                
                         DIGITE O OWNER ..: RMM_____                            
                                                                                
           ------------------------------------------------------------         
                                                                                
                              TECLE PF3 PARA SAIR                               
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
                   EXIT                                                         

Resultado
                                                                                
 10:07:51                 PESQUISANDO OS OWNER DO RMM                  13/08/26 
                                                                                
 ALA.C.AUT.L.BKP1.R111997.COM0                 CT0774 RMM      08/10/1998 2     
 ALA.C.AUT.L.BKP2.R111997.COM0                 CT0774 RMM      08/10/1998 3     
 ALA.C.AUT.L.BKP1.R131997.FOL0                 CT0774 RMM      08/10/1998 4     
 ALA.C.AUT.L.BKP2.R131997.FOL0                 CT0774 RMM      08/10/1998 5     
 ALA.C.AUT.L.BKP1.R131997.COM1                 CT0774 RMM      08/10/1998 6     
 ALA.C.AUT.L.BKP2.R131997.COM2                 CT0774 RMM      08/10/1998 7     
 ALA.C.AUT.L.BKP1.R121997.FOL2                 CT0774 RMM      08/10/1998 8     
 ALA.C.AUT.L.BKP2.R121997.FOL2                 CT0774 RMM      08/10/1998 9     
 ALA.C.AUT.L.BKP3.R121997.FOL2                 CT0774 RMM      08/10/1998 10    
 ALA.C.AUT.L.BKP1.R121997.COM0                 CT0774 RMM      08/10/1998 11    
 ALA.C.AUT.L.BKP2.R121997.COM0                 CT0774 RMM      08/10/1998 12    
 ADABAS.C.SAVE.RH.DATA.ALL210.MES.G0018V00     CT0775 RMM      13/11/2005 1     
 ALA.C.DIR.L.BKP.A1997                         CT0777 RMM      07/04/2010 1     
 ALA.C.DIR.L.BKP2.R061997.PRE0.SEFOP.PG02      CT0777 RMM      07/04/2010 2     
 ALA.C.DIR.L.BKP3.R061997.PRE0.SEFOP.PG02      CT0777 RMM      07/04/2010 3     
 AAH.C.SAVE.F2324.G0010V00                     CT0778 RMM      17/01/2001 1     
 ALA.C.DIR.S.BKP1.R011998.FOL2                 CT0779 RMM      10/03/1998 1     
 ALA.C.DIR.S.BKP2.R011998.FOL2                 CT0779 RMM      10/03/1998 2     
                                                                                
 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
                   EXIT                                                         

Programa Natural
* -------------------------------------------------------------------- *
* FUNCAO .: PESQUISA O OWNER NO TLMS USANDO O NUMERO DO CARTUCHO       *
* AUTOR ..: CLAUDEMAR MARTINS DE SA                                    *
* -------------------------------------------------------------------- *
DEFINE DATA                                                             
LOCAL                                                                   
01 TLMS VIEW OF AAFU-FITOTECA-RMM                                       
  02 AAF-DATASET                                                        
  02 AAF-CARTUCHO                                                       
  02 AAF-OWNER                                                          
  02 AAF-DATA                                                           
  02 AAF-SEQUENCIA                                                      
01 #CARTUCHO                      (A8)                                  
* -------------------------------------------------------------------- *
END-DEFINE                                                              
FORMAT LS=80 PS=20                                                      
* -------------------------------------------------------------------- *
FORMAT KD=ON                                                            
SET KEY                                                                 
PF3  = PGM  NAMED 'EXIT'                                                
* -------------------------------------------------------------------- *
INPUT (IP=OFF SG=OFF AD=MIL'_')                                         
  02T '-' (78)                                                          
  /       02T *USER                                                     
  20T 'SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS' (I)                    
  72T  *PROGRAM                                                         
  /       02T  *TIME(AL=8)                                              
  11T '-' (60)                                                          
  72T  *DATE                                                            
  /                                                                     
  32T 'PESQUISA OWNER'(I) 72T *LIBRARY-ID /                             
  /                                                                     
  11T '-' (60)                                                          
  /                                                                     
  /15T'          DIGITE O OWNER ..:'#CARTUCHO (AD=MIL'_')               
  //                                                                    
  11T '-' (60)                                                          
  /                                                                     
  /30T'TECLE PF3 PARA SAIR' (I)                                         
IF *PF-KEY EQ 'PF3'                                                     
  FETCH 'AADPA000'                                                      
END-IF                                                                  
* -------------------------------------------------------------------- *
* READ     MONITORAMENTO            BY AAF-CARTUCHO  = #CARTUCHO        
* -------------------------------------------------------------------- *
FIND  TLMS WITH AAF-OWNER     = #CARTUCHO                               
* -------------------------------------------------------------------- *
  WRITE                                                                 
    AAF-DATASET                                                         
    AAF-CARTUCHO                                                        
    AAF-OWNER                                                           
    AAF-DATA                                                            
    AAF-SEQUENCIA                                                       
* -------------------------------------------------------------------- *
  WRITE  TITLE LEFT                                                     
    *TIME(AL=8) 26T 'PESQUISANDO OS OWNER DO RMM' (I) 71T *DATE         
    /                                                                   
  AT END OF PAGE                                                        
    INPUT ' '                                                           
    IF *PF-KEY EQ 'PF3'                                                 
      FETCH 'AADPA000'                                                  
    END-IF                                                              
  END-ENDPAGE                                                           
* -------------------------------------------------------------------- *
END-FIND                                                                
FETCH   'AADPA004'                                                      
END                                                                     

View

Esses programas usaram a view abaixo
 09:31:20               ***** NATURAL LIST COMMAND *****              13/08/2026
 User DBAP055            - List DDM AAFU-FITOTECA-RMM -         Library RMM
                                                                                
 DDM DBID 0      DDM FNR 433   VSAM Name          Default Sequence     Page   1 
                                                                                
 T L  DB  Name                             F Leng  S D Remark                   
 - -  --  -------------------------------- - ----  - - ------------------------ 
 *        Generation started                                                    
 *        at 2025-12-29 09:09:11                                                
 *        by user DBAP055                                                       
 *                                                                              
   1  AA  AAF-DATASET                      A   45  N D                          
   1  AB  AAF-CARTUCHO                     A    6  N D                          
   1  AC  AAF-OWNER                        A    8  N D                          
   1  AD  AAF-DATA                         A   10  N D                          
   1  AE  AAF-SEQUENCIA                    A    3  N                            
   1  AF  AAF-LIBERADO                     A    7  N                            
                                                                                
                                                                                
                                                                                
 End of List.                                                                   
 Command ===>                                                                   
 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
       Help  Print Exit  Short       --    -     +     ++                Canc

Carga do RMM

Esse foi o JCL utilizado para fazer a carga dos dados do RMM para o Adabas
//AADPA001 JOB (AABS,DIST),CLAUDEMAR,CLASS=S,MSGCLASS=A,USER=AASUB06
//*UQ ALLOW                                                         
//* ----------------------------------------------------------------
//*       LISTAR OS CARTUCHOS DO RMM E SALVAR NO BANCO ADABAS       
//* ----------------------------------------------------------------
//  SET DSN1=AAF.S.TSSUSER.CLAU                                     
//  SET DSN2=AAF.S.BKP242                                           
//* ----------------------------------------------------------------
//*       DELETANDO REGISTROS DO FILE ANTES DE CARREGAR - 240       
//* ----------------------------------------------------------------
//STEP0105 EXEC NATURAL,PARM1='SYS=P,MT=0,STACK=(LOGON RMM)'   
//SYSPRINT DD SYSOUT=A                                              
//CMWKF01  DD SYSOUT=A                                              
//CMPRT01  DD DUMMY                                                 
//SYSIN    DD *                                                     
AADPA005                                                            
//* ----------------------------------------------------------------
//*               GERANDO DADOS DOS CARTUCHOS DO RMM                
//* ----------------------------------------------------------------
//STEP0205 EXEC PGM=IKJEFT01,REGION=4096K                           
//SYSTSPRT DD DISP=SHR,DSN=&DSN1                                    
//SYSPRINT DD SYSOUT=A                                              
//SYSTSIN  DD *                                                     
  RMM SEARCHDATASET OWNER(*) SINCE(91073) LIMIT(*)                  
//* ----------------------------------------------------------------
//*           FILTRO/CLASSFICACAO DOS CARTUCHOS RETIDOS             
//* ----------------------------------------------------------------
//STEP0305 EXEC PGM=SORT                                            
//SYSPRINT DD SYSOUT=Z                                              
//SYSOUT   DD SYSOUT=Z                                              
//SORTIN   DD DISP=SHR,DSN=&DSN1                                    
//SORTOUT  DD DISP=SHR,DSN=&DSN2                                    
//SORTWK1  DD DSN=&&TEMP01,DISP=(NEW,PASS),                         
//           SPACE=(CYL,2),UNIT=SYSDA,                              
//           DCB=(LRECL=133,BLKSIZE=1330,RECFM=FBA)                 
//* --------------------------------------------------------------  
//SYMNAMES  DD *                                                    
  LABEL;1,46,CH                                                     
  CT;47,2,CH                                                        
  CARTUCHO;49,4,CH                                                  
  DATA;63,10,CH                                                     
  SEQ;75,4,CH                                                       
//SYSIN    DD *                                                     
  SORT FIELDS=(CT,A,CARTUCHO,A,75,4,UFF,A)                          
  INCLUDE COND=(CT,EQ,C'CT',OR,CT,EQ,C'TP',OR,CT,EQ,C'VC')          
/*                                                                  
//* --------------------------------------------------------------- 
//*                      ICEGENER PARA A SYSOUT                     
//* --------------------------------------------------------------- 
//STEP0405 EXEC PGM=ICEGENER                                        
//SYSPRINT DD SYSOUT=A                                              
//SYSUT1   DD DISP=SHR,DSN=&DSN2                                    
//SYSUT2   DD SYSOUT=A                                              
//SYSIN    DD DUMMY                                                 
//* ----------------------------------------------------------------
//*                  GRAVANDO NO FILE 433 BANCO 240                 
//* ----------------------------------------------------------------
//STEP0505 EXEC NATURAL,PARM1='SYS=P,MT=0,STACK=(LOG RMM)'     
//CMWKF01  DD DISP=SHR,DSN=&DSN2                                    
//CMPRINT  DD SYSOUT=A                                              
//CMPRT01  DD SYSOUT=A,HOLD=YES
//SYSIN    DD *                
RMM0003                        
/*

AADPA005

Limpando os dados antes de fazer a carga no file onde estão os dados do RMM no Adabas
* -------------------------------------------------------------------- *
* FUNCAO: LIMPAR OS DADOS DO FILE 433 DO ADABAS ANTES DA RECARGA       *
* AUTOR : CLAUDEMAR MARTINS DE SA                                      *
* -------------------------------------------------------------------- *
DEFINE DATA LOCAL                                                       
01 RMM VIEW OF AAFU-FITOTECA-RMM                                        
  02 AAF-DATASET  /* CAMPO APENAS PARA REFERENCIA NA VIEW               
01 #TOTAL-DELETED (N7)                                                  
01 #CTR-COMMIT    (N7)                                                  
END-DEFINE                                                              
* -------------------------------------------------------------------- *
* LER TODOS OS REGISTROS DO ARQUIVO                                    *
* -------------------------------------------------------------------- *
READ RMM BY ISN                                                         
  DELETE (0140)                                                         
  ADD 1 TO #TOTAL-DELETED                                               
  ADD 1 TO #CTR-COMMIT                                                  
* -------------------------------------------------------------------- *
* QUANDO CHEGAR EM 500, ZERA O CONTADOR E FAZ O COMMIT                  
* -------------------------------------------------------------------- *
  IF #CTR-COMMIT GE 500                                                 
    END TRANSACTION                                                     
    RESET #CTR-COMMIT                                                   
  END-IF                                                                
END-READ                                                                
END TRANSACTION                                                         
* -------------------------------------------------------------------- *
WRITE 'PROCESSAMENTO CONCLUIDO.'                                        
WRITE 'TOTAL DE REGISTROS DELETADOS:' #TOTAL-DELETED                    
END                                                                     

RMM0003

Programa que faz a carga dos dados do RMM que estão em um dataset e grava em um file Adabas
* -------------------------------------------------------------------- *
*  FUNCAO: GRAVANDO OS DADOS DO RMM PARA UM FILE ADABAS                 
*  AUTOR : CLAUDEMAR MARTINS                                            
* -------------------------------------------------------------------- *
DEFINE DATA LOCAL                                                       
01 RMM VIEW OF AAFU-FITOTECA-RMM                                        
  02 AAF-DATASET                                                        
  02 AAF-CARTUCHO                                                       
  02 AAF-OWNER                                                          
  02 AAF-DATA                                                           
  02 AAF-SEQUENCIA                                                      
* -------------------------------------------------------------------- *
01 #DADOS-GENERICOS (A79)                                               
01 REDEFINE #DADOS-GENERICOS                                            
  02 FILLER                   1X                                        
  02 #DSN                     (A44)                                     
  02 FILLER                   1X                                        
  02 #VOLUME                  (A06)                                     
  02 FILLER                   1X                                        
  02 #OWNER                   (A08)                                     
  02 FILLER                   1X                                        
  02 #CREATE_DATE             (A11)                                     
  02 REDEFINE  #CREATE_DATE                                             
    03 #DIA                   (A02)                                     
    03 #SEPARATOR1            (A01)                                     
    03 #MES                   (A02)                                     
    03 #SEPARATOR2            (A01)                                     
    03 ANO                    (A04)                                     
  02 FILLER                   1X                                        
  02 #SEQ                     (N05)                                     
END-DEFINE                                                              
* -------------------------------------------------------------------- *
* GRAVANDO OS DADOS                                                     
* -------------------------------------------------------------------- *
READ WORK FILE 1 #DADOS-GENERICOS                                       
* -------------------------------------------------------------------- *
  IF   #SEPARATOR1 EQ '/'                                               
    AAF-DATASET     :=  #DSN                                            
    AAF-CARTUCHO    :=  #VOLUME                                         
    AAF-OWNER       :=  #OWNER                                          
    AAF-DATA        :=  #CREATE_DATE
    AAF-SEQUENCIA   :=  #SEQ        
  END-IF                            
* -------------------------------------------------------------------- *
* GRAVAR NO BANCO DE DADOS                                          
* -------------------------------------------------------------------- *
  STORE RMM                                                             
  END TRANSACTION                                                       
END-WORK                                                                
END

0 Comments:

Enviar um comentário