Bem este foi um teste que fiz importando dados do gerenciador de cartucho (que não adabas) para dentro de um file Adabas;
Predict
No Predict já temos definidos um file e uma view que vamos gravar essas informações dos cartuchos;
12:59:12 ***** P R E D I C T 4.4.1 ***** 2015-10-06
Plan 0 - Select File -
Cmd File ID Type Fnr DDM Impl Other
__ * AADD-FITOTECA A 21 * A
__ * AADU-ARQUIVOS U 21 * *
__ ('.' = EXIT, 'T' = TOP, 'C' = Specify association ( ))
O físico vai estar assim;
> > + Fi: AADD-FITOTECA L: 1 S: 11
Ty L Field ID F Cs Length Occ D U DB S All
*- - -------------------------------- *- * -------- ----- * * -- *
1 AAD-LIBERADO A 2,0 AA N
1 AAD-ARMARIO A 2,0 AB N
1 AAD-SERVICE A 3,0 AC N
1 AAD-CARTUCHO A 6,0 AD N
1 AAD-ARQUIVO A 44,0 AE N
1 AAD-DATA A 10,0 AF N
1 AAD-TIME A 8,0 AG N
1 AAD-SEQUENCIA N 3,0 AH N
1 AAD-CNT N 3,0 AI N
1 AAD-JOB A 8,0 AJ N
1 AAD-USER A 15,0 AK N
-- - -------------------------------- -- - -------- ----- - - -- -
A view vai estar assim;
13:06:51 ***** NATURAL LIST COMMAND ***** 06/10/2015
User DBA - List DDM AADU-ARQUIVOS - Library NAT2CUR
DDM DBID 0 DDM FNR 21 VSAM Name Default Sequence Page 1
T L DB Name F Leng S D Remark
- - -- -------------------------------- - ---- - - ------------------------
* Generation started
* at 2015-10-06 12:46:30
* by user DBA
*
1 AA AAD-LIBERADO A 2 N
1 AB AAD-ARMARIO A 2 N
1 AC AAD-SERVICE A 3 N
1 AD AAD-CARTUCHO A 6 N
1 AE AAD-ARQUIVO A 44 N
1 AF AAD-DATA A 10 N
1 AG AAD-TIME A 8 N
1 AH AAD-SEQUENCIA N 3,0 N
1 AI AAD-CNT N 3,0 N
1 AJ AAD-JOB A 8 N
1 AK AAD-USER A 15 N
End of List.
Command ===>
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
Help Print Exit Short -- - + ++ Canc
Tamanho do físico do file 21 quando foi criado;
13:41:56 ***** P R E D I C T 4.4.1 ***** 2015-10-06
- Modify Adabas attributes -
File ID ......... AADD-FITOTECA Added 2015-10-06 at 12:49
Type ............ Adabas, Simple file by DBA
Contained in DA . DB.T522.MIGRA (PDBnr: 522)
Required attributes Physical distribution type
Phys. file number ..* 21 implemented Simple file
Min ISN ............. 1
Max ISN ............. 201187
Device Cylinder Blocks Padding factor Max 2. alloc
*----- ---------- ---------- -------------- ------------
ASSO 8391 UI 146 10
NI > 1 350
DATA 8391 DS > 117 8796 10
Loading attributes Loading attributes
Max recl. ........... One AC extent .......... N (Y,N)
ISN reusage ......... Y (Y,N) DS reusage ............. Y (Y,N)
User ISN ............ N (Y,N) Mixed DS device ........ Y (Y,N)
Additional attributes ..* N
Programa Natural - Separando os dados
Este programa natural vai fazer um filtro dos dados que eu quero que serão os cartuchos retidos no gerenciador de cartuchos.
> > + Program CLAUD001 Lib NAT2CUR
Top ....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
0010 * -------------------------------------------------------
0020 * FILTRANDO SOMENTE OS CARTUCHOS RETIDOS
0030 * -------------------------------------------------------
0040 DEFINE DATA LOCAL
0050 01 #ARQ (A118)
0060 01 REDEFINE #ARQ
0070 02 FILLER 2X
0080 02 #LIBERADO (A02)
0090 02 FILLER 1X
0100 02 #ARMARIO (A02)
0110 02 FILLER 1X
0120 02 #SERVICE (A3)
0130 02 FILLER 1X
0140 02 #CARTUCHO (A6)
0150 02 FILLER 1X
0160 02 #ARQUIVO (A44)
0170 02 FILLER 1X
0180 02 #DATA (A10)
0190 02 FILLER 1X
0200 02 #TIME (A8)
0210 02 FILLER 1X
0220 02 #SEQUENCIA (N3)
0230 02 FILLER 1X
0240 02 #CNT (N3)
0250 02 FILLER 1X
0260 02 #JOB (A8)
0270 02 FILLER 1X
0280 02 #USER (A15)
0290 * -------------------------------------------------------
0300 01 #ARQ2 (A118)
0310 01 REDEFINE #ARQ2
0320 02 FILLER 2X
0330 02 #LIBERADO2 (A02)
0340 02 FILLER 1X
0350 02 #ARMARIO2 (A02)
0360 02 FILLER 1X
0370 02 #SERVICE2 (A3)
0380 02 FILLER 1X
0390 02 #CARTUCHO2 (A6)
0400 02 FILLER 1X
0410 02 #ARQUIVO2 (A44)
0420 02 FILLER 1X
0430 02 #DATA2 (A10)
0440 02 FILLER 1X
0450 02 #TIME2 (A8)
0460 02 FILLER 1X
0470 02 #SEQUENCIA2 (N3)
0480 02 FILLER 1X
0490 02 #CNT2 (N3)
0500 02 FILLER 1X
0510 02 #JOB2 (A8)
0520 02 FILLER 1X
0530 02 #USER2 (A15)
0540 END-DEFINE
0550 * -------- PROCURANDO CARTUCHO RETIDO = NO --------------
0560 READ WORK FILE 1 #ARQ
0570 IF #LIBERADO = 'NO'
0580 * --------- MOVENDO OS DADOS QUE SELECIONEI -------------
0590 MOVE #LIBERADO TO #LIBERADO2
0600 MOVE #ARMARIO TO #ARMARIO2
0610 MOVE #SERVICE TO #SERVICE2
0620 MOVE #CARTUCHO TO #CARTUCHO2
0630 MOVE #ARQUIVO TO #ARQUIVO2
0640 MOVE #DATA TO #DATA2
0650 MOVE #TIME TO #TIME2
0660 MOVE #SEQUENCIA TO #SEQUENCIA2
0670 MOVE #CNT TO #CNT2
0680 MOVE #JOB TO #JOB2
0690 MOVE #USER TO #USER2
0700 * ----------- FINALIZANDO FECHANDO TUDO QUE ABRI ---------
0710 WRITE WORK FILE 2 #ARQ2
0720 END-IF
0730 END-WORK
0740 END
Programa Natural - Gravando em um File Adabas
Este programa Natural vai gravar os dados em um file Adabas, o programa de filtro e de carga poderiam ser somente um mais para demonstração ficou interessante;
> > + Program CLAUD002 Lib NAT2CUR
Top ....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
0010 * -------------------------------------------------------------------
0020 * FUNCAO DESTE PROGRAMA: LE O WORK FILE E GRAVA NO DB
0030 * -------------------------------------------------------------------
0040 DEFINE DATA LOCAL
0050 01 DADOS-GENERICOS VIEW OF AADU-ARQUIVOS
0060 02 AAD-LIBERADO
0070 02 AAD-ARMARIO
0080 02 AAD-SERVICE
0090 02 AAD-CARTUCHO
0100 02 AAD-ARQUIVO
0110 02 AAD-DATA
0120 02 AAD-TIME
0130 02 AAD-SEQUENCIA
0140 02 AAD-CNT
0150 02 AAD-JOB
0160 02 AAD-USER
0170 01 #DADOS-GENERICOS (A118)
0180 01 REDEFINE #DADOS-GENERICOS
0190 02 FILLER 2X
0200 02 #LIBERADO (A02)
0210 02 FILLER 1X
0220 02 #ARMARIO (A02)
0230 02 FILLER 1X
0240 02 #SERVICE (A3)
0250 02 FILLER 1X
0260 02 #CARTUCHO (A6)
0270 02 FILLER 1X
0280 02 #ARQUIVO (A44)
0290 02 FILLER 1X
0300 02 #DATA (A10)
0310 02 FILLER 1X
0320 02 #TIME (A08)
0330 02 FILLER 1X
0340 02 #SEQUENCIA (N3)
0350 02 FILLER 1X
0360 02 #CNT (N03)
0370 02 FILLER 1X
0380 02 #JOB (A08)
0390 02 FILLER 1X
0400 02 #USER (A15)
0410 * --------------------------------------------------
0420 * ESTATISTICAS
0430 * --------------------------------------------------
0440 * 01 #I (N02)
0450 * 01 #II (N02)
0460 * 01 #TOT-GENERICO (N06)
0470 END-DEFINE
0480 *
0490 SET KEY PF10='%W<' PF11='%W>'
0500 FORMAT LS=160 PS=60
0510 * --------------------------------------------------
0520 * GRAVANDO OS DADOS
0530 * --------------------------------------------------
0540 READ WORK FILE 1 #DADOS-GENERICOS
0550 *
0560 AAD-LIBERADO := #LIBERADO
0570 AAD-ARMARIO := #ARMARIO
0580 AAD-SERVICE := #SERVICE
0590 AAD-CARTUCHO := #CARTUCHO
0600 AAD-ARQUIVO := #ARQUIVO
0610 AAD-DATA := #DATA
0620 AAD-TIME := #TIME
0630 AAD-SEQUENCIA := #SEQUENCIA
0640 AAD-CNT := #CNT
0650 AAD-JOB := #JOB
0660 AAD-USER := #USER
0670 * --------------------------------------------------
0680 * AGORA VAMOS MOSTRA/GRAVAR NO BANCO
0690 * --------------------------------------------------
0700 WRITE AAD-LIBERADO AAD-ARMARIO AAD-SERVICE
0710 AAD-CARTUCHO AAD-ARQUIVO AAD-DATA
0720 AAD-TIME AAD-SEQUENCIA AAD-CNT
0730 AAD-JOB AAD-USER
0740 *
0750 * STORE DADOS-GENERICOS
0760 * END TRANSACTION
0770 END-WORK
0780 END
Programa Natural - Vendo os dados no File Adabas
O programa CLAUD004 faz uma pesquisa no file, no exemplo abaixo quero listar todos os cartuchos que tenham o nome ADABAS.CART;
> > + Program CLAUD004 Lib NAT2CUR
Top ....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
0010 DEFINE DATA
0020 LOCAL
0030 01 VEIC VIEW OF AADU-ARQUIVOS
0040 02 AAD-LIBERADO
0050 02 AAD-ARMARIO
0060 02 AAD-SERVICE
0070 02 AAD-CARTUCHO
0080 02 AAD-ARQUIVO
0090 02 AAD-DATA
0100 02 AAD-TIME
0110 02 AAD-SEQUENCIA
0120 02 AAD-CNT
0130 02 AAD-JOB
0140 02 AAD-USER
0150 END-DEFINE
0160 FORMAT LS=160 PS=60
0170 READ VEIC WITH REPOSITION BY AAD-ARQUIVO = 'ADABAS.CART'
0180 DISPLAY AAD-CARTUCHO AAD-ARQUIVO AAD-DATA AAD-JOB
0190 IF AAD-ARQUIVO = 'ADABAS.CART'
0200 ESCAPE TOP REPOSITION
0210 END-IF
0220 END-READ
0230 END
....+....1....+....2....+....3....+....4....+....5....+... S 23 L 4
Pegando os Dados
Este JCL vamos pegar os dados sobre os cartuchos;
MEMBER=T%T 000031 REC SAVE:27.08.2009 17:14 BY USERID DBA R=00000001
DSN=DBA.PRODUCAO.ADABAS LIB=PB VOL=PRL305 UNIT=1004
....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
//AAFSNATB JOB (AAF,TSS),'CLAUD',CLASS=S,MSGCLASS=A
//*UQ ALLOW
//* ---------------------------------------------------------------
//* INVENTARIO DOS CARTUCHOS - &&TEMP
//* ---------------------------------------------------------------
//ALOCLIB EXEC CATRPTS
//SYSPRINT DD DSN=&&TEMP01,DISP=(NEW,PASS),SPACE=(CYL,150),
// UNIT=SYSDA,DCB=(LRECL=133,BLKSIZE=1330,RECFM=FBA)
//TLMSRPTS.BKUP DD DUMMY
//SYSIN DD *
TLMS018,DSN,SCRATCH,LOC,SERVICE,VSN,CDATE,CTIME,VOLSEQ,VOLCNT,CJOB,USER
//* ---------------------------------------------------------------
//* FAZENDO O FILTRO DOS DADOS
//* ---------------------------------------------------------------
//NATD EXEC NATURAL,PARM1='SYS=T,MT=0'
//CMWKF01 DD DSN=&&TEMP01,DISP=SHR
//CMWKF02 DD DSN=&&TEMP02,DISP=(NEW,PASS),SPACE=(CYL,150),
// UNIT=SYSDA,DCB=(LRECL=133,BLKSIZE=1330,RECFM=FBA)
//CMPRT01 DD SYSOUT=G,HOLD=YES
//SYSIN DD *
CLAUD001
//* ---------------------------------------------------------------
//* LIMPANDO O FILE 21 DO BANCO 522
//* ---------------------------------------------------------------
//ADADBS EXEC AAFAU522
//DDCARD DD *
ADARUN PROG=ADADBS,DBID=522
//DDKARTE DD *
ADADBS REFRESH FILE=21
//* ---------------------------------------------------------------
//* GRAVANDO OS DADOS DO DATASET NO FILE 21
//* ---------------------------------------------------------------
//NATURAL EXEC NATURAL,PARM1='SYS=T,MT=0,STACK=(LOG NAT2CUR)'
//CMWKF01 DD DSN=&&TEMP02,DISP=SHR
//CMWKF02 DD SYSOUT=A
//SYSPRINT DD SYSOUT=A
//SYSIN DD *
CLAUD002
/*
Checando se Gravou no Banco - pelo SYSAOS dá para ver que o file que estava com nenhum registros agora esta com 4345 registros
13:50:07 ***** A D A B A S BASIC SERVICES ***** 2015-10-06
DBID 522 - Display File Layout - PDRF012
****************
* File 21 * AADD-FITOTECA
****************
Records loaded ..... 4345 Date loaded .......... 2015-10-06 13:42:14
TOP ISN ............ 4345 Date of last update .. 2015-10-06 13:44:37
Max ISN expected ... 201187 Max Compr Rec Lngth .. 10792
Minimum ISN ........ 1 Asso/Data Padding .... 10%/10%
Size of ISN ........ 3 Bytes Highest Index Level .. 3
Number of Updates .. 4713
ISN Reusage ........ YES USERISN .............. NO
Space Reusage ...... YES MIXDSDEV ............. YES
ADAM File .......... NO PGMREFRESH ........... NO
Ciphered File ...... NO NOACEXTENSION ........ NO
Coupled Files ...... NONE
Blk per DS Extent .. 0
Blk per UI Extent .. 0
Blk per NI Extent .. 0 Length of Owner ID ... 0
PF1----- PF2------ PF3------ PF4------ PF6----- PF7----- PF8----- PF12-----
Help Exit Refresh Menu
Vamos editar o programa CLAUD004 e colocar um label de um cartucho para checar - vamos pesquisar abaixo os cartuchos ADABAS.CART
> > + Program CLAUD004 Lib NAT2CUR
Bot ....+....1....+....2....+....3....+....4....+....5....+....6....+....7..
0150 END-DEFINE
0160 FORMAT LS=160 PS=60
0170 READ VEIC WITH REPOSITION BY AAD-ARQUIVO = 'ADABAS.CART'
0180 DISPLAY AAD-CARTUCHO AAD-ARQUIVO AAD-DATA AAD-JOB
0190 IF AAD-ARQUIVO = 'ADABAS.CART'
0200 ESCAPE TOP REPOSITION
0210 END-IF
0220 END-READ
0230 END
Esta aqui os dados de todos os cartuchos ADABAS.CART
VVVV
PAG 1
AAD-CARTUCHO AAD-ARQUIVO AAD-DATA AAD-JOB
------------ -------------------------------------------- ---------- --------
CL0232 ADABAS.CART.DB421.PLOG.G0189V00 23/10/2011 AAFAP421
CL1106 ADABAS.CART.DB421.PLOG.G0190V00 29/10/2011 AAFAP421
CL0988 ADABAS.CART.DB421.PLOG.G0191V00 05/11/2011 AAFAP421
CL1108 ADABAS.CART.DB421.PLOG.G0192V00 06/11/2011 AAFAP421
CL0117 ADABAS.CART.DB421.PLOG.G0193V00 20/11/2011 AAFAP421
CL0100 ADABAS.CART.DB421.PLOG.G0194V00 20/11/2011 AAFAP421
CL0743 ADABAS.CART.DB421.PLOG.G0195V00 26/11/2011 AAFAP421
CL0831 ADABAS.CART.DB421.PLOG.G0196V00 03/12/2011 AAFAP421
CL0289 ADABAS.CART.DB421.PLOG.G0197V00 04/12/2011 AAFAP421
CL1042 ADABAS.CART.DB421.PLOG.G0198V00 10/12/2011 AAFAP421
CL0210 ADABAS.CART.DB421.PLOG.G0199V00 17/12/2011 AAFAP421
CL0346 ADABAS.CART.DB421.PLOG.G0200V00 24/12/2011 AAFAP421
CL0698 ADABAS.CART.DB421.PLOG.G0201V00 31/12/2011 AAFAP421
CL0507 ADABAS.CART.DB421.PLOG.G0202V00 01/01/2012 AAFAP421
CL0452 ADABAS.CART.DB421.PLOG.G0203V00 09/01/2012 AAFAP421
CL0811 ADABAS.CART.DB421.PLOG.G0204V00 18/01/2012 AAFAP421
CL0394 ADABAS.CART.DB421.PLOG.G0205V00 22/01/2012 AAFAP421
CL0373 ADABAS.CART.DB421.PLOG.G0206V00 26/01/2012 AAFAP421
CL0685 ADABAS.CART.DB421.PLOG.G0207V00 30/01/2012 AAFAP421
CL0413 ADABAS.CART.DB421.PLOG.G0208V00 05/02/2012 AAFAP421
CL0940 ADABAS.CART.DB421.PLOG.G0209V00 20/02/2012 AAFAP421
CL1116 ADABAS.CART.DB421.PLOG.G0210V00 25/02/2012 AAFAP421
CL0391 ADABAS.CART.DB421.PLOG.G0211V00 04/03/2012 AAFAP421
CL0409 ADABAS.CART.DB421.PLOG.G0212V00 08/03/2012 AAFAP421
CL0601 ADABAS.CART.DB400.CLOG.G0047V00 22/03/2012 AAFAC400
BK0049 ADABAS.CART.DB400.PLOG.G0256V00 28/06/2013 AAFAP040
BK1069 ADABAS.CART.DB400.PLOG.G0294V00 11/01/2015 AAFAP040
BK0467 ADABAS.CART.DB400.PLOG.G0295V00 01/02/2015 AAFAP040
BK0725 ADABAS.CART.DB400.PLOG.G0296V00 21/02/2015 AAFAP040
BK1171 ADABAS.CART.DB400.PLOG.G0297V00 01/03/2015 AAFAP040
BK0436 ADABAS.CART.DB400.PLOG.G0298V00 05/04/2015 AAFAP040
BK1281 ADABAS.CART.DB400.PLOG.G0299V00 03/05/2015 AAFAP040
BK1241 ADABAS.CART.DB400.PLOG.G0300V00 31/05/2015 AAFAP040
BK1329 ADABAS.CART.DB400.PLOG.G0301V00 05/07/2015 AAFAP040
BK1401 ADABAS.CART.DB400.PLOG.G0302V00 02/08/2015 AAFAP040
BK0869 ADABAS.CART.DB400.PLOG.G0303V00 04/08/2015 AAFAP040
BK1244 ADABAS.CART.DB500.CLOG.G0113V00 31/05/2015 AAFAC500
BK1338 ADABAS.CART.DB500.CLOG.G0114V00 05/07/2015 AAFAC500
BK1403 ADABAS.CART.DB500.CLOG.G0115V00 02/08/2015 AAFAC500
BK0783 ADABAS.CART.DB500.CLOG.G0116V00 04/08/2015 AAFAC500
BK0651 ADABAS.CART.DB500.PLOG.G0224V00 15/02/2014 AAFAP500

0 comentários:
Enviar um comentário