quinta-feira, fevereiro 15, 2024

JCL para listar um Programa Fonte Natural sem Numeração de Linhas

Com a crescente tendência de migração de plataformas de alto custo para alternativas mais acessíveis e modernas, muitos analistas enfrentam o desafio de transpor a lógica de programas de um ambiente de mainframe para uma plataforma mais atualizada. Nesse contexto, a obtenção de uma cópia do programa em formato de texto torna-se uma etapa crucial para recriar a lógica na nova plataforma. A transição de sistemas legados para ambientes mais modernos é motivada por diversos fatores, incluindo redução de custos, maior flexibilidade e compatibilidade com tecnologias emergentes. No entanto, migrar programas de uma plataforma alta, como mainframes, para uma plataforma baixa, como servidores distribuídos, requer uma compreensão profunda da estrutura e da lógica subjacente dos programas originais. Ao obter uma cópia do programa em formato de texto de um programa do Natural, os analistas podem analisar o código-fonte de forma mais detalhada e acessível. Isso permite uma melhor compreensão da lógica de negócios implementada no programa original e facilita a identificação de possíveis pontos de ajuste e otimização durante o processo de migração. Além disso, o formato de texto oferece maior portabilidade e interoperabilidade entre diferentes plataformas de desenvolvimento. Uma vez que o código esteja disponível em formato de texto, ele pode ser facilmente importado e manipulado em uma ampla variedade de ambientes de desenvolvimento e ferramentas de edição, simplificando o processo de recriação da lógica na plataforma de destino. No entanto, é importante ressaltar que a migração de programas entre plataformas envolve mais do que simplesmente copiar e colar o código-fonte. É necessário realizar uma análise abrangente dos requisitos de negócios, identificar dependências de sistemas externos e adaptar a lógica do programa para se adequar ao ambiente de destino. Em resumo, a obtenção de uma cópia do programa em formato de texto é um passo fundamental no processo de migração de plataformas. Facilita a compreensão da lógica de negócios e permite uma transição mais suave e eficiente para ambientes de desenvolvimento modernos. Com as estratégias certas e uma abordagem cuidadosa, os analistas podem garantir uma migração bem-sucedida e aproveitar os benefícios das tecnologias mais recentes e acessíveis. Segue um exemplo de JCL para listar um programa fonte Natural que mostra a numeração das linhas:

MEMBER=CASSIM1  000020 REC SAVE:23.02.2023 09:59 BY   USERID DBA025  R=00000001
DSN=BIB.PRODUCAO.ADA                             LIB=TS VOL=DIS303 UNIT=1525 
....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
//DBAPNAT4 JOB (AAF,TSS),'DBA025',CLASS=S,MSGCLASS=A                         
//*UQ ALLOW                                                                     
//* ----------------------------------------------------------------            
//*                     LISTA OS PROGRAMAS DO NATURAL                       
//* ----------------------------------------------------------------            
//NATURAL  EXEC NATURAL,PARM1='SYS=D,MT=0,STACK=(LOGON SOURCE)'                 
//CMWKF01  DD SYSOUT=A                                                          
//CMWKF02  DD SYSOUT=A                                                          
//CMPRINT  DD SYSOUT=G                                                          
//SYSIN    DD *                                                                 
 L * A@ATUAEM
 L * A@CONVEM
FIN

Output é esse - O problema é que lista a numeração vem junto

1Logon accepted to library SOURCE.                                             
1NEXT L * A@ATUAEM                                                             
112:18:17  Program     A@ATUAEM Library SOURCE          User DBAPNAT4 2019-10-24
+          Program     A@ATUAEM         SOURCE               DBAPNAT4          
+          Program     A@ATUAEM         SOURCE               DBAPNAT4          
0010 ***                                                                     
0020 * FUNCAO DO PROGRAMA ... ATUALIZAR EMISSOR DE AUTO                      
0030 ***                                                                     
0040 DEFINE DATA                                                             
0050 LOCAL                                                                   
0060 1 #CONT                      (P9)                                       
0070 1 #IND                       (P9)                                       
0080 1 #TOT                       (P9)                                       
0090 1 #WK                        (A483)                                     
0100 1 REDEFINE #WK                                                          
0110   2 #ISN                     (N10)                                      
0120   2 FILLER                   473X                                       
0130 1 #RC                        (N1)                                       
0140 1 #EMI-NOVO                  (N2)                                       
0150 1 #AR-ID                     (A10)                                      
0160 1 REDEFINE #AR-ID                                                       
0170   2 #EMI                     (N2)                                       
0180   2 #NUM                     (N8)                                       
0190 1 #CIR-ID                    (A14)                                      
0200 1 REDEFINE #CIR-ID 
--------------------------------------------------------------------------------
OP=S CL=ALL IN=ALL JB=DBAPNAT4,04770 DS=1 SI=SO LR=1 LL=80 PP=0 DC= RL=999999  
AD=J DE= SC= PT= SQ=C RR=0 OC= SD=2000   24.10.2019, 12:18:22

É só rodar com o parametros NUMBERS OFF após listar o programa

MEMBER=CASSIM1  000015 REC SAVE:24.10.2019 12:26 BY   USERID DBA025  R=00000001
DSN=BIB.PRODUCAO.ADA                             LIB=TS VOL=DIS303 UNIT=1525   
....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
//DBAPNAT4 JOB (AAF,TSS),'DBA025',CLASS=S,MSGCLASS=A                        
//*UQ ALLOW                                                                    
//* ----------------------------------------------------------------           
//*          GRAVA EM UM DATA SET OS PROGRAMAS DO NATURAL                      
//* ----------------------------------------------------------------           
//NATURAL  EXEC NATURAL,PARM1='SYS=D,MT=0,STACK=(LOGON SOURCE)'                
//CMWKF01  DD SYSOUT=A                                                         
//CMWKF02  DD SYSOUT=A                                                         
//CMPRINT  DD SYSOUT=G                                                         
//SYSOUT   DD SYSOUT=A                                                         
//CMPRT01  DD SYSOUT=G                                                         
//SYSIN    DD *                                                                
L * A@ATUAEM NUMBERS OFF                                                       
L * A@CONVEM NUMBERS OFF                                                       
FIN                                                                            
/*

Resultado

1Logon accepted to library SOURCE.                                              
1NEXT L * A@ATUAEM NUMBERS OFF                                                  
108:04:19  Program     A@ATUAEM Library SOURCE          User DBAPNAT4 2024-02-15
+          Program     A@ATUAEM         SOURCE               DBAPNAT4           
+          Program     A@ATUAEM         SOURCE               DBAPNAT4           
 ***                                                                            
 * FUNCAO DO PROGRAMA ... ATUALIZAR EMISSOR DE AUTO                             
 ***                                                                            
 DEFINE DATA                                                                    
 LOCAL                                                                          
 1 #CONT                      (P9)                                              
 1 #IND                       (P9)                                              
 1 #TOT                       (P9)                                              
 1 #WK                        (A483)                                            
 1 REDEFINE #WK                                                                 
   2 #ISN                     (N10)                                             
   2 FILLER                   473X                                              
 1 #RC                        (N1)                                              
 1 #EMI-NOVO                  (N2)                                              
 1 #AR-ID                     (A10)                                             
 1 REDEFINE #AR-ID                                                              
--------------------------------------------------------------------------------
OP=S CL=ALL IN=ALL JB=DBAPNAT4,01709 DS=1 SI=SO LR=1 LL=80 PP=0 DC= RL=999999   
AD=J DE= SC= PT= SQ=C RR=0 OC= SD=2000   15.02.2024,  8:06:56  

0 comentários:

Enviar um comentário