Seguindo com as dicas sobre Natural vou postar um procedimento que fiz para pegar o relatório de ADAREP (que é utilitário que mostra informações sobre um banco de dados Adabas, com informação sobre os files, espaço disponível/usado entre outras informações). Primeiro foi criado um programa Natural para fazer um filtro das informações que eu quero pegar. Observe que tem muitas variaveis criadas, #ASSOR-CYL-TOTAL / #DATAR-CYL-DISPONIVEL mais como é um teste vamos pegar duas imformações do ADAREP - quero somente - id do banco e total de arquivos gravados.
> > + Program AAFPLAS7 Lib SUPORTE2
Top ....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
0010 * -----------------------------------------------------------
0020 * funcao: Lendo o ADAREP e filtrando algumas informacoes
0030 * autor : Claudemar Martins
0040 * criado: 13/10/2015
0050 * -----------------------------------------------------------
0060 DEFINE DATA LOCAL
0070 01 #DATA-BASE-NUMBER (A133)
0080 01 REDEFINE #DATA-BASE-NUMBER
0090 02 #AA-01 (A27)
0100 02 #AB-02 (A16)
0110 01 #CAMPO-01 (A27)
0120 01 #CAMPO-02 (A16)
0130 01 #FILES-LOADED-TOTAL (A133)
0140 01 REDEFINE #FILES-LOADED-TOTAL
0150 02 #AC-03 (A27)
0160 02 #AD-04 (A16)
0170 01 #CAMPO-03 (A27)
0180 01 #CAMPO-04 (A16)
0190 01 #ASSOR-CYL-TOTAL (A133)
0200 01 #DATAR-CYL-TOTAL (A133)
0210 01 #WORKR-CYL-TOTAL (A133)
0220 01 #DATAR-CYL-DISPONIVEL (A133)
0230 01 #ASSOR-CYL-DISPONIVEL (A133)
0240 01 #ARQUIVO-DATASET (A133)
0250 01 REDEFINE #ARQUIVO-DATASET
0260 02 FILLER 1X
0270 02 #PROCURO (A10)
0280 END-DEFINE
0290 * -----------------------------------------------------------
0300 * Gravando o id do banco
0310 * -----------------------------------------------------------
0320 READ WORK FILE 1 #DATA-BASE-NUMBER
0330 MOVE #AA-01 TO #CAMPO-01
0340 IF #AA-01 EQ SCAN ' Data Base Number = '
0350 MOVE #AB-02 TO #CAMPO-02
0360 ESCAPE TOP
0370 END-IF
0380 END-WORK
0390 * -----------------------------------------------------------
0400 * Gravando a quantidade de arquivos carregados
0410 * -----------------------------------------------------------
0420 READ WORK FILE 1 #FILES-LOADED-TOTAL
0430 MOVE #AC-03 TO #CAMPO-03
0440 IF #AC-03 EQ SCAN ' Number of files loaded = '
0450 MOVE #AD-04 TO #CAMPO-04
0460 ESCAPE TOP
0470 END-IF
0480 END-WORK
0490 * -----------------------------------------------------------
0500 * jogando os dados que peguei
0510 * -----------------------------------------------------------
0520 WRITE *DATE *TIME(AL=8) #CAMPO-02 #CAMPO-04
0530 END
....+....1....+....2....+....3....+....4....+....5....+... S 53 L 34
O relatório do ADAREP armazenado em um dataset esta assim:
DSN=AAF.S.TSSUSER4 VOL=PRL302 UNIT=1125
....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
Data Base Name = DB.P444.ADABASP1
Data Base Number = 444
Date Loaded = 2012-04-01
Time Loaded = 10:04:52
System Files = 19, 20
Maximum number of files = 2048
Number of files loaded = 287
JCL que vai gravar em um dataset o resultado do ADAREP do banco e que depois vai rodar o programa natural que vai pegar duas informações que eu quero nesse dataset
//AAFSNATB JOB (AAFA,DIBD),CLAU,CLASS=S,MSGCLASS=A
//*UQ ALLOW
//* --------------------------------------------------------
//* ADAREP DO BANCO DE DADOS
//* --------------------------------------------------------
//REP EXEC AAFAU444,REGION=0M
//DDDRUCK DD DSN=AAF.S.TSSUSER4,DISP=OLD
//DDCARD DD *
ADARUN PROG=ADAREP,DBID=444
//DDKARTE DD *
ADAREP NOFILE
/*
//* -------------------------------------------------
//* Programa que vai fazer o filtro - natural
//* -------------------------------------------------
//STEP01 EXEC NATURAL,PARM1='SYS=P2,MT=0,STACK=(LOG SUPORTE2)'
//CMWKF01 DD SYSOUT=A
//CMWKF02 DD SYSOUT=G
//CMPRT01 DD SYSOUT=G,HOLD=YES
//SYSIN DD *
AAFPLAS7
/*
Resultado - Primeiro grava o dia mais a hora (13/10/15 17:41:23) depois pega o ID do banco (240) depois mostra o total de arquivos criados no banco (287)
1Logon accepted to library SUPORTE2.
1NEXT AAFPLAS7
1PAG 1 15-10-13 17:41:21
013/10/15 17:41:23 444 287
1NAT9995 Natural session terminated normally.
UQS0009 - END OF DATA SET.
Como eu já disse este programa natural é um escopo para gravar em um file Adabas as informações dos bancos, para monitorar o espaço utiliza de cada file do banco para poder termos uma estimativa de uso;

0 comentários:
Enviar um comentário