Alimentar un archivo CSV vía AS400

vp29 -  
 J.M.ARAB -
Hola,

Soy una auténtica AS400ista (desarrollo en RPG, base de datos DB2), y debo crear y alimentar un archivo CSV a partir de una base de datos AS400. ¿Alguien puede ayudarme? ¿Basta con crear un archivo en la base AS400 con campos separados por coma o punto y coma?

Gracias

Configuración: Windows XP Internet Explorer 7.0

6 respuestas

  1. wb
     
    Hola a todos,

    Gracias a VP29,
    El comando :
    CPYTOIMPF FROMFILE(WILLIAM/WBCSV) TOSTMF('/paseo/wbcsv.CSV') MBROPT(*REPL
    ACE) STMFCODPAG(*STDASCII) RCDDLM(*CRLF) STRDLM(*NONE) RMVBLANK(*BOTH) FL
    DDLM(';') DECPNT(*COMMA)

    funciona parcialmente (estoy en V5r4M0) porque la eliminación de los espacios en los diferentes campos no se realiza.
    ************Inicio de datos**************
    10;01 ;CA ;1 ;43 ;a ;25 ;1200 ;SL ;20090417;162000
    ************Fin de Datos********************
    En el IFS (creado automáticamente por el comando) finalmente tengo el archivo resultado wbcsv.csv.
    Para información, hace falta que el archivo original sea un archivo DB2 con nombres de zonas.
    Había creado por error un archivo sin zonas y solo tenía una zona en el resultado del .CSV.
    A través del explorador de Windows abro bien un archivo de Excel, así que OK para ello. Ya no hay que hacer RPG.

    Lo que me queda por hacer y no sé aún cómo:

    Copiar este archivo desde el IFS a un directorio PC de un usuario concreto.
    Por supuesto de forma automática del tipo:
    Si el archivo empieza por WB*.* lo pongo en el PC de WB.
    Si tienes información, la agradecería.
    De antemano, gracias.
    WB.
    5
    1. J.M.ARAB
       
      Hay que abrir el explorador de archivos, seleccionar Conectar un sitio de red, asignar una letra a la unidad, indicar la ruta de acceso mediante \\nombreAS400 o su dirección IP \root\reporteIFS\ donde se encuentra su archivo, luego arrástrelo al escritorio de su PC o de otro equipo de la red.
      ¡Buena suerte!
      0
  2. VP29 Mensajes publicados 3 Estado Miembro 1
     
    ¿Por qué no actualizar todos los archivos .csv en una carpeta común en un servidor?
    ¿Y gestionar los derechos de los usuarios por archivo luego?

    Finalmente, eso depende de lo que quieras hacer.
    1
  3. Ludo
     
    Hola,

    En principio, creo el archivo de manera "clásica" en el AS400 y luego uso un CL para transferirlo al IFS con el comando CPYTOIMPF.

    Ej.: transferencia del archivo TOTO

    CPYTOIMPF FROMFILE(bibliotheque_AS/TOTO) TOSTMF('QDLS/repertoire/TOTO.CSV') MBROPT(*REPLACE) STMFCODPAG(*STMF) RCDDLM(*CRLF) DTAFMT(*DLM) STRDLM(*NONE) FLDDLM(';')

    Saludos,
    0
    1. vp29
       
      Hola
      Gracias por su respuesta.
      El problema es que el comando CPYTOIMPF no convierte el EBCDIC a ASCII, lo que genera un archivo ilegible
      Atentamente
      0
      1. wb > vp29
         
        Hola,
        Tengo el mismo problema y estoy dudando si voy a escribir un programa para generar este archivo en .CSV.
        Buena continuación.
        WB.
        0
      2. VP29 Mensajes publicados 3 Estado Miembro 1 > wb
         
        Hola

        He utilizado la función AS400 CPYTOIMPF que funciona muy bien

        Saludos cordiales
        0
  4. othanga
     
    Hola,

    ¿para qué plataforma debe servir el CSV? Si es para Windows, mejor dejar el trabajo a Client Access y su controlador ODBC

    Personalmente, uso ADO (desde un WinXP) para conectarme a la base, enviar una consulta no muy complicada y leer el resultado línea por línea para almacenarlo en un archivo .CSV
    normalmente, el separador de columnas en el .CSV es la coma y las cadenas están delimitadas por comillas.
    0
  5. VP29 Mensajes publicados 3 Estado Miembro 1
     
    Aquí está mi comando que he colocado en un pgm CL en AS400

    CPYTOIMPF FROMFILE(IR6_1SP/ACTECR) TOSTMF('/IRIS + ACTIM/ACTECR.CSV') MBROPT(*REPLACE) STMFCODPAG(*STDASCII) RCDDLM(*CRLF) STRDLM(*NONE) FLDDLM(';') DECPNT(*COMMA)

    ACTECR es mi archivo en la base DB2 en el origen, y voy a crear el archivo ACTECR.CSV bajo el IFS
    El separador de campos es el ;
    y el separador decimal es la coma
    0
  6. wbr Mensajes publicados 1 Fecha de registro   Estado Miembro
     
    RE-buenos días VP29,
    En realidad ahora estoy buscando copiar este archivo (resultado de cpytoimpf) a un servidor PC.
    Por ahora está en el IFS y no sé cómo ponerlo en otro lugar.
    Gracias y hasta pronto.
    cordialmente.
    WBR
    0