Me respondo yo mismo....


Continuando con las pruebas acabo de descubrir que si antes del CPYFROMIMPF
le fuerzo al fichero en el IFS el CCSID con:



   CHGATR     OBJ('/HOME/LLUISPS/ORDERS_CUSTOMER.CSV') +

                ATR(*CCSID) VALUE(1208)



Funciona todo correctamente.



Me quito un peso de encima, ya no sabía que más probar.



Muchas gracias Alex por tu ayuda.



Saludos cordiales



Lluís.





*De:* LLuis Segura [mailto:lseg...@puntoblanco.com]
*Enviado el:* dijous, 3 d’octubre de 2019 18:04
*Para:* 'forum.help400' <forum.help400@listas.combios.es>
*Asunto:* RE: Problemas subiendo ficheros por CPYFRMIMPF



Gracias por contestar Alex,



Si he probado con 1208, 1205 y con varios CCSID más, 1208 es el indicado
para UTF-8 pero al mirar los atributos con QSH del fichero en el IFS he
visto que el CCSID que me daba era el 1252.



Lo curioso del caso es que hago transferencias al revés de 1145 a 1208 con
CPYTOIMPF y me funciona perfecto, me deja un fichero delimitado como UTF-8
con todos los acentos y caracteres especiales.



He comprobado que si paso el CSV con un editor como notepad++  y lo
convierto a ANSI sube correctamente, pero es un paso que quiero ahorrar al
hacer todo el proceso vía este CL.



  PGM

  DCL        VAR(&CODI) TYPE(*CHAR) LEN(1) VALUE('2')

  DCL        VAR(&RMTSYSTEM) TYPE(*CHAR) +

               VALUE('xxx.xxx.xxx.xxx')



  CLRPFM     FILE(MC785PSFTO)

  CPYF       FROMFILE(SGACTL) TOFILE(*PRINT) OUTFMT(*HEX)

  OVRDBF     FILE(INPUT)  TOFILE(IVSAMOVEX/MC785PSFTI)

  OVRDBF     FILE(OUTPUT) TOFILE(IVSAMOVEX/MC785PSFTO)

  FTP        RMTSYS(&RMTSYSTEM)

  DLTOVR     FILE(INPUT)

  DLTOVR     FILE(OUTPUT)

  CALL       PGM(MC825) PARM(&CODI)

  CPYFRMIMPF +

               FROMSTMF('/home/lluisps/orders_customer.csv+

               ') TOFILE(IVSAMOVEX/CUSTOMERPS) +

               MBROPT(*REPLACE) FROMCCSID(1252) +

               RCDDLM(*LF) FLDDLM(';') RPLNULLVAL(*FLDDFT)



I este un ejemplo de lo que me deja en el fichero



 PAIS FACTURA

 España

 España

 España



Saludos.









*De:* forum.help400-boun...@listas.combios.es [mailto:
forum.help400-boun...@listas.combios.es] *En nombre de *Alex Martínez
*Enviado el:* dijous, 3 d’octubre de 2019 17:27
*Para:* forum.help400 <forum.help400@listas.combios.es>
*Asunto:* Re: Problemas subiendo ficheros por CPYFRMIMPF



Hola



Veamos, el ccsid para utf-8 es el 1208 y tu estás indicando que utilizas el
1252 (que es ASCII Windows, muy parecido al 819)



¿has probado con 1208?







El jue., 3 oct. 2019 a las 13:02, LLuis Segura (<lseg...@puntoblanco.com>)
escribió:

Buenos días a todos/as.



Estoy subiendo unos ficheros CSV desde una carpeta del IFS a ficheros
nativos de un IBM i que esta en versión 7.1.



Los ficheros estan codificados con UNIX LF y UTF-8  y al ejecutar el
CPYFRMIMPF con el FROMCCSID a 1252 y el  TOCCSID a *FILE para que use el de
sistema que es 1145 el problema es que se cambian los acentos, Ñ y
caracteres especiales por otros caracteres como “ó” y por la Ñ “ñ”.



He probado diferentes tipos de codigos CCSID tanto en el FROMCCSID como en
el TOCCSID pero parece que el sistema pasa totalmente de mi.



La unica manera que tengo de subir correctamente todos los datos es
cambiando los datos del CSV a ANSI entonces si suben correctamente todos
los caracteres especiales, pero tendria que hacer un proceso manual muy
tedioso dado que recupero estos ficheros en una CL via FTP.



He comprovado que la tabla que usa el fichero CSV en el IFS es la 1252
(comprobado con el QSH y mirando sus atributos).



¿ Puede ser que me falten las tablas de correspondencia 1252 a 1145 he
efectuado un WRKTBL y no veo, o no se ver, en ninguna biblioteca que esten
estas tablas ?

¿ Puede ser que me falten algunas PTF ?



Saludos a todos.



*Lluís Segura*



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

Responder a