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

Responder a