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
Ese foi o programa
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