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 :

Décalage des champs à l'écriture de deux sources dans un même fichier .csv


Sujet :

Développement de jobs

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 111
    Points : 44
    Points
    44
    Par défaut Décalage des champs à l'écriture de deux sources dans un même fichier .csv
    Bonjour

    Je travaille avec une base de données Oracle 11g et Talend Open Studio version 4.1.2...
    J'ai réalisé un job qui me permet de récupérer les champs de plusieurs tables d'une même base, afin de remplir un fichier .csv avec les données des déclarations de sinistre (en assurance).

    Après avoir récupéré ces données, j'effectue dessus deux traitements différents et séparés. Je dois ensuite les ré-assembler dans un même fichier (le schéma des deux flux de données étant exactement le même, ainsi que celui du fichier final).

    J'ai testé plusieurs solutions, mais à chaque fois, j'ai l'impression que les deux écritures dans le fichier se font simultanément, ce qui conduit au décalage de certain champs. Ainsi je me retrouve avec des champs de type date contenant des données de type string (par exemple 'Société' ou encore 'France' qui vont normalement dans d'autres champs.)

    Les deux solutions principales testées sont dans le .zip joint à ce post. J'ai fait aussi quelques variantes avec des 'onComponentOk' sur le fichier output, avant d'écrire le deuxième flux dans ce même fichier. J'ai aussi essayé avec un tUnite... Je n'arrive pas à résoudre mon problème!

    Le fait est que j'effectue quelques traitements avant de séparer les deux flux de données, et je ne souhaite donc pas créer les deux flux séparément à partir de deux tOracleInput contenant la même requête... Ce serait utiliser de la mémoire bêtement...

    Merci pour votre aide.

    Sinistres.zip

  2. #2
    Membre éprouvé
    Homme Profil pro
    Architecte Décisionnel
    Inscrit en
    Février 2008
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte Décisionnel

    Informations forums :
    Inscription : Février 2008
    Messages : 866
    Points : 1 260
    Points
    1 260
    Par défaut
    Bonjour,

    En partant de ta version 2, concernant le déclenchement de 2 deuxième sous-job qui lit ton fichier temporaire, je crois que le mieux serait d'utiliser un lien 'On Subjob Ok' à partir de ton composant tOracleImput 'Request'.

    Pour l'insertion des lignes dans ton fichier, il me semble qu'il faut cocher l'option 'Output in row mode' dans l'onglet 'Advanced settings' des propriétés de tes composants tFileOutputDelimited.

    Nicolas

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 111
    Points : 44
    Points
    44
    Par défaut
    Bonjour,

    Voila ce que j'ai fais :

    Sinistres.zip

    J'ai toujours un problème à la lecture de 'BAMBRIDGE', je ne comprend pas pourquoi! Cette erreur intervient la où j'ai dessiné un rond rouge sur le schéma...
    J'ai bien coché la case 'output in row mode' pour les deux tFileOutputDelimited...

    Je ne trouve pas la solution!
    Merci pour votre aide

  4. #4
    Membre éprouvé
    Homme Profil pro
    Architecte Décisionnel
    Inscrit en
    Février 2008
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte Décisionnel

    Informations forums :
    Inscription : Février 2008
    Messages : 866
    Points : 1 260
    Points
    1 260
    Par défaut
    L'erreur For Input String intervient par exemple lorsqu'un champ numérique contient une valeur qui n'est pas numérique.
    Dans ton cas, tu dois avoir la valeur 'BAMBRIDGE' dans un champ dont le format ne correspond pas.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 111
    Points : 44
    Points
    44
    Par défaut
    En effet, dans le champs 'localité', j'ai "Stade Bambridge", et le champs suivant est responsabilité (un integer)... Je pense donc que la chaine est splittée en deux au niveau de l'espace et que la deuxième partie (bambridge) est donc dans le champs suivant... A quoi cela peut-il être du?

  6. #6
    Membre éprouvé
    Homme Profil pro
    Architecte Décisionnel
    Inscrit en
    Février 2008
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte Décisionnel

    Informations forums :
    Inscription : Février 2008
    Messages : 866
    Points : 1 260
    Points
    1 260
    Par défaut
    Est-ce qu'il n'y aurait pas le caractère que tu as utilisé comme séparateur dans ton fichier dans une valeur ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 111
    Points : 44
    Points
    44
    Par défaut
    YYYYYYEEEEEEEEESSSSSSSSSS!!!

    Merci infiniment!!! Le problème venait de la! Mon séparateur de champs était ";",donc oui effectivement il devait être utilisé...

    C'est top! J'ai donc mis en séparateur "::", j'espère que ça conviendra définitivement!

    Merci merci merci

  8. #8
    Membre éprouvé
    Homme Profil pro
    Architecte Décisionnel
    Inscrit en
    Février 2008
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte Décisionnel

    Informations forums :
    Inscription : Février 2008
    Messages : 866
    Points : 1 260
    Points
    1 260
    Par défaut
    Je crois qu'on l'aura tous rencontré au moins une fois le coup du séparateur qui se balade dans les données

    Du coup pour mes fichiers temporaires, j'utilise des séparateurs un peu exotiques, du genre ""+(char)254. Il faudrait vraiment trouver des utilisateurs tordus pour utiliser ce genre de caractère.

    Nicolas

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 111
    Points : 44
    Points
    44
    Par défaut
    En effet!!!

    Merci encore pour ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Décalage des champs lors de l'importation d'un fichier CSV
    Par Alsvghn dans le forum Modélisation
    Réponses: 1
    Dernier message: 28/08/2013, 12h11
  2. Décalage des champs
    Par harkrisz dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 11/03/2013, 18h32
  3. Réponses: 9
    Dernier message: 16/02/2010, 19h50
  4. [WD14] Exporter deux tables dans un même fichier Excel
    Par Pownee dans le forum WinDev
    Réponses: 2
    Dernier message: 21/09/2009, 09h10
  5. Réponses: 5
    Dernier message: 27/04/2007, 11h40

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