Bueno, es un caso complicado de resolver. Ese churro de registro (al estilo de
DSPPFM) tiene varios inconvenientes:
1. Los signos.
2. Los campos empaquetados.
3. Las fechas.
4. Los campos nulos.
En estos casos yo opto por un programa de conversión que toma los datos del
IFS, directamente utilizando APIs o a través de mandatos CPYFRMSTMF. El
programa RPG valida que los tipos de datos concuerdan y los va traspasando uno
a uno todos los registros.
Siempre que he intentado algún traspaso directo siempre me he encontrado con
problemas, sobre todo de incompatibilidades.
En un entorno más controlado, es decir, yo genero el archivo de texto y estoy
seguro de cada campo lo que es y su tipo. Este archivo siempre lo genero
separado por comas (*.CSV) y a través de CPYFRMIMPF lo traspaso. Hay que tener
en cuenta los siguientes parámetros:
- STMFLEN(*TOFILE)
- RCDDLM(*CRLF) = identifica el fin de registro por CR+LF. Si fuera un
Linux/Unix entonces LF.
- DTAFMT(*DLM) = campos delimitados
- STRDLM(*DBLQUOTE) = delimitador de serie, la doble comilla (por ejemplo)
- FLDDLM(',') = delimitador de campos, la coma (por ejemplo)
Con esta fórmula evito muchos de los problemas que he tenido siempre utilizando
herramientas como: peticiones de transferencias, ftp, archivos de texto con
registros con todo en un "churro", etc.
________________________________
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En nombre de [EMAIL
PROTECTED]
Enviado el: viernes, 13 de julio de 2007 10:24
Para: forum.help400
Asunto: RE: CPYFRMIMPF
Hola
Estoy en V5R3
Los archivos me los envian directamente por FTP desde un UNIX y en
ASCII con lo cual queda toda la butifarra de caracteres que corresponde a una
definicion de fichero, igual que si haces un DSPPFM. Mi intencion es poder
importar en un sólo paso y no tener que hacer un programa de importación con
definicion intrerna de ficheros para cada archivo que voy a recibir, que son
unos cuantos...
"Javier Mora" <[EMAIL PROTECTED]>
Enviado por: [EMAIL PROTECTED]
13/07/2007 10:08
Por favor, responda a
"forum.help400" <[email protected]>
Para
"forum.help400" <[email protected]>
cc
Asunto
RE: CPYFRMIMPF
Hola Alberto:
¿En que versión del S.O. estás? Dependiendo de la versión el mandato
tiene comportamientos distintos.
¿En qué formato está el archivo en el IFS?
Yo, en V5R4 y con archivos separados por comas (CSV) estoy traspasando
datos a un archivo de base de datos. No he utilizado nunca el parámetro
FLDDFNFILE.
Si me das algo más de información, a lo mejor, puedo ayudarte.
Un saludo,
Javier Mora
________________________________
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En nombre de [EMAIL
PROTECTED]
Enviado el: viernes, 13 de julio de 2007 9:34
Para: forum.help400
Asunto: CPYFRMIMPF
Hola.
A ver si alguien hace servir habitualmente el comando CPYFRMIMPF para
copiar ficheros de las IFS a base de datos.
El tema es que estoy intentando copiar un *.txt con estructura de base
de datos y no me deja. He hecho la prueba de copiar yo mismo este fichero desde
la base de datos a las carpetas con CPYTOIMPF y luego recuperarlo con
CPYFRMIMPF y no me lo recupera, me dice que
10 - Los datos del archivo de definición de campos no son correctos
para TOFILE.
como archivo de definicion( el parámetro FLDDFNFILE) le he puesto el
miembro que contiene las DDS de este archivo.
Si esto no lo pongo, me obliga a poner DTAFMT como *DLM y tampoco
copia nada porque me da un error de correlación de datos en el miembro.
===> CPYFRMIMPF FROMSTMF('/home/albert/fitxeftp.txt')
TOFILE(ALBERT/FITXEFTP) RCDDLM(*CRLF) DTAFMT(*FIXED) FLDDFNFILE(ALBERT/QDDSSRC
FITXEFTP)
PD: es la primera vez que utilizo este mandato para copiar datos en un
archivo de base de datos con más de un campo.Siempre lo habia hecho con un sólo
campo igual a la longitud de registro.
Gracias.
__________________________________________________
Forum.HELP400 es un servicio m&#225;s de NEWS/400.
&#169; 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
__________________________________________________
Forum.HELP400 es un servicio m&#225;s de NEWS/400.
&#169; 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