Na hora de criar um super descritor sempre fazemos o backup do file e depois rodamos o invert, pensei em criar um programa Natural que faz o backup do file e depois rode o invert.

A tela inicial
    ------------------------------------------------------------------------------
  AA01055                       DBA ADABAS MAINFRAME                    DBAPC087
  12:30:30 ------------------------------------------------------------ 17/05/21
                     BACKUP DE FILE - CRIAR SUPER DESCRITOR                     
                                                                                
    +----------------------------------------------------------------- ----+    
    |                                                                      |    
    | DBID do Banco Adabas .:  240                                         |    
    |                                                                      |    
    | Numero do File .......:  0__                                         |    
    |                                                                      |    
    | Nome do Campo ........:  SUPDE='SN=CE(1,8),CB(1,7)'_________________ |    
    |                                                                      |    
    | NATPARM ....: AAFAW240  TEMPSIZE ....: 7000   SORTSIZE ....: 20032   |    
    +----------------------------------------------------------------- ----+    
                                                                                
                            TECLE PF3 PARA VOLTAR                               
                                                                                
                                                                                
                                                                                
                                                                                
 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
                   MENU                                                         

Ese foi o programa
 >                                       > +  Program     DBAPC087 Lib SUPORTE2 
 Top    ....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
   0010 * ------------------------------------------------------------------- * 
   0020 * FUNCAO: BACKUP + INVERT - OS DOIS JUNTOS                            * 
   0030 *  AUTOR: CLAUDEMAR MARTINS                                           * 
   0040 * ------------------------------------------------------------------- * 
   0050 DEFINE DATA LOCAL                                                       
   0060 1 #CALLER   (A4)  INIT <'NAT '>                                         
   0070 1 #JOBNUM   (A8)                                                        
   0080 1 REDEFINE #JOBNUM                                                      
   0090   2 #JOBA   (A3)                                                        
   0100   2 #JOBN   (N5)                                                        
   0110 1 #I        (P3)                                                        
   0120 1 #RC       (B4)                                                        
   0130 1 #TOT      (B2)                                                        
   0140 1 #ARQ      (A43) INIT <"SUPDE='SN=CE(1,8),CB(1,7)'">                   
   0150 1 #DSN      (A32) INIT <'AAF.S.DBA'>                                    
   0160 1 #DBID     (A3)  INIT <'240'>                                          
   0170 1 #FILE     (N3)                                                        
   0180 1 #BANCO1   (A9)  INIT <' AAFAW240'>                                    
   0190 01 REDEFINE #BANCO1                                                     
   0200   2 FILLER                  1X                                          
   0210   2 #BANCO_NAME             (A8)                                        
   0220 1 #TEMPSIZE   (A4) INIT <'7000'>                                        
   0230 1 #SORTSIZE   (A5) INIT <'20032'>                                       
   0240 1 #EXEC       (A5) INIT <'EXEC '>                                       
   0250 1 #C01 (A80) INIT                                                       
   0260  <'//AAFPSAVE JOB (XXXX,OSB),XXXXXXX,CLASS=S,MSGCLASS=A,TYPRUN=HOLD'>   
   0270 1 REDEFINE #C01                                                         
   0280   2 FILLER  2X                                                          
   0290   2 #JOBNAME (A8)                                                       
   0300   2 #FIL1 (A06)                                                         
   0310   2 #ACC  (A04)                                                         
   0320   2 #FIL2 (A06)                                                         
   0330   2 #USER (A07)                                                         
   0340 1 #C02 (A80) INIT <'//*UQ ALLOW'>                                       
   0350 1 #C03 (A80) INIT                                                       
   0360  <'//* -----------------------------------------------------'>          
   0370 1 #C04 (A80) INIT                                                       
   0380   <'//*  SALVAR FILE EM CARTUCHO'>                                      
   0390 1 #C05 (A80) INIT                                                       
   0400   <'//* -----------------------------------------------------'> 
   0410 1 #C06 (A80)                                                            
   0420 1 #C07 (A80)                                                            
   0430 1 #C08 (A80) INIT                                                       
   0440  <'//          DISP=(NEW,KEEP),UNIT=CVRT,LABEL=(1,SL)'>                 
   0450 1 #C09 (A80) INIT                                                       
   0460  <'//* ------------------------------------------------------'>         
   0470 1 #C10 (A80) INIT                                                       
   0480  <'//DDCARD    DD *'>                                                   
   0490 1 #C11 (A80)                                                            
   0500 1 #C12 (A80) INIT                                                       
   0510  <'//DDKARTE   DD *'>                                                   
   0520 1 #C13 (A80)                                                            
   0530 1 #C14 (A80) INIT                                                       
   0540  <'/*'>                                                                 
   0550 1 #C15 (A80) INIT                                                       
   0560  <'//* ------------------------------------------------------'>         
   0570 1 #C16 (A80) INIT                                                       
   0580   <'//*  CRIANDO O SUPER DESCRIT'>                                      
   0590 1 #C17 (A80) INIT                                                       
   0600 <'//* ------------------------------------------------------'>
   0610 1 #C18 (A80)                                                            
   0620 1 #C19 (A80) INIT <'//DDCARD    DD *'>                                  
   0630 1 #C20 (A80)                                                            
   0640 1 #C21 (A80) INIT <'//DDKARTE   DD *'>                                  
   0650 1 #C22 (A80)                                                            
   0660 1 #C23 (A80)                                                            
   0670 1 #C24 (A80)                                                            
   0680 ****                                                                    
   0690 1 #Y2K (A1)  INIT <'N'>                                                 
   0700 END-DEFINE                                                              
   0710 * ==================================================================== *
   0720 FORMAT KD=ON                                                            
   0730 SET CONTROL 'U'                                                         
   0740 SET KEY PF3 NAMED 'MENU'                                                
   0750   PF8 NAMED '    ' PF9 NAMED '     '                                    
   0760 MOVE *INIT-USER TO #USER                                                
   0770 REPEAT                                                                  
   0780 *  RESET #ARQ                                                           
   0790   RESET INITIAL #Y2K                                                    
   0800 * ==================================================================== *
   0810   INPUT (IP=OFF SG=OFF AD=MIL'_')                                       
   0820     02T '-' (78)                                                        
   0830     /       02T *USER                                                   
   0840     30T 'DBA ADABAS MAINFRAME' (I)                  
   0850     72T  *PROGRAM                                                       
   0860     /       02T  *TIME(AL=8)                                            
   0870     11T '-' (60)                                                        
   0880     72T  *DATE                                                          
   0890 /      21T 'BACKUP DE FILE - CRIAR SUPER DESCRITOR' (I)                 
   0900 *                                                                       
   0910 //                                                                      
   0920 04T '+' '-' (68) '+'                                                    
   0930 /                                                                       
   0940 04T '|' ' ' (68) '|'                                                    
   0950 /                                                                       
   0960 04T '| DBID do Banco Adabas .: ' #DBID                                  
   0970 '                                        |'                             
   0980 /                                                                       
   0990 04T '|' ' ' (68) '|'                                                    
   1000 /
   1010 04T '| Numero do File .......: ' #FILE                                  
   1020 '                                        |'                             
   1030 /                                                                       
   1040 04T '|' ' ' (68) '|'                                                    
   1050 /                                                                       
   1060 04T '| Nome do Campo ........: ' #ARQ '|'                               
   1070 /                                                                       
   1080 04T '|' ' ' (68) '|'                                                    
   1090 /                                                                       
   1100 04T '| NATPARM ....:'  #BANCO_NAME                                      
   1110      ' TEMPSIZE ....:' #TEMPSIZE                                        
   1120     '  SORTSIZE ....:'#SORTSIZE '  |'                                   
   1130 /                                                                       
   1140 04T '|' ' ' (68) '|'                                                    
   1150 /                                                                       
   1160 04T '+' '-' (68) '+'                                                    
   1170 /                                                                       
   1180 / 28T'TECLE PF3 PARA VOLTAR'(I)                                         
   1190   IF *PF-KEY EQ 'PF3'                                                   
   1200     FETCH 'DBAPMENU'
   1210   END-IF                                                                
   1220 * ==================================================================== *
   1230 IF #DBID = '   '                                                        
   1240   REINPUT 'Digite o DBID do banco' MARK *#DBID ALARM                    
   1250 END-IF                                                                  
   1260 * ==================================================================== *
   1270   IF #ARQ = ' '                                                         
   1280     REINPUT 'Nome do Arquivo deve ser Informado' MARK *#ARQ ALARM       
   1290   END-IF                                                                
   1300 * ==================================================================== *
   1310  COMPRESS '//SAVE   EXEC AAFAU' #DBID ',TIME=1440'                      
   1320  INTO #C06 LEAVING NO                                                   
   1330 * ==================================================================== *
   1340  COMPRESS '//DDSAVE1   DD DSN=' #DSN '.' 'A' #FILE              ','     
   1350  INTO #C07 LEAVING NO                                                   
   1360 * ==================================================================== *
   1370  COMPRESS 'ADARUN PROG=ADASAV,DBID=' #DBID ',PLOGRQ=NO'                 
   1380  INTO #C11 LEAVING NO                                                   
   1390 * ==================================================================== *
   1400  COMPRESS 'ADASAV SAVE'
   1410  INTO #C13 LEAVING NO                                                   
   1420 * ==================================================================== *
   1430 COMPRESS '//INVENT  EXEC ' #BANCO1 ',TIME=1440' INTO #C18 LEAVING NO    
   1440 * ==================================================================== *
   1450  COMPRESS 'ADARUN PROG=ADAINV,DBID=' #DBID                              
   1460  INTO #C20 LEAVING NO                                                   
   1470 * ==================================================================== *
   1480  COMPRESS 'ADAINV INVERT FILE=' #FILE                                   
   1490  INTO #C22 LEAVING NO                                                   
   1500 * ==================================================================== *
   1510  COMPRESS 'ADAINV             ' #ARQ                                    
   1520  INTO #C23                                                              
   1530 * ==================================================================== *
   1540   COMPRESS 'ADAINV        TEMPSIZE=' #TEMPSIZE ',SORTSIZE=' #SORTSIZE   
   1550   INTO #C24 LEAVING NO                                                  
   1560 * ==================================================================== *
   1570   COMPUTE #TOT = 24 * 80                                                
   1580   CALL 'RJE' #RC #C01 #TOT                                              
   1590   CALL 'GETJOB' #JOBNUM #CALLER                                         
   1600 * ==================================================================== *
   1610   INPUT NO ERASE 19/17 'JOB ' #JOBNAME(AD=IO) 'DE N.' #JOBN(AD=IO)      
   1620     '  Submetido OK.'                                                   
   1630 //27T'TECLE ENTER PARA VOLTAR'(I)                                       
   1640     FETCH 'DBAPCS31'                                                    
   1650 END-REPEAT                                                              
   1660 END 

0 comentários:

Enviar um comentário