terça-feira, março 24, 2026

Transferência de Objetos com SYSTRANS

Você pode utilizar o SYSTRANS para transferir objetos do ambiente Natural/Adabas de uma plataforma para outra, como por exemplo do mainframe para Linux ou Windows. Por meio dele é possível transportar programas, mapas, DDMs e até mesmo estruturas relacionadas ao banco de dados, como os FDTs do Adabas. Isso torna o processo muito mais seguro e padronizado, evitando erros que poderiam ocorrer caso essa transferência fosse feita manualmente. Muitas vezes também é necessário fazer a atualização de versões de objetos. É comum que determinados programas sejam constantemente alterados em um dos ambientes — por exemplo, no ambiente web — e essas alterações precisam ser transferidas para o outro ambiente para que ambos permaneçam sincronizados. Manter essa correlação entre os ambientes é extremamente importante para evitar inconsistências, principalmente quando existem rotinas críticas que são utilizadas em produção.

Esse fluxo garante que os dois ambientes permaneçam alinhados, reduzindo riscos de inconsistência entre versões e facilitando o controle das alterações feitas pelos desenvolvedores.

Simulando

Temos um programa chamado DBAPMENU que queremos transferir para outro mainframe/ou outro Linux Natural - no mainframe usamos esse JCL para fazer o backup
//AAFSNATB JOB (AACP,SCHD),SCHED,CLASS=S,MSGCLASS=A TYPRUN=HOLD        
//*UQ ALLOW                                                            
//* ------------------------------------------------------------------ 
//*           Transferencia do mainframe para o micro                  
//* ------------------------------------------------------------------ 
//* ESTE JOB COPIA PROGRAMAS/SUBPROGRAMAS PARA UM ARQUIVO PS UNLOAD    
//* ------------------------------------------------------------------ 
//NATUNLD EXEC NATSIAF,PARM1='SYS=D,MT=0,IM=D,INTENS=1'                
//CMWKF01 DD DSN=AAC.S.WORK01,DISP=OLD                                 
//CMWKF03 DD DSN=AAF.S.CMWKF03,DISP=OLD                                
//CMPRINT DD SYSOUT=A                                                  
//DADOS    DD *             
U                           
N|N|N|Y|Y|N|N               
N                           
SUPORTE2|DBAPMENU|*|SUPORTE2
FIN                         
/*                          
//SYSIN   DD *              
LOGON SYSTRANS              
MENU                        
/*

Rodou o SYSTRANS Unload

1Logon accepted to library SUPORTE2.          
1NEXT LOGON SYSTRANS                          
1Logon accepted to library SYSTRANS.          
1NEXT MENU                                    
1Function / CMD                               
 DATA U                                       
1                                             
 General Unload Options                       
0Conversion EBCDIC ===> ASCII .....   N  (Y/N)
 User-Defined Conversion Table ....   N  (Y/N)
 Substitute Line References .......   N  (Y/N)
 Report ...........................   Y  (Y/N)
 Include Line Numbers .............   N  (Y/N)
 Use Work File Input ..............   N  (Y/N)
 Use Selection List ...............   N  (Y/N)
0Use Entire Connection work file...   N  (Y/N)
 DATA N|N|N|Y|Y|N|N                           
1                                             
 Objects to be unloaded / CMD                 
 DATA N                                       
1                                             
 Unload Natural Objects                                                         
0S/C Type ....................... S                                             
 From Library ................... ________                                      
 Object Name .................... *_______                                      
 Object Type .................... *______________                               
 To Library ..................... ________                                      
 Data Area Format ............... * (*/O/N)                                     
 DATA SUPORTE2|DBAPMENU|*|SUPORTE2                                              
111:42:15             ***** NATURAL SYSTRANS UTILITY *****            2026-03-24
 User AAFSNATB                 - Unload Objects -                               
0Object   Object      Src  Vers.  Target   Date/Time of     User ID  Operating  
 Name     Type        Cat  Level  Library  Save             of save  System     
 -------- ----------- ---  ------ -------- ---------------- -------- ---------  
0DBAPMENU Program     Src  4.1.4  SUPORTE2 2025-07-09 14:15 DBAP048  MVS/ESA    
1                                                                               
 Objects to be unloaded / CMD                                                   
 DATA FIN                                                                       
111:42:15              ***** NATURAL SYSTRANS UTILITY *****           2026-03-24
 User AAFSNATB                - Unload Objects -                                
                      Statistical Report of unloaded Objects                    
        Global Data Area .................       0                              
        Local Data Area ..................       0                              
        Parameter Data Area ..............       0                              
        Programs .........................       1                              
        Subprograms ......................       0                              
        Subroutines ......................       0                              
        Helproutines .....................       0                              
        Copycodes ........................       0                              
        Texts ............................       0                              
        Dialogs ..........................       0                              
        Classes ..........................       0                              
        Maps .............................       0                              
        Functions ........................       0                              
0       Total Command Processors .........       0                              
        Total Natural Objects ............       1                              
        Total Predict Processing Rules ...       0                              
        Total DDMs .......................       0                              
        Total Adabas FDTs ................       0                              
        Total Error Message Texts ........       0                              
111:42:15              ***** NATURAL SYSTRANS UTILITY *****           2026-03-24
 User AAFSNATB                - Unload Objects -                                
-       Total Objects unloaded ...........       1                              
-                                                                     
      *** TRANSFER Unload Process has been terminated successfully ***
1NAT9995 Natural session terminated normally.                         
UQS0009 - END OF DATA SET.                                                                                                 

Vamos ver o dataset - o programa esta lá

                                                                      R=00000001
DSN=AAC.S.WORK01                                        VOL=PRD305 UNIT=1522    
....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
*H**ENAT4104202603241142152MVS/ESA                          0AE B               
*C**                                SUPORTE2DBAPMENU                        F   
*D01NAT4104F SUPORTE2DBAPMENU                        DBAP048 DBAP048 4     23R  
*D02            2025070914153122025070914153120000002651                        
*D03MVS/ESA COMPLETENCF414                                                      
*D04                                                                            
*S**0010* ==================================================================== *
*S**0020* FUNCAO: MENU DE OPCOES PARA O DBA ADABAS                             *
*S**0030*  AUTOR: CLAUDEMAR MARTINS                                            *
*S**0040*  DATA : 08/02/2021                                                   *
*S**0050* ==================================================================== *
*S**0060DEFINE DATA LOCAL                                                       
*S**00701 #ARQ1 (N3)                                                            
*S**0080END-DEFINE                                                              
*S**0090* ==================================================================== *
*S**0100FORMAT KD=ON                                                            
*S**0110SET KEY                                                                 
*S**0120  TREQ        NAMED ' '   /* NOVAS PFS /*                               
*S**0130PF3  = PGM  NAMED 'EXIT'                                                
*S**0140PF12 = PGM  NAMED 'QUIT'                                                
*S**0150* ==================================================================== *
*S**0160REPEAT                                                                  
*S**0170  INPUT (IP=OFF SG=OFF AD=MIL'_')                                       
*S**0180    02T '-' (78)                                                        
*S**0190    /02T *USER                                                          
*S**0200    20T 'SUPERINTENDENCIA DA GESTAO DA INFORMACAO' (I)                  
*S**0210    72T *PROGRAM                                                        
*S**0220    /02T *TIME(AL=8) 11T '-' (60) 72T  *DATE                            
*S**0230    /72T *LIBRARY-ID /                                                  
*S**0240    /02T '-' (78)                                                       
*S**0250/8T '10 - MONITORANDO ESPACOS '(I) 47T' 80 - CALCULO DO ESPACO      '(I)
*S**0260/8T '20 - MIGRATE FILES ADABAS'(I) 47T' 90 - MANUTENCAO NOS FILES   '(I)
*S**0270/8T '30 - BACKUP BANCO/FILE   '(I) 47T'100 - PROCEDIMENTOS HISTORICO'(I)
*S**0280/8T '40 - LIMPAR CHECKPOINTS  '(I) 47T'110 - ALOCACAO DOS FILES     '(I)
*S**0290/8T '50 - ADAREP DOS BANCOS   '(I) 47T'120 - LIMPANDO BUFFER POOL   '(I)
*S**0300/8T '60 - REORDB/REORFILE     '(I) 47T'130 - RESTRUTURACAO          '(I)
*S**0310/8T '70 - NOMES BANCOS PREDICT'(I) 47T'                             '(I)
*S**0320    /2T'-' (78)                                                         
*S**0330* ==================================================================== *
*S**0340    // 27T'DIGITE A OPCAO DESEJADA'(YE) #ARQ1(AD=MIL'_')                

Essa é a biblioteca que vou restaurar o DBAPMENU - poderia ser em um ambiente em outro mainframe/outro linux

 11:46:18               ***** NATURAL LIST COMMAND *****              24/03/2026
 User DBAP048             - LIST Objects in a Library -         Library SUPORTE1
                                                                                
 Cmd  Name       Type         S/C  SM Version  User ID    Date        Time      
 ---  *________  *__________  *__  *  *______  *________  *__________ *________ 
 __   VIEW01     Program      S    R  4.1.04   DBAP048    2025-08-14  10:26:45  
 __   VIEW02     Program      S/C  S  4.1.04   DBAP048    2025-08-14  12:33:03  
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                2 Objects found 
 Top of List.                                                                   
 Command ===>                                                                   
 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
       Help  Print Exit  Sort        --    -     +     ++          >     Canc   

Vamos restaura o programa que foi salvo no dataset via SYSTRANS

//AAFSNATB JOB (AACP,SCHD),KATIA,CLASS=S,MSGCLASS=A TYPRUN=HOLD        
//*UQ ALLOW                                                            
//* -------------------------------------------------------------      
//*           TRANSFERENCIA PARA A BIBLIOTECA SUPORTE1                 
//* -------------------------------------------------------------      
//* ESTE JOB COPIA PROGRAMAS DE UM ARQUIVO PS P/ UMA BIB. NATURAL      
//* -------------------------------------------------------------      
//NATUNLD EXEC NATURAL,PARM1='SYS=D,MT=0,IM=D,INTENS=1'                
//CMWKF01 DD DSN=AAB.S.UNLOAD.DET2,DISP=OLD                            
//CMPRINT DD SYSOUT=A                                                  
//DADOS    DD *
L              
N|Y|Y|N|Y      
*              
Y              
SUPORTE1       
FIN            
/*             
//SYSIN   DD * 
LOGON SYSTRANS 
MENU           
/*             

Restaurou

1Logon accepted to library SUPORTE2.            
1NEXT LOGON SYSTRANS                            
1Logon accepted to library SYSTRANS.            
1NEXT MENU                                      
1Function / CMD                                 
 DATA L                                         
1                                               
 General Load Options                           
0User-Defined Conversion Table ....   N  (Y/N/F)
 Report ...........................   Y  (Y/N)  
 Translate Sources to Upper Case ..   N  (Y/N)  
 Save Restart Information .........   N  (Y/N)  
 Modify Library Names .............   N  (Y/N)  
0Use Entire Connection work file ..   N  (Y/N)  
 Convert Data Area Sources ........   N  (Y/N)  
 DATA N|Y|Y|N|Y                                 
1Objects to be loaded / CMD                     
 DATA *                                         
1                                               
 Load All Objects                               
0All objects on work file 1 will be loaded|     
0Replace ............................ N  (Y/N)                                  
 DATA Y                                                                         
1                                                                               
 Modify Library Names                                                           
-Old Library Name .................   *                                         
 New Library Name .................   *_______                                  
 DATA SUPORTE1                                                                  
111:47:20             ***** NATURAL SYSTRANS UTILITY *****            2026-03-24
 User AAFSNATB                  - Load Objects -                                
0Object   Object      Src Vers.  Target   Date/Time of     Op.-     Remark      
 Name     Type        Cat Level  Library  Save             System               
 -------- ----------- --- ------ -------- ---------------- -------- ------------
0DBAPMENU Program     Src 4.1.4  SUPORTE1 2025-07-09 14:15 MVS/ESA  Loaded      
1PAG      2                                                   26-03-24  11:47:19
0Objects loaded successfully                                                    
1Objects to be loaded / CMD                                                     
 DATA FIN                                                                       
111:47:20              ***** NATURAL SYSTRANS UTILITY *****           2026-03-24
 User AAFSNATB                 - Load Objects -                                 
                      Statistical Report of loaded Objects                      
        Global Data Area .................       0                              
        Local Data Area ..................       0                              
        Parameter Data Area ..............       0                              
        Programs .........................       1                              
        Subprograms ......................       0                              
        Subroutines ......................       0                              
        Helproutines .....................       0                              
        Copycodes ........................       0                              
        Texts ............................       0                              
        Dialogs ..........................       0                              
        Classes ..........................       0                              
        Maps .............................       0                              
        Functions ........................       0                              
0       Total Command Processors .........       0                              
        Total Natural Objects ............       1                              
        Total Predict Processing Rules ...       0                              
        Total DDMs .......................       0                              
        Total Adabas FDTs ................       0                              
        Total Error Message Texts ........       0                              
111:47:20              ***** NATURAL SYSTRANS UTILITY *****           2026-03-24
 User AAFSNATB                 - Load Objects -                                 
-       Total Objects loaded .............       1                              
-                                                                    
       *** TRANSFER Load Process has been terminated successfully ***
1NAT9995 Natural session terminated normally.                        
UQS0009 - END OF DATA SET.                                           

Restaurou

 11:49:02               ***** NATURAL LIST COMMAND *****              24/03/2026
 User DBAP048             - LIST Objects in a Library -         Library SUPORTE1
                                                                                
 Cmd  Name       Type         S/C  SM Version  User ID    Date        Time      
 ---  *________  *__________  *__  *  *______  *________  *__________ *________ 
 ed   DBAPMENU   Program      S    R  4.1.04   DBAP048    2025-07-09  14:15:31  
 __   VIEW01     Program      S    R  4.1.04   DBAP048    2025-08-14  10:26:45  
 __   VIEW02     Program      S/C  S  4.1.04   DBAP048    2025-08-14  12:33:03  
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                3 Objects found 
 Top of List.                                                                   
 Command ===>                                                                   
 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
       Help  Print Exit  Sort        --    -     +     ++          >     Canc   

Editando - esta lá o programa

 >                                       > +  Program     DBAPMENU Lib SUPORTE1 
 Top    ....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
   0010 * ==================================================================== *
   0020 * FUNCAO: MENU DE OPCOES PARA O DBA ADABAS                             *
   0030 *  AUTOR: CLAUDEMAR MARTINS                                            *
   0040 *  DATA : 08/02/2021                                                   *
   0050 * ==================================================================== *
   0060 DEFINE DATA LOCAL                                                       
   0070 1 #ARQ1 (N3)                                                            
   0080 END-DEFINE                                                              
   0090 * ==================================================================== *
   0100 FORMAT KD=ON                                                            
   0110 SET KEY                                                                 
   0120   TREQ        NAMED ' '   /* NOVAS PFS /*                               
   0130 PF3  = PGM  NAMED 'EXIT'                                                
   0140 PF12 = PGM  NAMED 'QUIT'                                                
   0150 * ==================================================================== *
   0160 REPEAT                                                                  
   0170   INPUT (IP=OFF SG=OFF AD=MIL'_')                                       
   0180     02T '-' (78)                                                        
   0190     /02T *USER                                                          
   0200     20T 'SUPERINTENDENCIA DA GESTAO DA INFORMACAO' (I)                  
   0210     72T *PROGRAM                                                        
   0220     /02T *TIME(AL=8) 11T '-' (60) 72T  *DATE                            
   0230     /72T *LIBRARY-ID /                                                  
   0240     /02T '-' (78)                                                       
   0250 /8T '10 - MONITORANDO ESPACOS '(I) 47T' 80 - CALCULO DO ESPACO      '(I)
   0260 /8T '20 - MIGRATE FILES ADABAS'(I) 47T' 90 - MANUTENCAO NOS FILES   '(I)
   0270 /8T '30 - BACKUP BANCO/FILE   '(I) 47T'100 - PROCEDIMENTOS HISTORICO'(I)
   0280 /8T '40 - LIMPAR CHECKPOINTS  '(I) 47T'110 - ALOCACAO DOS FILES     '(I)
   0290 /8T '50 - ADAREP DOS BANCOS   '(I) 47T'120 - LIMPANDO BUFFER POOL   '(I)
   0300 /8T '60 - REORDB/REORFILE     '(I) 47T'130 - RESTRUTURACAO          '(I)
   0310 /8T '70 - NOMES BANCOS PREDICT'(I) 47T'                             '(I)
   0320     /2T'-' (78)                                                         
   0330 * ==================================================================== *
   0340     // 27T'DIGITE A OPCAO DESEJADA'(YE) #ARQ1(AD=MIL'_')                
   0350     // 30T'TECLE PF3 PARA SAIR'(I)                                      
   0360 * ==================================================================== *
   0370   IF #ARQ1 EQ  10   FETCH 'DBAMCS10'                                    
   0380   IF #ARQ1 EQ  20   FETCH 'DBAMCS20'                                    
   0390   IF #ARQ1 EQ  30   FETCH 'DBAMCS30'                                    
   0400   IF #ARQ1 EQ  40   FETCH 'DBAPJ879'          /* 'DBAMCS80'             
        ....+....1....+....2....+....3....+....4....+....5....+... S 54   L 21  

0 comentários:

Enviar um comentário