Rechercher : dans
Par :

Alimenter un fichier CSV via AS400

Dernière réponse le 21 avr 2009 à 16:24:09 vp29, le 17 fév 2009 à 12:09:33 
 Signaler ce message aux modérateurs

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

Configuration: Windows XP
Internet Explorer 7.0

Meilleures réponses pour « alimenter un fichier CSV via AS400 » dans :
Introduction aux systèmes AS/400 Voir Introduction à l’AS/400 AS/400 est une gamme de mini-ordinateurs IBM apparue début février 1987. Dans l’informatique de gestion d’IBM, il existe trois gammes d’ordinateurs : les gros systèmes (appelés MainFrame), ES/9000, sous le système...
Les commandes AS/400 Voir Les commandes de l’AS/400 Il existe environ un millier de commandes dans l'OS/400, regroupées sous le nom de « Langage de Contrôle ». Un utilisateur pourra les lancer depuis la ligne Option ou Commande située au bas de l'écran, quand celle-ci est...
[Python] Lire et écrire des fichiers CSV VoirLIRE ET ÉCRIRE DES FICHIERS CSV Python www.python.org, dans sa version 2.4 supporte de facto le format CSV (comma-separated values: valeurs séparées par des virgules). La Library Reference est certes très explicative à ce sujet, mais uniquement...
Excel - Convertir fichier(s) CSV / XLS VoirComme dit dans le titre, cette application convertit des fichiers CSV en fichiers XLS N’est pas nécessaire pour Excel 2007, ce dernier faisant la conversion automatiquement La conversion n’ayant pas de mise en forme, en cas de modification...
Fichier CSV VoirFormat CSV Un fichier CSV est un fichier tableur, contenant des données sur chaque ligne séparés par un caractère de séparation (généralement une virgule ou un point-virgule). Comment lire un fichier CSV ? Il peut être lu avec un tableur tel que...

1

Ludo, le 18 mar 2009 à 18:39:41

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,

Répondre à Ludo

2

vp29, le 24 mar 2009 à 14:04:13

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

Répondre à vp29

3

wb, le 20 avr 2009 à 15:44:41

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.

Répondre à wb

4

VP29, le 21 avr 2009 à 12:14:39

Bonjour

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

Cdlt

Répondre à VP29

5

othanga, le 21 avr 2009 à 12:21:43

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.

Répondre à othanga

6

VP29, le 21 avr 2009 à 13:17:03

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

Répondre à VP29

7

wb, le 21 avr 2009 à 15:43:12
  • +1

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.

Répondre à wb

8

VP29, le 21 avr 2009 à 15:53:04
  • +1

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

Répondre à VP29

9

 wbr, le 21 avr 2009 à 16:24:09

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

Répondre à wbr
Collection CommentÇaMarche.net