IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XMLRAD Discussion :

Exportattion de données sous forme de fichiers


Sujet :

XMLRAD

  1. #1
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 124
    Points : 56
    Points
    56
    Par défaut Exportattion de données sous forme de fichiers
    J'aimerais faire une extraction de données sous forme de fichier.
    Pour cela j'utilise un dbextract pour extraire mes données, puis ds le xlmgram, j'utilise un "file extract" que je renseigne comme ceci :

    filename
    : Nom du fichier ke je veux créer
    select : MesdataS/Mesdata

    Le prog me répond que le nom de mon fichier n'existe pas. C'est normal, je veux le créer !

    De plus, je ne trouve pas d'exemple ! Peut-on exporter sous format TXT, XSL, CSV ?

    Merci
    Température de l'eau : 28 °
    Température extérieure : 32°
    Température au fond du verre : 50° ~ 55°
    ------ Mangez des bananes ----------

  2. #2
    Membre habitué
    Inscrit en
    Novembre 2002
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 243
    Points : 192
    Points
    192
    Par défaut
    Si tu utlises réellement un "FileExtract" c'est normal puisque comme son nom l'indique...
    De plus, cette instruction ainsi que FileBatch ne sont plus conseillées. Il faut utiliser l'instruction File qui permet de faire toutes sortes de choses.
    Pour ce qui est du formattage, je suppose que c'est faisable mais sans code je vois pas.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 284
    Points : 349
    Points
    349
    Par défaut
    Effectivement, il va falloir utiliser l'instruction File pour ca. Voir l'aide pour commencer.

    Pour exporter dans de multiple format, il va falloir utiliser des parametres et les passer au service qui fera la transformation des données adéquate.
    Le retour de ce service (=le document resultat de la transformation) sera mis dans le Context via une instruction Invoke, et l'instruction File ira prendre le contenu du fichier du Context.
    Nicolas

  4. #4
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 124
    Points : 56
    Points
    56
    Par défaut c'est pas encore ça !
    J'utilise bien l'instruction "file" désormais, mais entre implémentation (V7 RC3) et la doc, il y a pas mal de différence !

    Voici, ce que j'ai ds mon xmlgram, pour le file. Juste au dessus j'ai un Dbextract des ECRITCPTS. Je crée un fichier toto.xml, mais il est vide où plutôt mal formé il contient juste 2 caractères grecs ! Mon extraction est correcte car je l'ai à l'écran si la propriété "next action" est vide.

    <File Name="Exportation">
    <Method>SAVE</Method>
    <FieldName>ECRITCPTS/ECRITCPT</FieldName>
    <FileName>c:\temp\toto.xml</FileName>
    <HashMod>100</HashMod>
    <HashLevel/>
    <Usage/>
    </File>
    Température de l'eau : 28 °
    Température extérieure : 32°
    Température au fond du verre : 50° ~ 55°
    ------ Mangez des bananes ----------

  5. #5
    Membre habitué
    Inscrit en
    Novembre 2002
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 243
    Points : 192
    Points
    192
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <FieldName>ECRITCPTS/ECRITCPT</FieldName>
    j'ai pas XMRAD sur ce poste mais il me semble que c'est plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <Select>ECRITCPTS/ECRITCPT</Select>

  6. #6
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 124
    Points : 56
    Points
    56
    Par défaut ça marche pas non plus !
    ça marche pas non plus !

    J'ai deux pb en fait :

    1 / Je ne sais pas trop quoi mettre comme propriétés car entre la doc sur le net (V8, je suppose) et le composant file (V7RC3), il y a pas mal de différences.

    2 / Mon service est à la base un "xmlgram only", aussi je n'ai que 3 composants dans ce service (WSDL / XMLGRAM / Security), ne me faudrait-il pas un composant "XML" en plus afin d'avoir les données. Je l'ai ajouté, mais il ne se remplit pas.

    Voici mon File instruction :

    <File Name="Exportation">
    <Method>SAVE</Method>
    <FileName>c:\temp\toto.xml</FileName>
    <Select>/document/ECRITCPTS</Select>
    <FieldName>ECRITCPT</FieldName>
    <Destination>Output</Destination>
    <HashMod>100</HashMod>
    <HashLevel/>
    <Usage/>
    </File>
    Température de l'eau : 28 °
    Température extérieure : 32°
    Température au fond du verre : 50° ~ 55°
    ------ Mangez des bananes ----------

  7. #7
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 124
    Points : 56
    Points
    56
    Par défaut
    J'ai crée un service avec un "XLS" et un "XML" où j'affiche mes données dans un tableau, et, en parralèlle je tente de créer le fichier. Alors que les datas s'affichent bient, le fichier se crée mais est vide !!!
    Température de l'eau : 28 °
    Température extérieure : 32°
    Température au fond du verre : 50° ~ 55°
    ------ Mangez des bananes ----------

  8. #8
    Membre habitué
    Inscrit en
    Novembre 2002
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 243
    Points : 192
    Points
    192
    Par défaut
    Ce qu'il faut avoir en tête c'est que les XMLInstructions sont exécutées séquentiellement. Aussi, il ne me semble pas nécessaire d'avoir un fichier xsl associé. C'est juste qu'au moment où l'instruction File est exécutée, il faut que la grappe de données que tu veux sauvegarder existe bien.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 284
    Points : 349
    Points
    349
    Par défaut
    Et surtout, il faut que le contenu du fichier soit présent dans le Context...

    L'instruction File va chercher dans le Context le champs nommé FieldName, ici "ECRITCPT", et va écrire le contenu de ce champ dans le fichier sur disque.

    Pour remplir le contenu, le plus simple est de faire un Invoke d'un service qui va créer le contenu voulu. L'invoke va stocker le resultat de l'invocation de ce service dans le Context.

    Un exemple de ca : la demo News, XMLService UpdateNEWS. Cette demo ecrit sur disque un document, issu d'une transformation, en utilisant un Invoke, un service de création du contenu et une instruction File. Tout y est
    Nicolas

  10. #10
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 124
    Points : 56
    Points
    56
    Par défaut ça marche !
    merci à tous les 2 !

    c'est ssez simple finalement :

    1 / créer 1 écran pour sélectionner les bornes et y poser le bouton d'exécution
    2 / créer 1 service xmlgram contenant un invoke et un file instruction
    3 / créer 1 service xmlgram d'extraction de données sur lequel est basé l'invoke !

    Bon maintenant que j'ai un fichier xml ; j'ai dix ans d'avance en Martinic. Comment je fais pour le transfomer en fichier txt, xsl ou mieux csv ?
    Que veux-tu dire Nico ds :

    Pour exporter dans de multiple format, il va falloir utiliser des parametres et les passer au service qui fera la transformation des données adéquate.
    Température de l'eau : 28 °
    Température extérieure : 32°
    Température au fond du verre : 50° ~ 55°
    ------ Mangez des bananes ----------

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 284
    Points : 349
    Points
    349
    Par défaut
    Ce que je veux dire, c'est que pour ta transformation vers différents formats, tu peux utiliser plusieurs techniques.
    Deja, est-ce que tu veux exporter vers un seul format, mais tu ne sais pas encore lequel, ou est-ce que tu voudrais exporter dans différents formats, selon un choix de l'utilisateur ?

    Dans ce 2eme cas, 2 techniques :
    - Soit tu passes des parametres et fonction de ces parametres, ton xsl transforme vers tel ou tel format
    - Soit tu utilises le XMLC_Formatter pour changer dynamiquement de XSL

    Le XMLC_Formatter est interessant : c'est super simple.
    Tu passes en parametre XMLC_Formatter=CSV par exemple. Le Framework va changer le nom du XSL déclaré en rajoutant CSV dans le nom (par exemple, ListORG.xsl -> ListORG.CSV.xsl). Le framework vérifie ensuite si ce fichier existe bien sur disque, et si c'est bien le cas, c'est ce fichier qu'il utilisera pour faire la transformation.
    Nicolas

  12. #12
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 124
    Points : 56
    Points
    56
    Par défaut XMLC_Formatter
    Je veux créer un fichier csv car c'est du texte qui se lit bien sous excel donc on peut en faire ce que l'on veut. De toute manière, si je veux du txt, ça sera le même principe. Donc prenons le XMLC_Formatter.

    Si j'ai bien compris, il faut déclarer un XMLC_Formatter ; comment faire ?
    Créer un nouvel InitParams ou le déclarer dans une instruction Assign simplement ? Bien sûr j'ai pas trouvé d'exemple ni sur XMLC_Formatter, ni sur la méthode où il faut passer des paramètres et fonctions afin de transformer ds le format voulu. Peux-tu m'en dire plus car je n'exporterais que vers un seul format (txt / csv / xsl) défini au préalable.

    Merci
    Température de l'eau : 28 °
    Température extérieure : 32°
    Température au fond du verre : 50° ~ 55°
    ------ Mangez des bananes ----------

  13. #13
    Membre habitué
    Inscrit en
    Novembre 2002
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 243
    Points : 192
    Points
    192
    Par défaut
    Je n'ai pas eu l'occasion de tester XMLC_Formatter mais je pense que c'est comme XMLC_OutputFormat. Il n'y a rien à déclarer. Tu as un XMLService E1 avec un fichier E1.xsl et que tu appelles en faisant http://xx/P1Bin/P1.dll/E1. Il te donne une représentation de ta grappe de données.
    Maintenant lorsque tu invoques http://xx/P1Bin/P1.dll/E1?XMLC_Formatter=CSV le framework va rechercher la feuille E1.CSV.xsl (et non E1.xsl). Et c'est cette feuille E1.CSV.xsl qui fait la transformation de ta grappe en un fichier CSV. Tu peux alors créer autant d'extensions que tu le veux : E1.TXT.xsl......

    J'espère que c'est juste et que j'ai pas dit trop de c....

  14. #14
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 124
    Points : 56
    Points
    56
    Par défaut
    J'ai bien vu l'analogie avec XMLC_OutputFormat, mais mon appli fait comme si elle ne le reconnaissait pas ; il y a quelques points à éclaircir !

    J'ai donc 3 services :
    FormExportXXX où je choisis les bornes de mon extraction,
    ExportXXX où je réalise l'extraction via un invoke et un file instruction,
    ExtractXXX où j'extrais mes données, il est appelé par ExportXXX

    Sur FormExportXXX, j'ai un bouton qui lance ExportXXX et crée un fichier xml dans le chemin définis par File Name de File Instruction.

    Pour faire mon fichier csv, j'ai déclaré dans les params de ExportXXX, le paramètre XMLC_Formatter=CSV comme XMLC_OutputFormat=PDF dans un report. Deux choses peuvent biaiser l'exécution :

    1 / l'appel du service :
    J'ai : <input type="image" border="0" alt="{/document/Locales/Next}" src="{$XMLC_PictosPath}button_save.gif" onclick="ACTION.value='ExportCPT';"/>
    J'ai essayé : <input type="image" border="0" alt="{/document/Locales/Next}" src="{$XMLC_PictosPath}button_save.gif" onclick="ACTION.value='ExportCPT?XMLC_Formatter=CVS';"/> sans résultat

    2 / le chemin du fichier
    J'ai : c:\temp\toto.xml
    J'ai essayé : c:\temp\toto ; mais même fichier au format xml sans extension
    J'ai essayé : c:\Temp\toto.csv ; mais même fichier avec extension cvs mais au format xml.

    je galère ...
    Température de l'eau : 28 °
    Température extérieure : 32°
    Température au fond du verre : 50° ~ 55°
    ------ Mangez des bananes ----------

  15. #15
    Membre habitué
    Inscrit en
    Novembre 2002
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 243
    Points : 192
    Points
    192
    Par défaut
    que veux-tu dire par sans résultat. Il me semble qu'il suffit d'avoir un ExportCPT.CSV.xsl pour avoir ton résultat. Tu peux très bien avoir ton ExtractXXX masi tu pourrais te contenter d'avoir cette extraction dans le xmlgram de ExportXXX et d'avoir plusieurs ExportXXX.Format.xsl.

  16. #16
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 124
    Points : 56
    Points
    56
    Par défaut
    Par sans résultat, je veux dire que le fichier créé reste un fichier sous le formatage XML vace le nom fourni dans le "File Name" du "File Instruction" de ExtractXXX.

    J'avais cru comprendre qu'il suffisait d'ajouter dans les params de ExportXXX le paramètre XMLC_Formatter=CSV, pour que tout se fasse automatiquement. Mais je ne vois nul part "ExportCPT.CSV.xsl", comment se fabrique t'il ? Faut-il dupliquer ExportXXX.xsl en ExportCPT.CSV.xsl manuellement ou faire autre chose ???

    Merci
    Température de l'eau : 28 °
    Température extérieure : 32°
    Température au fond du verre : 50° ~ 55°
    ------ Mangez des bananes ----------

  17. #17
    Membre habitué
    Inscrit en
    Novembre 2002
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 243
    Points : 192
    Points
    192
    Par défaut
    il faut effectivement passer dans le context XMLC_Formatter=CSV. Et effectivement il faut qu'il existe ExportCPT.CSV.xsl. Comme je le disais dans un précédant message, ta grappe de données est parsée avec une feuille xsl. En général, ExportCPT.xsl transforme ta grappe xml en un doc html. De la même manière lorsque le framework constate l'appel au xmlservice ExportCPT avec le paramètre XMLC_Formatter=CSV (en fait ...Bin.dll/ExportCPT?XMLC_Formatter=CSV) au lieu de faire un parsage avec ExportCPT.xsl, il va faire un parsage avec ExportCPT.CSV.xsl. Il faut donc que ExportCPT.CSV.xsl existe et qu'il fasse la transformation de ta grappe xml en un contenu csv

  18. #18
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 124
    Points : 56
    Points
    56
    Par défaut Quelle galère !
    Désolé, mais je ne comprends plus très bien ce qu'il faut faire !!!

    A l'heure actuelle, j'ai 3 services, le premier (FormExportXXX) avec xsl, xlmgram et xml et les deux autres (ExportXXX et ExtractXXX) composés de seulement 1 xmlgram.

    Sur FormExportXXX je clique sur un bouton qui lance ExportXXX, qui utilise ExtractXXX pour mettre les données dans le context.

    Vous me dîtes qu'il faut un fichier ExportXXX.CSV.xsl ; alors je l'ai crée à vide et affecté au service ExportXXX. Mais j'ai toujours le même résultat.

    Mais à force de lire vos réponses, je me demande si je ne fais pas complètement fausse route et que le "file instruction" ne sert qu'à exporter sous forme de fichier xml. Pour faire un fichier csv, il faudrait plutôt copier l'exemple report, à savoir deux services : FormExportXXX (chx des bornes) et ExportXXX avec xsl, xml et xmlgram. Le xmlgram serait composé de "Params" avec XMLC_Formatter=CSV et d'un DbExtract des données (celui de ExtractXXX) et le xsl décrirait le fichier résultat que je veux obtenir en forçant un point virgule après chaque champ.

    J'abandonne le file Instruction pour utiliser la méthode des reports où la solution est un mix des deux ???
    Température de l'eau : 28 °
    Température extérieure : 32°
    Température au fond du verre : 50° ~ 55°
    ------ Mangez des bananes ----------

  19. #19
    Membre habitué
    Inscrit en
    Novembre 2002
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 243
    Points : 192
    Points
    192
    Par défaut
    je n'ai pas eu l'occasion d'expérimenter la génération de fichiers csv mais il me semble effectivement que tu confonds certaines choses.
    En effet, (et c'est là que je peux me tromper) le framework ne fait "rien" dans cette histoire si ce n'est de parser les données en csv, txt, xml ou html.
    Tu as ton xmlservice FormExport qui te permet de choisir les bornes et le type d'exportation. Ensuite tu appelles le xmlservice Export qui possède un xmlgram (import de ton Extract) et un Export.xsl qui fait la transformation en html (par défaut) de ta grappe de données. Maintenant, si tu crée aussi un fichier Export.CSV.xsl qui fait la transformation CSV et que tu invoque Export?XMLC_Formatter=CSV alors le framework n'utilisera pas Export.xsl mais Export.CSV.xsl.
    Il faut bien comprendre que c'est toi qui doit faire la transformation de ta grappe xml en un contenu CSV grace à l'utilisation du xsl.
    Pour ce qui est de l'utilisation de File, je pense pas qu'il y ait de problème en ce qui concerne la sauvegarde

  20. #20
    Membre habitué
    Inscrit en
    Novembre 2002
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 243
    Points : 192
    Points
    192

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 20
    Dernier message: 11/04/2013, 10h27
  2. Trier données sous forme de dictionnaire dans un fichier
    Par pinard dans le forum Général Python
    Réponses: 3
    Dernier message: 17/11/2011, 18h37
  3. Créer un fichier de données sous forme de ligne
    Par comoliv02 dans le forum MATLAB
    Réponses: 3
    Dernier message: 04/03/2008, 11h35
  4. renvoyer des données sous forme de XML hiérarchique
    Par DiGueDao dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 12/01/2005, 19h06
  5. Exporter des données sous forme de requetes
    Par Pasiphae dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 06/10/2004, 18h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo