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.

