Alimenter un fichier CSV via AS400

Fermé
vp29 - 17 févr. 2009 à 12:09
 J.M.ARAB - 10 juil. 2020 à 03:00
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

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.
5
Il faut aller sur explorateur de fichier, sélectionner connecter un lecteur réseau, donner une lettre à ce lecteur, renseigner le chemin d'accès par \\nom as400 ou son adresse IP \root\répertoireIFS\ ou se trouve votre fichier ensuite vous le faite glisser sur le réertoire de voutre PC ou d'un autre du réseau.
Bon courage !
0
VP29 Messages postés 3 Date d'inscription mardi 17 février 2009 Statut Membre Dernière intervention 21 avril 2009 1
21 avril 2009 à 15:53
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
1
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,
0
Bonjour
Merci pour votre réponse.
Le problème c'est que la commande CPYTOIMPF ne convertit pas l’EBCDIC en ASCII, ce qui donne un fichier illisible
Cordialement
0
Bonjour,
J'ai le même problème et je me tâte pour savoir si je vais écrire un programme pour générer ce fichier en .CSV.
Bonne continuation.
WB.
0
VP29 Messages postés 3 Date d'inscription mardi 17 février 2009 Statut Membre Dernière intervention 21 avril 2009 1 > wb
21 avril 2009 à 12:14
Bonjour

J'ai utilisé la fonction AS400 CPYTOIMPF qui fonctionne très bien

Cdlt
0
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
VP29 Messages postés 3 Date d'inscription mardi 17 février 2009 Statut Membre Dernière intervention 21 avril 2009 1
21 avril 2009 à 13:17
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
0
wbr Messages postés 1 Date d'inscription mardi 21 avril 2009 Statut Membre Dernière intervention 21 avril 2009
21 avril 2009 à 16:24
RE bonjour VP29,
En réalité je cherche maintenant à copier ce fichier (résultat de cpytoimpf) vers un serveur PC.
Pour l'instant il est sur l'IFS et je ne sais pas comment le mettre ailleurs.
Merci et à Plus.
cdlt.
WBR
0