Probado y tampoco  :(
El fichero viejo proviene de otro AS, y se ha restaurado la biblioteca con 
RSTLIB
Salut



Pedro Pinedo <[email protected]> 
Enviado por: [email protected]
21/05/2010 08:05
Por favor, responda a
"forum.help400" <[email protected]>


Para
"forum.help400" <[email protected]>
cc

Asunto
RE: mover registro entre 2 ficheros






Saca el borrado del fichero viejo de la subrutina y ponlo en el ciclo de 
lectura del fichero viejo después de la llamada a la subrutina.
Farqtdatmp UF   e           K disk    Rename(Rarqtdatmp:Rviejo) 
Farqtda    UF A e           K disk                               
D RegistreTMP   e DS                  Extname(arqtdaTMP)         
D Registre      e DS                  Extname(arqtda) Inz 
D                                     Prefix(NW)                 
*                                                               
/Free                                                           
  Setll *start Arqtdatmp; 
  Dow not %Eof(Arqtdatmp);                                     
  Read Arqtdatmp; 
     If %Eof(arqtdatmp);                                       
         Leave; 
     Endif; 
     Exsr Srproces; 
        Delete Rviejo; 
  Enddo;                                                       
*inlr=*on;                                                     
                                                               
Begsr Srproces; 
  Chain (aqemp:aqten:aqanys:aqset:aqmes:aqdia) Arqtda;       
  If Aqevento='2';//Elimino 
     If %Found; 
         Delete Rarqtda;                               
     Endif; 
  Else;//Afegeixo o actualitzo                         
         Registre=Registretmp;                         
     If Not %found; 
         Write Rarqtda; 
     Else;                                             
         Update Rarqtda;                               
     Endif; 
  Endif;                                               
                                      
Endsr;                                                 
/end-free 
Pedro Pinedo Hernandez
TIPO Programmer/Analyst & AS400
Analista-Programador
Departamento de Informática / IT Department
tfno.:+34 941 28 60 90 - 941 03 01 39
fax: +34 941 03 01 39 
Amcor Flexibles
T +34 941 286 090   F +34 941 207 543
www.amcor.com 


  

P Antes de imprimir, piensa en el MEDIO AMBIENTE P 

  


From: 
[email protected] 
To: 
"forum.help400" <[email protected]> 
Date: 
21/05/2010 08:02 
Subject: 
RE: mover registro entre 2 ficheros




Hola 
aqui hay dos cosas. 
cosa1: se tienen que leer todos los registros del primer archivo, que son 
iguales en todo excepto en el ultimo campo(se llama TRGEVENT) al segundo 
archivo. En el archivo 1 provienen de un trigger. 
Se accede al 2º archivo para ver si existen los registros y si existen se 
actualizan. Si no, se añaden. Pero en el caso de que el valor del TRGEVENT 
sea un 2(es el valor que le da el trigger al evento de supresión), 
evidentemente, para dejar el archivo2 igual a su original, se suprime el 
registro del archivo2. Hasta aqui todo correcto. 
cosa2: quiero eliminar el registro del archivo1, para en caso de que haya 
algun error, contar sólo con los registros que no se han actualizado. esto 
es lo que no consigo hacer. 
Salut 

Bernabé Estrada <[email protected]> 
Enviado por: [email protected] 
20/05/2010 18:35 

Por favor, responda a
"forum.help400" <[email protected]>



Para
"'forum.help400'" <[email protected]> 
cc

Asunto
RE: mover registro entre 2 ficheros










Segun veo el programa, unicamente borra el registro del Rarqtda si 
encuentra el registro en el Arqtda.  Supongo que dicho registro no esta en 
el segundo archivo porque ese es el archivo destino.  Solo supongo. 
 
From: [email protected] [
mailto:[email protected]] On Behalf Of Pedro Molina
Sent: Jueves, 20 de Mayo de 2010 10:25 a.m.
To: [email protected]
Subject: RE: mover registro entre 2 ficheros 
 
Strange thing amigou...

Una pregunta los nombre de registro se denominan igual? si no, no veo 
porque renombrarlos. El registro del archvio ARQTDATMP es Rarqdatmp y el 
de ARQTDA es Rarqtda es asi?

De esta forma?....

Farqtdatmp UP     e           K disk 
Farqtda       UF A e           K disk                               
D RegistreTMP   e DS                  Extname(arqtdaTMP)         
D Registre          e DS                  Extname(arqtda) Inz 
D                                                Prefix(NW)  
*                                                               
/Free                                                           
                                               
  Chain (aqemp:aqten:aqanys:aqset:aqmes:aqdia) Arqtda;       
  If Aqevento='2';//Elimino 
     If %Found; 
         Delete Rarqtda;                               
     Endif; 
  Else;//Afegeixo o actualitzo                         
         Registre=Registretmp;                         
     If Not %found; 
         Write Rarqtda; 
     Else;                                             
         Update Rarqtda;                               
     Endif; 
  Endif;                                               
  Delete Rarqdatmp ;                                       
Endsr;                                                 
/end-free   





To: [email protected]
Subject: RE: mover registro entre 2 ficheros
Date: Thu, 20 May 2010 17:30:31 +0200
From: [email protected]

hola 
Si lo pongo como primario, tanto input como update, sólo me lee un 
registro, activa el *LR  y se para el proceso. Igualmente no borra el 
registro del viejo. 
no sé si es por cómo tengo definidos los registros. El caso es que los dos 
ficheros son iguales excepto el ultimo campo. El viejo proviene de un 
trigger y el ultimo campo indica el tipo de evento que ha provocado la 
grabación. Si es 2(borrado) accedo al nuevo y si lo encuentra lo borra, si 
es 1 o 3 lo actualiza o lo escribe, pero despues me gustaria eliminarlo 
del viejo para en caso de que haya un error saber qué registros me quedan 
por procesar. 
Salut 

Pedro Molina <[email protected]> 
Enviado por: [email protected] 20/05/2010 17:22 


Por favor, responda a
"forum.help400" <[email protected]>



Para
<[email protected]> 
cc

Asunto
RE: mover registro entre 2 ficheros


 










Hola.

Si vas a procesar todo el archivo, porque no pones el achivo viejo como 
Update primario? yo lo he hecho así. 





To: [email protected]
Subject: mover registro entre 2 ficheros
Date: Thu, 20 May 2010 11:01:12 +0200
From: [email protected]

Hola Foro. Tengo un problema en lo que técnicalente sería 'mover' un 
registro entero entre dos ficheros. Me explico: 
tengo el fichero A con su registro y quiero copiarlo en el fichero B que 
es exactamente igual, excepto el ultimo campo, y luego eliminarlo del A. 
He definido el programa de la siguiente forma que veis abajo, pero el caso 
es que lo copia bien, pero no me borra el registro del primer fichero, y 
no me da errores.  Cómo lo puedo hacer? 
Gracias 
Farqtdatmp UF   e           K disk    Rename(Rarqtdatmp:Rviejo) 
Farqtda    UF A e           K disk                               
D RegistreTMP   e DS                  Extname(arqtdaTMP)         
D Registre      e DS                  Extname(arqtda) Inz 
D                                     Prefix(NW)                 
*                                                               
/Free                                                           
  Setll *start Arqtdatmp; 
  Dow not %Eof(Arqtdatmp);                                     
  Read Arqtdatmp; 
     If %Eof(arqtdatmp);                                       
         Leave; 
     Endif; 
     Exsr Srproces; 
  Enddo;                                                       
*inlr=*on;                                                     
                                                               
Begsr Srproces; 
  Chain (aqemp:aqten:aqanys:aqset:aqmes:aqdia) Arqtda;       
  If Aqevento='2';//Elimino 
     If %Found; 
         Delete Rarqtda;                               
     Endif; 
  Else;//Afegeixo o actualitzo                         
         Registre=Registretmp;                         
     If Not %found; 
         Write Rarqtda; 
     Else;                                             
         Update Rarqtda;                               
     Endif; 
  Endif;                                               
  Delete Rviejo;                                       
Endsr;                                                 
/end-free                                                 






Connect to the next generation of MSN Messenger  Get it now! 
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L. 

 





Invite your mail contacts to join your friends list with Windows Live 
Spaces. It's easy! Try it!
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L. [attachment "attkgg6y.gif" 
deleted by Pedro Pinedo/Logrono/AFE] [attachment "attzynfy.gif" deleted by 
Pedro Pinedo/Logrono/AFE] 
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L. 


______________________________________________________

Amcor - Creating a new world of packaging
______________________________________________________

CAUTION - This message may contain privileged and confidential information 
intended only for the use of the addressee named above. If you are not the 
intended recipient of this message you are hereby notified that any use, 
dissemination, distribution or reproduction of this message is prohibited. 
If you have received this message in error please notify Amcor 
immediately. Any views expressed in this message are those of the 
individual sender and may not necessarily reflect the views of Amcor .
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.

<<image/gif>>

____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.

Responder a