Alimenter un fichier CSV via AS400
vp29
-
J.M.ARAB -
J.M.ARAB -
Bonjour,
Je suis une pure AS400tiste (développement en RPG, base de données DB2), et je dois créer et alimenter un fichier CSV à partir d'une base de données AS400. Quelqu'un peut-il m'aider ? Suffit-il de créer un fichier dans la base AS400 avec des champs séparés par une vigule ou point vigule ?
Merci
Je suis une pure AS400tiste (développement en RPG, base de données DB2), et je dois créer et alimenter un fichier CSV à partir d'une base de données AS400. Quelqu'un peut-il m'aider ? Suffit-il de créer un fichier dans la base AS400 avec des champs séparés par une vigule ou point vigule ?
Merci
6 réponses
Bonjour à tous,
Merci à VP29,
La commande :
CPYTOIMPF FROMFILE(WILLIAM/WBCSV) TOSTMF('/paseo/wbcsv.CSV') MBROPT(*REPL
ACE) STMFCODPAG(*STDASCII) RCDDLM(*CRLF) STRDLM(*NONE) RMVBLANK(*BOTH) FL
DDLM(';') DECPNT(*COMMA)
fonctionne partiellement (je suis en V5r4M0) car la suppression des blancs dans les différents champs ne se fait pas.
************Beginning of data**************
10;01 ;CA ;1 ;43 ;a ;25 ;1200 ;SL ;20090417;162000
************End of Data********************
Au final j'ai bien dans l'IFS (créé en automatique par la commande) le fichier résultat wbcsv.csv.
Pour info, il faut que le fichier d'origine soit un fichier DB2 avec noms de zones.
J'avais créé à tort un fichier sans zones et je n'avais qu'une zone au résultat dans le .CSV.
Via l'explorateur window j'ouvre bien un fichier excel, donc OK pour cela. Plus de prog RPG à faire
Il me reste à faire et je ne sais pas encore comment :
Copier ce fichier depuis l'IFS dans un repertoire PC d'un utilisateur donné.
Bien sur en automatique du style :
Si fichier commence par WB*.* je le mets sur le PC de WB.
Si vous avez des infos, je serai preneur.
Par avance Merci.
WB.
Merci à VP29,
La commande :
CPYTOIMPF FROMFILE(WILLIAM/WBCSV) TOSTMF('/paseo/wbcsv.CSV') MBROPT(*REPL
ACE) STMFCODPAG(*STDASCII) RCDDLM(*CRLF) STRDLM(*NONE) RMVBLANK(*BOTH) FL
DDLM(';') DECPNT(*COMMA)
fonctionne partiellement (je suis en V5r4M0) car la suppression des blancs dans les différents champs ne se fait pas.
************Beginning of data**************
10;01 ;CA ;1 ;43 ;a ;25 ;1200 ;SL ;20090417;162000
************End of Data********************
Au final j'ai bien dans l'IFS (créé en automatique par la commande) le fichier résultat wbcsv.csv.
Pour info, il faut que le fichier d'origine soit un fichier DB2 avec noms de zones.
J'avais créé à tort un fichier sans zones et je n'avais qu'une zone au résultat dans le .CSV.
Via l'explorateur window j'ouvre bien un fichier excel, donc OK pour cela. Plus de prog RPG à faire
Il me reste à faire et je ne sais pas encore comment :
Copier ce fichier depuis l'IFS dans un repertoire PC d'un utilisateur donné.
Bien sur en automatique du style :
Si fichier commence par WB*.* je le mets sur le PC de WB.
Si vous avez des infos, je serai preneur.
Par avance Merci.
WB.
pourquoi ne pas mettre à jour tous les fichiers .csv dans un dossier commun sur un serveur ?
Et gérer les droits utilisateurs par fichier ensuite ?
Enfin ça dépend de ce que tu souhaites faire
Et gérer les droits utilisateurs par fichier ensuite ?
Enfin ça dépend de ce que tu souhaites faire
Bonjour,
En principe, je créé le fichier de manière "classique" sur l'AS400 puis j'utilise un CL pour le transférer sur l'IFS avec la commande CPYTOIMPF.
Ex: transfert du fichier TOTO
CPYTOIMPF FROMFILE(bibliotheque_AS/TOTO) TOSTMF('QDLS/repertoire/TOTO.CSV') MBROPT(*REPLACE) STMFCODPAG(*STMF) RCDDLM(*CRLF) DTAFMT(*DLM) STRDLM(*NONE) FLDDLM(';')
Cdlt,
En principe, je créé le fichier de manière "classique" sur l'AS400 puis j'utilise un CL pour le transférer sur l'IFS avec la commande CPYTOIMPF.
Ex: transfert du fichier TOTO
CPYTOIMPF FROMFILE(bibliotheque_AS/TOTO) TOSTMF('QDLS/repertoire/TOTO.CSV') MBROPT(*REPLACE) STMFCODPAG(*STMF) RCDDLM(*CRLF) DTAFMT(*DLM) STRDLM(*NONE) FLDDLM(';')
Cdlt,
Bonjour,
le CSV doit servir sur quelle plateforme ? Si c'est pour Windows, autant laisser le travail à Client Access et son pilote ODBC
Personnellement, je me sers d'ADO (depuis un WinXP) pour me connecter à la base, soumettre une requête pas trop compliquée et lire le résultat ligne par ligne pour le stocker dans un fichier .CSV
normalement, le séparateur de colonne dans le .CSV est la virgule et les chaînes sont délimitées par des guillemets.
le CSV doit servir sur quelle plateforme ? Si c'est pour Windows, autant laisser le travail à Client Access et son pilote ODBC
Personnellement, je me sers d'ADO (depuis un WinXP) pour me connecter à la base, soumettre une requête pas trop compliquée et lire le résultat ligne par ligne pour le stocker dans un fichier .CSV
normalement, le séparateur de colonne dans le .CSV est la virgule et les chaînes sont délimitées par des guillemets.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Voici ma commande que j'ai placée dans un pgm CL AS400
CPYTOIMPF FROMFILE(IR6_1SP/ACTECR) TOSTMF('/IRIS +
ACTIM/ACTECR.CSV') MBROPT(*REPLACE) +
STMFCODPAG(*STDASCII) RCDDLM(*CRLF) +
STRDLM(*NONE) FLDDLM(';') DECPNT(*COMMA)
ACTECR est mon fichier dans la base DB2 en amont, et je crée le fichier ACTECR.CSV sous l'IFS
Le séparateur de champs est le ;
et le séparateur de décimales est la virgule
CPYTOIMPF FROMFILE(IR6_1SP/ACTECR) TOSTMF('/IRIS +
ACTIM/ACTECR.CSV') MBROPT(*REPLACE) +
STMFCODPAG(*STDASCII) RCDDLM(*CRLF) +
STRDLM(*NONE) FLDDLM(';') DECPNT(*COMMA)
ACTECR est mon fichier dans la base DB2 en amont, et je crée le fichier ACTECR.CSV sous l'IFS
Le séparateur de champs est le ;
et le séparateur de décimales est la virgule
Bon courage !