Perdona que no contestara antes, pero estaba muy liado.
La forma automatica de hacerlo seria la de trasformar los campos
empaquetados a numericos de tipo "S" con CHGPF.
300 ***********************************************************
400 A R DJE2
500 A ENTL 5P 0 COLHDG('LONGITUD' +
600 A 'ENTRADA')
300 ***********************************************************
400 A R DJE2
500 A ENTL 5S 0 COLHDG('LONGITUD' +
600 A 'ENTRADA')
Y despues:
CPYF FROMFILE(TS) TOFILE(TA) MBROPT(*REPLACE) FMTOPT(*NOCHK)
a un fichero de campos alfabeticos.
300 ***********************************************************
400 A R DJE2
500 A ENTL 5A COLHDG('LONGITUD' +
600 A 'ENTRADA')
Un saludo.
Analista-Programador
Departamento de Informática / IT Department
tfno.:+34 941 28 60 90 - 941 03 01 39 fax: +34 941 03 01 39
Pedro Pinedo
TIPO Programmer/Analyst & AS400
Amcor Flexibles Tobepal Logroño
Avda. Burgos, 67 Pol. Ind. San Lazaro E-26006 Logroño
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]>, "forum.help400"
<[email protected]>
Date:
10/02/2010 23:54
Subject:
Re: Cambio de Estructura de Archivo
Hola de nuevo, realmente es como dice Santiago, en la mayoría de los casos
los campos son empaquetados de 3,0 P, un amigo, Programador desde S/34 me
sugirió usar la Hoja I y definir aquí los campos que sufrieron el cambio y
mover solamente estos ya que los demás seran copiado automaticamente. Aquí
le dejo el programa.
*---------------------------------------------------------------
FCjtbtra if e Disk Rename(CjtbtraR:A_Cjtbtra) /*
Archivo actual
FCjtbtraB if a e Disk /* Archivo con los nuevos
cambios
*---------------------------------------------------------------
IA_Cjtbtra
I Tintra A_Tintra
I Titr01 A_Titr01
I Titr02 A_Titr02
I Titr03 A_Titr03
I Titr04 A_Titr04
*------------------------------------------------------------------
* Rutina Principal
*------------------------------------------------------------------
C Exsr Load_Datos
C Eval *InLr = *On
*------------------------------------------------------------------
* Load_Datos : Carga Datos Originales a Nueva Estructura
*------------------------------------------------------------------
c Load_Datos Begsr
c Read A_Cjtbtra
c Dow Not %Eof()
c Move A_Tintra Tintra /* del archivo
viejo al nuevo
c Move A_Titr01 Titr01
c Move A_Titr02 Titr02
c Move A_Titr03 Titr03
c Move A_Titr04 Titr04
c Write Cjtbtrar
c Clear Cjtbtrar
c Read A_Cjtbtra
c EndDo
C Endsr
Como pueden notar esto funciona perfectamente y me evita tener que mover
cada campo individual del archivo que por cierto tiene bastante campo
definido.
Gracias a todo y ojalá esto ayude en el futuro algunos de Ustedes
From: "Santiago G Martí" <[email protected]>
Sent: Wednesday, February 10, 2010 1:53 PM
To: "forum.help400" <[email protected]>
Subject: Re: Cambio de Estructura de Archivo
Hola Sonia,
¿Seguro que el CPYF *NOCHK te ha funcionado?
Si es así, es que los campos numéricos eran desempaquetados, lo cual no es
muy habitual.
En el ejemplo que plantea Wilfredo el Campo_1 era 3.0, es decir, de 3
dígitos, empaquetados ocupando 2 bytes, con lo cual al hacer el CPY el
nuevo Campo_1 recibiría estos 2 bytes, posiblemente ilegibles, más el
primer byte del Campo_2.
Saludos,
---------------------------
Santiago Martí
Dusen, S.A.
---------------------------
Sonia Ramírez
Castillo
rke.com> [email protected],
Enviado por: "forum.help400"
forum.help400-bou
[email protected] cc
os.es
Asunto
Re: Cambio de Estructura de Archivo
10/02/2010 15:00
Por favor,
responda a
"forum.help400"
stas.combios.es>
Hola Wilfredo
La única manera es con CPYF y *NOCHK, siempre que tengan la misma longitud
de fichero. El mando CHGPF no te funciona si los campos son claves...
Deberías decirnos cuales son los verdaderos campos, porque en el ejemplo
que has puesto, si tiene que funcionar. Y por supuesto si haces un
programa debería de funcionar, ya que los campos de unos de los ficheros
los tienes que renombrar porque son distintos. Hace poco, he hecho algo
parecido cambiando la clave de númerica a alfa, y lo que he hecho es crear
el fichero vacio con las DDS's nuevas y luego CPYF con *NOCHK (porque
tienen la misma longitud).
Un saludo
Sonia Ramírez
Técnica de Sistemas
Burke (Sotfware y Servicios)
> Gracias a todos por la ayuda, he intetado hacerlo con el CPYF y mueve
> datos no deseados, también lo hice con CHGPF y genera el error de 'Datos
> Decimales'
>
> He optado por hacer un programa Free donde creo una estructura de datos
de
> ambos archivos con la opción QUALIFIED luego con la función EVAL_CORR
> mover los datos, lamentablemente también genera datos no deseable y da
un
> error de datos decimales. La única solución es tratar de mover cada
campo
> individualmente.
>
> Gracias amigos.
>
> ----------------------------------------
>
> From: "Victor Almonacid"
> Sent: Tuesday, February 09, 2010 4:38 PM
> To: [email protected], "forum.help400"
>
> Subject: Re: Cambio de Estructura de Archivo
>
> El siguiente comando hace una copia de todos los registros de un archivo
> fisico a otro, moviendo el registro completo, sin considerar los campos
> individualmente...
>
> Es ideal cuando ambos registros son del mismo largo...en caso contrario
> hay que tener cuidado porque se puede truncar o rellenar con valores no
> deseados y ahí quizás conviene hacer un programa para mover campo a
> campo....
>
>
> CPYF FROMFILE(BIBLIOTECA/PFILEA) TOFILE(BIBLIOTECA/PFLIEB)
> MBROPT(*REPLACE) FMTOPT(*NOCHK)
>
>
> Espero te sirva
>
>
> From: Wilfredo Ramirez
> Sent: Tuesday, February 09, 2010 5:11 PM
> To: [email protected]
> Subject: Cambio de Estructura de Archivo
>
> Saludos amigos del Forum,
> a ver si alguien me da una idea o me pueda dar un ejemplo con este
> inconveniente que tengo. Resulta que la empresa donde laboro me ha
> asignado un proyecto el
> cual involucra alrededor de mil programas. Este consiste en cambiar la
> estructura de varios archivos físicos, Ejemplo,
> el PF Filea esta estructurado como sigue,
> Campo_1 3,0
> Campo_2 5A
> Campo_3 7,2
> Campo_4 3,0
>
> y la nueva estructura seria PF Fileb,
> Campo_1 3A
> Campo_2 5A
> Campo_3 7,2
> Campo_4 3A
>
> Despues de hacer esto cambio he ejecutado el comando CHGPF para que
asuma
> el nuevo cambio pero este genera un error de datos no compatible, he
> optado por hacer un
> un programa para mover campo a campo hacia la nueva estructura (tienen
los
> mismo nombre de campo), mi pregunta es si existe una una mejor manera de
> mover de
> forma conjunta todos los campos del archivo Filea al archivo Fileb, de
ser
> esto posible me pueden dar un ejemplo.
>
> Gracias a todos por toda la ayuda posible...
>
> Wilfredo Ramírez
> Outsourcing Externo
> Santo Domingo, Rep. Dominicana
>
> ----------------------------------------
>
> ____________________________________________________
> © Publicaciones Help400, S.L. - Todos los
> derechos reservados http://www.help400.es
> ----------------------------------------------------
> Para darte de baja visita la siguente URL:
> http://listas.combios.es/mailman/listinfo/forum.help400
>
> ____________________________________________________
> © Publicaciones Help400, S.L. - Todos los
> derechos reservados http://www.help400.es
> ----------------------------------------------------
> Para darte de baja visita la siguente URL:
> http://listas.combios.es/mailman/listinfo/forum.help400
____________________________________________________
© Publicaciones Help400, S.L. - Todos los
derechos reservados http://www.help400.es
----------------------------------------------------
Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400
____________________________________________________
© Publicaciones Help400, S.L. - Todos los
derechos reservados http://www.help400.es
----------------------------------------------------
Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400
____________________________________________________
© Publicaciones Help400, S.L. - Todos los
derechos reservados http://www.help400.es
----------------------------------------------------
Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400
______________________________________________________
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 .<<image/gif>>
____________________________________________________ © Publicaciones Help400, S.L. - Todos los derechos reservados http://www.help400.es ---------------------------------------------------- Para darte de baja visita la siguente URL: http://listas.combios.es/mailman/listinfo/forum.help400

