Neste post, apresento a estrutura inicial de um sistema desenvolvido em Natural/Adabas, criado com o objetivo de tornar mais simples, rápida e eficiente a consulta e o gerenciamento de informações relacionadas aos cartuchos no ambiente de grande porte. A aplicação no mainframe que gerencia os cartuchos é o RMM (Removable Media Manager), responsável pelo controle, inventário, movimentação e retenção de mídias utilizadas no ambiente mainframe. A ideia surgiu de uma necessidade bastante prática: embora o TSO seja uma ferramenta extremamente importante e que faz parte da rotina de administração do mainframe, algumas consultas poderiam ser realizadas de maneira muito mais rápida e amigável por meio de uma aplicação desenvolvida em Natural. Um dos exemplos é justamente a consulta de cartuchos. No dia a dia, muitas vezes precisamos localizar rapidamente um volume, verificar seu status, consultar informações da mídia ou simplesmente confirmar alguma informação relacionada ao armazenamento. Fazer esse tipo de consulta diretamente pelo TSO funciona, mas nem sempre oferece a praticidade necessária para uma consulta operacional rápida. Foi pensando nisso que surgiu a proposta deste sistema: utilizar os recursos do Natural/Adabas para criar uma interface simples, objetiva e rápida, permitindo que a equipe técnica tenha acesso às principais informações dos cartuchos sem a necessidade de executar diversos comandos ou navegar por diferentes processos. A solução foi desenvolvida com uma estrutura enxuta, aproveitando a integração direta entre o Natural e o Adabas. Dessa forma, é possível realizar consultas de forma praticamente imediata, utilizando os próprios recursos disponíveis no ambiente de grande porte. Mais do que criar uma aplicação complexa, a proposta é demonstrar como uma ferramenta relativamente simples pode resolver uma necessidade operacional do dia a dia. O Natural permite construir interfaces bastante funcionais, enquanto o Adabas oferece o suporte necessário para armazenar e consultar essas informações com excelente desempenho. Ao longo deste post, apresento a arquitetura inicial da solução, os principais programas envolvidos, a estrutura das consultas, o fluxo de navegação e a forma como o sistema foi organizado para facilitar o trabalho da equipe responsável pela administração das mídias. A ideia é mostrar, na prática, que mesmo utilizando tecnologias consideradas antigas, como Natural e Adabas, ainda é possível desenvolver soluções rápidas, eficientes e perfeitamente adequadas às necessidades atuais de um ambiente mainframe.
Programa Natural
Resultado da pesquisa
Programa Natural
Resultado
Programa Natural
Resultado
Programa Natural
Leia Mais
AADPA000
Tela do menu inicial
------------------------------------------------------------------------------
DBAP055 SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS AADPA000
09:41:53 ------------------------------------------------------------ 13/08/26
RMM
------------------------------------------------------------------------------
01 - Pesquisa de Cartucho
02 - Pesquisa de Label
03 - Pesquisa de Data
04 - Pesquisa de OWNER
------------------------------------------------------------------------------
DIGITE A OPCAO DESEJADA 0__
TECLE PF3 PARA SAIR
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
MENU
Programa Natural
* ==================================================================== *
* FUNCAO: SUBMETE JOBS PARA PESQUISAR OS CARTUCHOS DO RMM *
* AUTOR: CLAUDEMAR MARTINS DE SA *
* CRIADO: 01/12/2022 *
* ==================================================================== *
DEFINE DATA LOCAL
1 #ARQ1 (N3)
END-DEFINE
* ==================================================================== *
FORMAT KD=ON
SET CONTROL 'U'
* SET KEY PF3 = 'AABP300M' NAMED 'MENU'
REPEAT
* ==================================================================== *
INPUT (IP=OFF SG=OFF AD=MIL'_')
02T '-' (78)
/ 02T *USER
20T 'SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS' (I)72T *PROGRAM
/ 02T *TIME(AL=8) 11T '-' (60) 72T *DATE
/72T *LIBRARY-ID
//
02T '-' (78) /
29T '01 - Pesquisa de Cartucho ' (I) /
29T '02 - Pesquisa de Label ' (I) /
29T '03 - Pesquisa de Data ' (I) /
29T '04 - Pesquisa de OWNER ' (I) /
29T '-' (78)
//27T'DIGITE A OPCAO DESEJADA'(YE) #ARQ1(AD=MIL'_')
//30T'TECLE PF3 PARA SAIR'(I)
* ==================================================================== *
DECIDE ON FIRST VALUE OF #ARQ1
VALUE 01 FETCH 'AADPA001'
VALUE 02 FETCH 'AADPA002'
VALUE 03 FETCH 'AADPA003'
VALUE 04 FETCH 'AADPA004'
NONE VALUE REINPUT ' OPCAO INVALIDA'
END-DECIDE
* ==================================================================== *
END
AADPA002
Pesquisa pelo nome do dataset (label) do cartucho;
------------------------------------------------------------------------------
DBAP055 SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS AADPA002
09:55:43 ------------------------------------------------------------ 13/08/26
PESQUISA LABEL DE CARTUCHO RMM
------------------------------------------------------------
LABEL : RMM_________________________________________
------------------------------------------------------------
TECLE PF3 PARA SAIR
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
EXIT
Resultado da pesquisa
09:56:29 CARTUCHO DO TLMS 13/08/26
DATASET CART OWNER DATA SEQ
--------------------------------------------- ------ -------- ---------- ---
RMM.C.BACKUP.DIARIO.G0078V00 VC1108 01/10/2025 1
RMM.C.BACKUP.DIARIO.G0080V00 VC1110 03/10/2025 1
RMM.C.BACKUP.DIARIO.G0081V00 VC1029 04/10/2025 1
RMM.C.BACKUP.DIARIO.G0082V00 VC1121 05/10/2025 1
RMM.C.BACKUP.DIARIO.G0083V00 VC1125 06/10/2025 1
RMM.C.BACKUP.DIARIO.G0084V00 VC1133 07/10/2025 1
RMM.C.BACKUP.DIARIO.G0085V00 VC1135 08/10/2025 1
RMM.C.BACKUP.DIARIO.G0086V00 VC1058 09/10/2025 1
RMM.C.BACKUP.DIARIO.G0087V00 VC1137 10/10/2025 1
RMM.C.BACKUP.DIARIO.G0088V00 VC1064 11/10/2025 1
RMM.C.BACKUP.DIARIO.G0089V00 VC1140 12/10/2025 1
RMM.C.BACKUP.DIARIO.G0090V00 VC1142 13/10/2025 1
RMM.C.BACKUP.DIARIO.G0091V00 VC1147 14/10/2025 1
RMM.C.BACKUP.DIARIO.G0092V00 VC1153 15/10/2025 1
RMM.C.BACKUP.DIARIO.G0093V00 VC0987 16/10/2025 1
RMM.C.BACKUP.DIARIO.G0094V00 VC1075 17/10/2025 1
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
EXIT
Programa Natural
* -------------------------------------------------------------------- *
* FUNCAO .: PESQUISA CARTUCHO NO TLMS USANDO O NOME DO LABEL *
* AUTOR ..: CLAUDEMAR MARTINS *
* -------------------------------------------------------------------- *
DEFINE DATA
LOCAL
01 #DIRECTION (A1) INIT <'D'> /* 'A' = ASCENDING
01 MONITORAMENTO VIEW OF AAFU-FITOTECA-RMM
02 AAF-DATASET
02 AAF-CARTUCHO
02 AAF-OWNER
02 AAF-DATA
02 AAF-SEQUENCIA
01 #LABEL (A44) /* INIT <'ADABAS.C.SAVE.DB240.MES.G0199V00'>
* -------------------------------------------------------------------- *
END-DEFINE
FORMAT LS=180 PS=20 KD=ON
* -------------------------------------------------------------------- *
FORMAT KD=ON
SET KEY
PF3 = PGM NAMED 'EXIT'
* -------------------------------------------------------------------- *
INPUT (IP=OFF SG=OFF AD=MIL'_')
02T '-' (78)
/ 02T *USER
20T 'SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS' (I)
72T *PROGRAM
/ 02T *TIME(AL=8)
11T '-' (60)
72T *DATE
/ 28T 'PESQUISA LABEL DE CARTUCHO'(I) 72T *LIBRARY-ID /
* -------------------------------------------------------------------- *
/
11T '-' (60)
/
/14T' LABEL :' #LABEL (AD=MIL'_')
//
11T '-' (60)
* -------------------------------------------------------------------- *
//30T'TECLE PF3 PARA SAIR' (I)
* -------------------------------------------------------------------- *
IF *PF-KEY EQ 'PF3'
FETCH 'AADPA000'
END-IF
* -------------------------------------------------------------------- *
READ MONITORAMENTO BY AAF-DATASET = #LABEL
* -------------------------------------------------------------------- *
DISPLAY
'DATASET' AAF-DATASET
'CART' AAF-CARTUCHO
'OWNER' AAF-OWNER
'DATA' AAF-DATA
'SEQ' AAF-SEQUENCIA
* -------------------------------------------------------------------- *
WRITE TITLE LEFT JUSTIFIED
*TIME(AL=8) 27T 'CARTUCHO DO RMM' (I) 71T *DATE
AT END OF PAGE
INPUT ' '
IF *PF-KEY EQ 'PF3'
FETCH 'AADPA000'
END-IF
END-ENDPAGE
* -------------------------------------------------------------------- *
END-READ
FETCH 'AADPA002'
END
AADPA003
Busca pelo dia, interessante pra gente saber o que rodou em um dia especifico no mainframe
------------------------------------------------------------------------------
DBAP055 SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS AADPA003
10:02:30 ------------------------------------------------------------ 13/08/26
PESQUISA CARTUCHO - DATA DE GRAVACAO RMM
------------------------------------------------------------
DATA DE GRAVACAO .....: 13/08/2026
------------------------------------------------------------
TECLE PF3 PARA SAIR
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
EXIT
Resultado
MORE
10:03:43 CARTUCHO DO TLMS 13/08/26
DATASET CART DONO DATA SEQ
--------------------------------------------- ------ -------- ---------- ---
AAA.C.ACCOUNT.DIARIO.G4307V00 VC1393 AAASMFDB 13/08/2026 1
AAB.C.RACF.BACKUP.DIARIO.G0446V00 VC1155 AABSRA02 13/08/2026 1
ADABAS.C.DB240.PLOG.G8182V00 VC1360 ADABA01 13/08/2026 1
ADABAS.C.SAVE.DB240.DIA.G5628V00 VC1189 ADABA01 13/08/2026 1
ADABAS.C.SAVE.DB240.DIA.G5628V00 VC1286 ADABA01 13/08/2026 1
ADABAS.C.SAVE.DB240.DIA.G5628V00 VC1356 ADABA01 13/08/2026 1
ADABAS.C.SAVE.DB240.DIA.G5628V00 VC1357 ADABA01 13/08/2026 1
ADABAS.C.SAVE.DB240.DIA.G5628V00 VC1358 ADABA01 13/08/2026 1
ADABAS.C.SAVE.DB240.DIA.G5628V00 VC1359 ADABA01 13/08/2026 1
ADABAS.C.SAVE.DB240.DIA.G5628V00 VC1392 ADABA01 13/08/2026 1
RMM.C.BACKUP.DIARIO.G0396V00 VC1452 RMM00010 13/08/2026 1
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
MENU
Programa Natural
* -------------------------------------------------------------------- *
* FUNCAO .: PESQUISA CARTUCHO CRIADOS NO DIA ESPECIFICADO *
* AUTOR ..: CLAUDEMAR MARTINS *
* -------------------------------------------------------------------- *
DEFINE DATA
LOCAL
01 MONITORAMENTO VIEW OF AAFU-FITOTECA-RMM
02 AAF-DATASET
02 AAF-CARTUCHO
02 AAF-OWNER
02 AAF-DATA
02 AAF-SEQUENCIA
01 #DIA (A10)
* -------------------------------------------------------------------- *
END-DEFINE
FORMAT LS=80 PS=20
* -------------------------------------------------------------------- *
MOVE *DAT4E TO #DIA
* -------------------------------------------------------------------- *
FORMAT KD=ON
SET KEY
PF3 = PGM NAMED 'EXIT'
* -------------------------------------------------------------------- *
INPUT (IP=OFF SG=OFF AD=MIL'_')
02T '-' (78)
/ 02T *USER
20T 'SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS' (I)
72T *PROGRAM
/ 02T *TIME(AL=8)
11T '-' (60)
72T *DATE
/ 22T 'PESQUISA CARTUCHO - DATA DE GRAVACAO'(I) 72T *LIBRARY-ID /
* -------------------------------------------------------------------- *
/
11T '-' (60)
/
/12T' DATA DE GRAVACAO .....:' #DIA (AD=MIL'_')
//
11T '-' (60)
* -------------------------------------------------------------------- *
//30T'TECLE PF3 PARA SAIR' (I)
* -------------------------------------------------------------------- *
IF *PF-KEY EQ 'PF3'
FETCH 'AADPA000'
END-IF
* -------------------------------------------------------------------- *
* READ MONITORAMENTO BY AAF-DSN = #DIA
* -------------------------------------------------------------------- *
FIND MONITORAMENTO WITH AAF-DATA = #DIA
SORTED BY AAF-DATASET /* AAF-VOLSEQ /* DESCENDING
IF NO RECORDS FOUND
REINPUT 'NAO TEM CARTUCHO GRAVADO NESTE DIA' /* MARK #CARTUCHO
END-NOREC
* -------------------------------------------------------------------- *
DISPLAY
'DATASET' AAF-DATASET
'CART' AAF-CARTUCHO
'DONO' AAF-OWNER
'DATA' AAF-DATA
'SEQ' AAF-SEQUENCIA
* -------------------------------------------------------------------- *
WRITE TITLE LEFT JUSTIFIED
*TIME(AL=8) 27T 'CARTUCHO DO TLMS' (I) 71T *DATE
AT END OF PAGE
INPUT ' '
IF *PF-KEY EQ 'PF3'
FETCH 'AADPA000'
END-IF
END-ENDPAGE
* -------------------------------------------------------------------- *
END-FIND
FETCH 'AADPA003'
END
AADPA004
Pesquisando quem é o Owner
------------------------------------------------------------------------------
DBAP055 SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS AADPA004
10:07:34 ------------------------------------------------------------ 13/08/26
PESQUISA OWNER RMM
------------------------------------------------------------
DIGITE O OWNER ..: RMM_____
------------------------------------------------------------
TECLE PF3 PARA SAIR
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
EXIT
Resultado
10:07:51 PESQUISANDO OS OWNER DO RMM 13/08/26
ALA.C.AUT.L.BKP1.R111997.COM0 CT0774 RMM 08/10/1998 2
ALA.C.AUT.L.BKP2.R111997.COM0 CT0774 RMM 08/10/1998 3
ALA.C.AUT.L.BKP1.R131997.FOL0 CT0774 RMM 08/10/1998 4
ALA.C.AUT.L.BKP2.R131997.FOL0 CT0774 RMM 08/10/1998 5
ALA.C.AUT.L.BKP1.R131997.COM1 CT0774 RMM 08/10/1998 6
ALA.C.AUT.L.BKP2.R131997.COM2 CT0774 RMM 08/10/1998 7
ALA.C.AUT.L.BKP1.R121997.FOL2 CT0774 RMM 08/10/1998 8
ALA.C.AUT.L.BKP2.R121997.FOL2 CT0774 RMM 08/10/1998 9
ALA.C.AUT.L.BKP3.R121997.FOL2 CT0774 RMM 08/10/1998 10
ALA.C.AUT.L.BKP1.R121997.COM0 CT0774 RMM 08/10/1998 11
ALA.C.AUT.L.BKP2.R121997.COM0 CT0774 RMM 08/10/1998 12
ADABAS.C.SAVE.RH.DATA.ALL210.MES.G0018V00 CT0775 RMM 13/11/2005 1
ALA.C.DIR.L.BKP.A1997 CT0777 RMM 07/04/2010 1
ALA.C.DIR.L.BKP2.R061997.PRE0.SEFOP.PG02 CT0777 RMM 07/04/2010 2
ALA.C.DIR.L.BKP3.R061997.PRE0.SEFOP.PG02 CT0777 RMM 07/04/2010 3
AAH.C.SAVE.F2324.G0010V00 CT0778 RMM 17/01/2001 1
ALA.C.DIR.S.BKP1.R011998.FOL2 CT0779 RMM 10/03/1998 1
ALA.C.DIR.S.BKP2.R011998.FOL2 CT0779 RMM 10/03/1998 2
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
EXIT
Programa Natural
* -------------------------------------------------------------------- *
* FUNCAO .: PESQUISA O OWNER NO TLMS USANDO O NUMERO DO CARTUCHO *
* AUTOR ..: CLAUDEMAR MARTINS DE SA *
* -------------------------------------------------------------------- *
DEFINE DATA
LOCAL
01 TLMS VIEW OF AAFU-FITOTECA-RMM
02 AAF-DATASET
02 AAF-CARTUCHO
02 AAF-OWNER
02 AAF-DATA
02 AAF-SEQUENCIA
01 #CARTUCHO (A8)
* -------------------------------------------------------------------- *
END-DEFINE
FORMAT LS=80 PS=20
* -------------------------------------------------------------------- *
FORMAT KD=ON
SET KEY
PF3 = PGM NAMED 'EXIT'
* -------------------------------------------------------------------- *
INPUT (IP=OFF SG=OFF AD=MIL'_')
02T '-' (78)
/ 02T *USER
20T 'SUPERINTENDENCIA DE SISTEMAS CORPORATIVOS' (I)
72T *PROGRAM
/ 02T *TIME(AL=8)
11T '-' (60)
72T *DATE
/
32T 'PESQUISA OWNER'(I) 72T *LIBRARY-ID /
/
11T '-' (60)
/
/15T' DIGITE O OWNER ..:'#CARTUCHO (AD=MIL'_')
//
11T '-' (60)
/
/30T'TECLE PF3 PARA SAIR' (I)
IF *PF-KEY EQ 'PF3'
FETCH 'AADPA000'
END-IF
* -------------------------------------------------------------------- *
* READ MONITORAMENTO BY AAF-CARTUCHO = #CARTUCHO
* -------------------------------------------------------------------- *
FIND TLMS WITH AAF-OWNER = #CARTUCHO
* -------------------------------------------------------------------- *
WRITE
AAF-DATASET
AAF-CARTUCHO
AAF-OWNER
AAF-DATA
AAF-SEQUENCIA
* -------------------------------------------------------------------- *
WRITE TITLE LEFT
*TIME(AL=8) 26T 'PESQUISANDO OS OWNER DO RMM' (I) 71T *DATE
/
AT END OF PAGE
INPUT ' '
IF *PF-KEY EQ 'PF3'
FETCH 'AADPA000'
END-IF
END-ENDPAGE
* -------------------------------------------------------------------- *
END-FIND
FETCH 'AADPA004'
END
View
Esses programas usaram a view abaixo 09:31:20 ***** NATURAL LIST COMMAND ***** 13/08/2026
User DBAP055 - List DDM AAFU-FITOTECA-RMM - Library RMM
DDM DBID 0 DDM FNR 433 VSAM Name Default Sequence Page 1
T L DB Name F Leng S D Remark
- - -- -------------------------------- - ---- - - ------------------------
* Generation started
* at 2025-12-29 09:09:11
* by user DBAP055
*
1 AA AAF-DATASET A 45 N D
1 AB AAF-CARTUCHO A 6 N D
1 AC AAF-OWNER A 8 N D
1 AD AAF-DATA A 10 N D
1 AE AAF-SEQUENCIA A 3 N
1 AF AAF-LIBERADO A 7 N
End of List.
Command ===>
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
Help Print Exit Short -- - + ++ Canc
Carga do RMM
Esse foi o JCL utilizado para fazer a carga dos dados do RMM para o Adabas//AADPA001 JOB (AABS,DIST),CLAUDEMAR,CLASS=S,MSGCLASS=A,USER=AASUB06 //*UQ ALLOW //* ---------------------------------------------------------------- //* LISTAR OS CARTUCHOS DO RMM E SALVAR NO BANCO ADABAS //* ---------------------------------------------------------------- // SET DSN1=AAF.S.TSSUSER.CLAU // SET DSN2=AAF.S.BKP242 //* ---------------------------------------------------------------- //* DELETANDO REGISTROS DO FILE ANTES DE CARREGAR - 240 //* ---------------------------------------------------------------- //STEP0105 EXEC NATURAL,PARM1='SYS=P,MT=0,STACK=(LOGON RMM)' //SYSPRINT DD SYSOUT=A //CMWKF01 DD SYSOUT=A //CMPRT01 DD DUMMY //SYSIN DD * AADPA005 //* ---------------------------------------------------------------- //* GERANDO DADOS DOS CARTUCHOS DO RMM //* ---------------------------------------------------------------- //STEP0205 EXEC PGM=IKJEFT01,REGION=4096K //SYSTSPRT DD DISP=SHR,DSN=&DSN1 //SYSPRINT DD SYSOUT=A //SYSTSIN DD * RMM SEARCHDATASET OWNER(*) SINCE(91073) LIMIT(*) //* ---------------------------------------------------------------- //* FILTRO/CLASSFICACAO DOS CARTUCHOS RETIDOS //* ---------------------------------------------------------------- //STEP0305 EXEC PGM=SORT //SYSPRINT DD SYSOUT=Z //SYSOUT DD SYSOUT=Z //SORTIN DD DISP=SHR,DSN=&DSN1 //SORTOUT DD DISP=SHR,DSN=&DSN2 //SORTWK1 DD DSN=&&TEMP01,DISP=(NEW,PASS), // SPACE=(CYL,2),UNIT=SYSDA, // DCB=(LRECL=133,BLKSIZE=1330,RECFM=FBA) //* -------------------------------------------------------------- //SYMNAMES DD * LABEL;1,46,CH CT;47,2,CH CARTUCHO;49,4,CH DATA;63,10,CH SEQ;75,4,CH //SYSIN DD * SORT FIELDS=(CT,A,CARTUCHO,A,75,4,UFF,A) INCLUDE COND=(CT,EQ,C'CT',OR,CT,EQ,C'TP',OR,CT,EQ,C'VC') /* //* --------------------------------------------------------------- //* ICEGENER PARA A SYSOUT //* --------------------------------------------------------------- //STEP0405 EXEC PGM=ICEGENER //SYSPRINT DD SYSOUT=A //SYSUT1 DD DISP=SHR,DSN=&DSN2 //SYSUT2 DD SYSOUT=A //SYSIN DD DUMMY //* ---------------------------------------------------------------- //* GRAVANDO NO FILE 433 BANCO 240 //* ---------------------------------------------------------------- //STEP0505 EXEC NATURAL,PARM1='SYS=P,MT=0,STACK=(LOG RMM)' //CMWKF01 DD DISP=SHR,DSN=&DSN2 //CMPRINT DD SYSOUT=A //CMPRT01 DD SYSOUT=A,HOLD=YES //SYSIN DD * RMM0003 /*
AADPA005
Limpando os dados antes de fazer a carga no file onde estão os dados do RMM no Adabas* -------------------------------------------------------------------- *
* FUNCAO: LIMPAR OS DADOS DO FILE 433 DO ADABAS ANTES DA RECARGA *
* AUTOR : CLAUDEMAR MARTINS DE SA *
* -------------------------------------------------------------------- *
DEFINE DATA LOCAL
01 RMM VIEW OF AAFU-FITOTECA-RMM
02 AAF-DATASET /* CAMPO APENAS PARA REFERENCIA NA VIEW
01 #TOTAL-DELETED (N7)
01 #CTR-COMMIT (N7)
END-DEFINE
* -------------------------------------------------------------------- *
* LER TODOS OS REGISTROS DO ARQUIVO *
* -------------------------------------------------------------------- *
READ RMM BY ISN
DELETE (0140)
ADD 1 TO #TOTAL-DELETED
ADD 1 TO #CTR-COMMIT
* -------------------------------------------------------------------- *
* QUANDO CHEGAR EM 500, ZERA O CONTADOR E FAZ O COMMIT
* -------------------------------------------------------------------- *
IF #CTR-COMMIT GE 500
END TRANSACTION
RESET #CTR-COMMIT
END-IF
END-READ
END TRANSACTION
* -------------------------------------------------------------------- *
WRITE 'PROCESSAMENTO CONCLUIDO.'
WRITE 'TOTAL DE REGISTROS DELETADOS:' #TOTAL-DELETED
END
RMM0003
Programa que faz a carga dos dados do RMM que estão em um dataset e grava em um file Adabas* -------------------------------------------------------------------- *
* FUNCAO: GRAVANDO OS DADOS DO RMM PARA UM FILE ADABAS
* AUTOR : CLAUDEMAR MARTINS
* -------------------------------------------------------------------- *
DEFINE DATA LOCAL
01 RMM VIEW OF AAFU-FITOTECA-RMM
02 AAF-DATASET
02 AAF-CARTUCHO
02 AAF-OWNER
02 AAF-DATA
02 AAF-SEQUENCIA
* -------------------------------------------------------------------- *
01 #DADOS-GENERICOS (A79)
01 REDEFINE #DADOS-GENERICOS
02 FILLER 1X
02 #DSN (A44)
02 FILLER 1X
02 #VOLUME (A06)
02 FILLER 1X
02 #OWNER (A08)
02 FILLER 1X
02 #CREATE_DATE (A11)
02 REDEFINE #CREATE_DATE
03 #DIA (A02)
03 #SEPARATOR1 (A01)
03 #MES (A02)
03 #SEPARATOR2 (A01)
03 ANO (A04)
02 FILLER 1X
02 #SEQ (N05)
END-DEFINE
* -------------------------------------------------------------------- *
* GRAVANDO OS DADOS
* -------------------------------------------------------------------- *
READ WORK FILE 1 #DADOS-GENERICOS
* -------------------------------------------------------------------- *
IF #SEPARATOR1 EQ '/'
AAF-DATASET := #DSN
AAF-CARTUCHO := #VOLUME
AAF-OWNER := #OWNER
AAF-DATA := #CREATE_DATE
AAF-SEQUENCIA := #SEQ
END-IF
* -------------------------------------------------------------------- *
* GRAVAR NO BANCO DE DADOS
* -------------------------------------------------------------------- *
STORE RMM
END TRANSACTION
END-WORK
END



