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

Développement de jobs Discussion :

Export de chaque row dans fichier indépendant


Sujet :

Développement de jobs

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Janvier 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 2
    Par défaut Export de chaque row dans fichier indépendant
    Bonjour,
    Je souhaite diriger un flux de données issue d'une base dans des fichiers xml.
    En utilisant simplement tAccessInput et tFileOutputXML, cela permet de tout mettre dans un meme et unique fichier.

    Quelle adaptation dois-je faire pour diriger le contenu de chaque row dans autant de fichiers xml qu'il y a de row avec pour nom de fichier xml l'une des colonnes de la row ?

    J'ai tenté le schéma ci-joint : dans le tjavarow, j'initialise une variable globale que j'essaie d'utiliser comme nom de fichier dans tFileOutputXML mais ce n'est pas la bonne manière puisqu'il semble que ce nom est initialisé une seule fois.

    Quelle astuce dois-je utiliser ?
    Merci.
    Images attachées Images attachées  

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    465
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 465
    Par défaut
    salut,

    Je viens de te faire un job qui pourra t'aider.
    Il permet de dispatcher le contenu d'un fichier en autant fichiers qu'il y a de valeurs présentes dans une colonne...

    Le contenu du fichier initial est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    col1;col2
    a;1
    b;2
    c;3
    d;4
    Les copies d'écran te montrent le mécanisme adopté.

    -Dans un premier temps, on dédoublonne le flux d'une colonne afin d'en récupérer les valeurs uniques
    -Chaque valeur unique devient une itération servant à la répartition en fichiers.
    -On utilise la valeur unique pour filtrer le flux. Autant de filtrages sont donc appliqués qu'il y a de valeurs uniques.
    -On redirige ce flux vers un fichier, dans l'exemple donné, un fichier délimité.

    Dans ton cas, tu as juste à remplacer tFileInputDelimited par tAccessInput et tFileOutputDelimited par tFileOutputXML

    Voilà, j'espère que ça aura pu t'aider...
    Images attachées Images attachées     

  3. #3
    Nouveau candidat au Club
    Inscrit en
    Janvier 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 2
    Par défaut
    Merci Mathieu,
    C'est effectivement une solution qui marche et me dépanne dans un 1er temps.
    Le point génant est les mauvaises performances puisqu'elle implique une relecture complète du fichier (ou base) d'entrée autant de fois qu'il y a de row.

    Je l'ai amélioré dans mon cas d'utilisation avec une base en supprimant le tfilterrow et en construisant la requete de sélection dans la base de sorte de sélectionner uniquement la row sur la clé. (voir schéma)
    Cela marche, mais je ne trouve pas satisfaisant niveau performance car cela demande toujours autant de requetes que de row alors que l'on a déjà le flux souhaité en une seule lecture dans le 1er tinputaccess.

    N'existerait-il pas un composant qui éviterait cela ?
    Ou la solution serait-elle de développer un doublon du composant tFileOutputXML qui aurait la particularité d'ouvrir et fermer le fichier xml dans la phase MAIN au lieu de BEGIN et END ?
    Images attachées Images attachées  

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    465
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 465
    Par défaut
    -Sinon, ce que tu pourrais faire et qui éviterait la relecture du fichier, ce serait trier ton flux entrant.
    -A chaque fois, tu stockes la valeur de ta colonne clé dans une variable globale
    -Et tu compares la valeur courante de la colonne clé lue à la variable globale.
    -Si la valeur change, alors, tu crées un nouveau fichier dont le nom est celui de la variable globale.

    Ainsi, les fichiers seraient générés au fur et à mesure de la lecture du flux.

    Mais bon, ça risque d'être assez complexe car il faudra ajouter les lignes au fur et à mesure dans ton fichier, ce qui pourrait nécessiter l'utilisation de tJavaFlex et de fonctions d'écriture ou un "bricolage" à base de tFileOutputDelimited...

    A toi de trouver la solution qui te convient mieux selon ton niveau d'exigence en terme de performances...

Discussions similaires

  1. Exporter les données Datagridview dans fichier pdf
    Par raulily dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 12/07/2013, 18h30
  2. Réponses: 13
    Dernier message: 23/09/2011, 18h24
  3. Export de données Oracle dans fichier XML ?
    Par Ofeller dans le forum Import/Export
    Réponses: 0
    Dernier message: 09/12/2008, 18h42
  4. Problème d'exportation d'un clob dans fichier XML
    Par Fredifredo dans le forum SQL
    Réponses: 4
    Dernier message: 07/03/2007, 13h18
  5. Exporter résultats dans fichier excel [forms 6i]
    Par OUALASS dans le forum Forms
    Réponses: 4
    Dernier message: 30/05/2006, 19h38

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