Encontrou um código essencial no GitHub da Software AG e precisa levá-lo para o seu ambiente Natural/Adabas? Se o programa for curto, o "copiar e colar" resolve. No entanto, quando lidamos com fontes de 500 linhas ou mais, o processo manual torna-se arriscado e ineficiente.
Para garantir que o objeto seja catalogado, compilado e executado corretamente sem perda de dados, o Natural exige um processo formal de importação. Abaixo, detalhamos as rotas mais seguras para realizar essa transição, focando especialmente no uso do SYSTRANS.
Para que o utilitário SYSTRANS processe com sucesso os programas que estão no seu notebook, não basta apenas ter o código fonte; é necessário garantir que o arquivo esteja formatado abaixo
A mágica esta no começo D01NAT4104F é onde vai estar a versão do natural - F esta falando que vamos carregar um programa - na linha de cima tem um F também - ao final tem que ir *E para passar ao SYSTRANS que o programa acabou
Feito o FTP para o mainframe
Ficou assim
JCL para rodar o SYSTRANS
Rodou ok
Carregou o programa A@CONVEM na biblioteca
Editando o programa, ele esta no nosso mainframe
DEFINE DATA LOCAl 1 CRUISE2VIEW VIEW OF CRUISE2 1 RECCOUNT (N5) END-DEFINE /* delete all records from CRUISE2 R1. READ CRUISE2VIEW DELETE COMPUTE RECCOUNT = RECCOUNT + 1 END-READ * END TRANSACTION * WRITE 'OK - all records deleted in CRUISE2:' RECCOUNT * END
Para que o utilitário SYSTRANS processe com sucesso os programas que estão no seu notebook, não basta apenas ter o código fonte; é necessário garantir que o arquivo esteja formatado abaixo
*H**ENAT4104202603301403199MVS/ESA 0AE B *C** SUPORTE2A@CONVEM F *D01NAT4104F SUPORTE2A@CONVEM DBA1055 DBA1055 6 13S *D02 2017020912011802017020912011800000003845 *D03MVS/ESA COMPLETENCF414 *D04 *S**0010DEFINE DATA LOCAl *S**00201 CRUISE2VIEW VIEW OF CRUISE2 *S**00301 RECCOUNT (N5) *S**0040END-DEFINE *S**0050* delete all records from CRUISE2 *S**0060R1. READ CRUISE2VIEW *S**0070 DELETE *S**0080 COMPUTE RECCOUNT = RECCOUNT + 1 *S**0090END-READ *S**0100* *S**0110END TRANSACTION *S**0120* *S**0130WRITE 'OK - all records deleted in CRUISE2:' RECCOUNT *S**0140* *S**0150END *E
A mágica esta no começo D01NAT4104F é onde vai estar a versão do natural - F esta falando que vamos carregar um programa - na linha de cima tem um F também - ao final tem que ir *E para passar ao SYSTRANS que o programa acabou
*H**ENAT4104202603301403199MVS/ESA 0AE B *C** SUPORTE2A@CONVEM F *D01NAT4104F SUPORTE2A@CONVEM DBA1055 DBA1055 6 13S
Feito o FTP para o mainframe
claudemar@Claudemar:~$ cd Documentos claudemar@Claudemar:~/Documentos$ ftp 12.1.40.5 Connected to 12.1.40.5. 220-AAFFTP1 IBM FTP CS V1R8 at JES2, 16:58:21 on 2026-04-05. 220 Connection will close if idle for more than 15 minutes. Name (12.1.40.5:claudemar): DBA1055 331 Send password please. Password: 230 DBA01055 is logged on. Working directory is "DBA01055.". Remote system type is MVS. ftp> cd .. 250 "" is the working directory name prefix. ftp> ftp> ftp> put A@CONVEM.txt AAB.S.UNLOAD.DET2 local: A@CONVEM.txt remote: AAB.S.UNLOAD.DET2 229 Entering Extended Passive Mode (|||3115|) 125 Storing data set AAB.S.UNLOAD.DET2 100% |*************************************************************************************************************************************************************************************************| 852 7.88 MiB/s --:-- ETA 250 Transfer completed successfully. 852 bytes sent in 00:00 (13.37 KiB/s) ftp>
Ficou assim
R=00000001 DSN=AAB.S.UNLOAD.DET2 VOL=PRD908 UNIT=4579 ....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8....+....9....+....0....+....1....+....2....+....3.. *H**ENAT4104202603301403199MVS/ESA 0AE B *C** SUPORTE2A@CONVEM P *D01NAT4104P SUPORTE2A@CONVEM DBA1055 DBA1055 6 13S *D02 2017020912011802017020912011800000003845 *D03MVS/ESA COMPLETENCF414 *D04 *S**0010DEFINE DATA LOCAl *S**00201 CRUISE2VIEW VIEW OF CRUISE2 *S**00301 RECCOUNT (N5) *S**0040END-DEFINE *S**0050* delete all records from CRUISE2 *S**0060R1. READ CRUISE2VIEW *S**0070 DELETE *S**0080 COMPUTE RECCOUNT = RECCOUNT + 1 *S**0090END-READ *S**0100* *S**0110END TRANSACTION *S**0120* *S**0130WRITE 'OK - all records deleted in CRUISE2:' RECCOUNT *S**0140* *S**0150END *E COMPDS0400-D --- End of Data ---
JCL para rodar o SYSTRANS
//AABDNATB JOB (AACP,SCHD),MASTER,CLASS=S,MSGCLASS=A TYPRUN=HOLD //*UQ ALLOW //* ------------------------------------------------------------- //* TRANSFERENCIA PARA A BIBLIOTECA SUPORTE1 //* ESTE JOB COPIA PROGRAMAS DE UM ARQUIVO PS P/ UMA BIB. NATURAL //* ------------------------------------------------------------- //NATUNLD EXEC NATURAL,PARM1='SYS=D,MT=0,IM=D,INTENS=1' //CMWKF01 DD DSN=AAB.S.UNLOAD.DET2,DISP=OLD //CMPRINT DD SYSOUT=A //DADOS DD * L N|Y|Y|N|Y * Y MIGRACAO FIN /* //SYSIN DD * LOGON SYSTRANS MENU /*
Rodou ok
1Logon accepted to library SUPORTE2.
1NEXT LOGON SYSTRANS
1Function / CMD
DATA L
1
General Load Options
0User-Defined Conversion Table .... N (Y/N/F)
Report ........................... Y (Y/N)
Translate Sources to Upper Case .. N (Y/N)
Save Restart Information ......... N (Y/N)
Modify Library Names ............. N (Y/N)
0Use Entire Connection work file .. N (Y/N)
Convert Data Area Sources ........ N (Y/N)
DATA N|Y|Y|N|Y
1Objects to be loaded / CMD
DATA *
1
Load All Objects
0All objects on work file 1 will be loaded|
0Replace ............................ N (Y/N)
DATA Y
1
Modify Library Names
-Old Library Name ................. *
-Old Library Name ................. *
New Library Name ................. *_______
DATA MIGRACAO
119:12:56 ***** NATURAL SYSTRANS UTILITY ***** 2026-04-05
User AABDNATB - Load Objects -
0Object Object Src Vers. Target Date/Time of Op.- Remark
Name Type Cat Level Library Save System
-------- ----------- --- ------ -------- ---------------- -------- ------------
0A@CONVEM Program Src 4.1.4 MIGRACAO 2017-02-09 12:01 MVS/ESA Replaced
1PAG 2 26-04-05 19:12:56
0Objects loaded successfully
1Objects to be loaded / CMD
DATA FIN
119:12:56 ***** NATURAL SYSTRANS UTILITY ***** 2026-04-05
User AABDNATB - Load Objects -
Statistical Report of loaded Objects
Global Data Area ................. 0
Local Data Area .................. 0
Parameter Data Area .............. 0
Programs ......................... 1
Subprograms ...................... 0
Subroutines ...................... 0
Helproutines ..................... 0
Copycodes ........................ 0
Texts ............................ 0
Dialogs .......................... 0
Classes .......................... 0
Maps ............................. 0
Functions ........................ 0
0 Total Command Processors ......... 0
Total Natural Objects ............ 1
Total Predict Processing Rules ... 0
Total DDMs ....................... 0
Total Adabas FDTs ................ 0
Total Error Message Texts ........ 0
119:12:56 ***** NATURAL SYSTRANS UTILITY ***** 2026-04-05
User AABDNATB - Load Objects -
- Total Objects loaded ............. 1
-
*** TRANSFER Load Process has been terminated successfully ***
1NAT9995 Natural session terminated normally.
UQS0009 - END OF DATA SET.
Carregou o programa A@CONVEM na biblioteca
19:17:21 ***** NATURAL LIST COMMAND ***** 05/04/2026
User DBA1055 - LIST Objects in a Library - Library MIGRACAO
Cmd Name Type S/C SM Version User ID Date Time
--- @>_______ *__________ *__ * *______ *________ *__________ *________
__ A@CONVEM Program S S 4.1.04 DBA1055 2017-02-09 12:01:18
__ MIDELEPN Subprogram S/C S 4.1.04 DBA77057 2026-03-26 12:46:26
__ MIEXC7PN Program S/C S 4.1.04 DBA77057 2026-03-26 12:46:26
__ MIEXC8PN Program S/C S 4.1.04 DBA77057 2026-03-26 12:46:26
__ MIEXC9PN Program S/C S 4.1.04 DBA77057 2026-03-26 12:46:26
__ MIEX99PN Program S S 4.1.04 DBA77057 2026-03-25 21:36:24
__ MIINITNN Subprogram S/C S 4.1.04 DBA77057 2026-03-26 12:48:51
__ MIJOBAPN Program S S 4.1.04 DBA77057 2026-03-25 21:39:59
__ MIJOBFNN Program S S 4.1.04 DBA77057 2026-03-25 21:40:50
__ MIJOBIPN Program S S 4.1.04 DBA77057 2026-03-25 21:41:23
__ MITABJPN Program S S 4.1.04 DBA77057 2026-03-25 21:43:23
__ MITABPN Program S S 4.1.04 DBA77057 2026-03-25 21:44:25
__ MITABWPN Program S S 4.1.04 DBA77057 2026-03-25 21:45:28
__ MITAB2PN Program S S 4.1.04 DBA77057 2026-03-25 21:42:31
14 Objects found
Command ===>
Top of List.
Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
Help Print Exit Sort -- - + ++ > Canc
Editando o programa, ele esta no nosso mainframe
> > + Program A@CONVEM Lib MIGRACAO All ....+....1....+....2....+....3....+....4....+....5....+.Mode Structured. 0010 DEFINE DATA LOCAL 0020 1 CRUISE2VIEW VIEW OF CRUISE2 0030 1 RECCOUNT (N5) 0040 END-DEFINE 0050 * delete all records from CRUISE2 0060 R1. READ CRUISE2VIEW 0070 DELETE 0080 COMPUTE RECCOUNT = RECCOUNT + 1 0090 END-READ 0100 * 0110 END TRANSACTION 0120 * 0130 WRITE 'OK - all records deleted in CRUISE2:' RECCOUNT 0140 * 0150 END



0 comentários:
Enviar um comentário