Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > ETL > Talend
Talend Forum d'entraide sur Talend (Talend Open Studio, ...). Avant de poster --> FAQ Talend, Tutoriels Talend
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/08/2011, 17h12   #1
Invité régulier
 
m g
Inscription : juin 2010
Messages : 28
Détails du profil
Informations personnelles :
Nom : m g

Informations forums :
Inscription : juin 2010
Messages : 28
Points : 7
Points : 7
Par défaut Conversion de date

Bonjour,

j'ai un petit souci sur un job que j'essaye d'exécuter.
Mon job consiste :
- à parcourir tous les fichiers Excel qui sont contenu dans un dossier
- et pour chaque fichier à insérer toutes les lignes qu'il contient dans une table en base de données.
Je précise que tous les fichiers Excel ont un format strictement identique.

J'ai 3 dossiers (à chaque dossier correspond une table précise en BDD) donc comme je débute j'ai créé un job pour mon premier dossier et je comptais dupliquer ce job pour le 2nd et le 3ème dossier.

Mais voilà le problème : mon 1er job se déroule très bien et me fait les insertions correctement.
Du coup j'ai dupliqué mon job, je l'ai renommé, changé les connexions et les paramètres qui vont bien...mais qd j'exécute ce 2nd job ça ne marche plus!

J'ai l'erreur suivante :
Exception in component tMap_6
java.lang.NullPointerException
at java.text.SimpleDateFormat.parse(Unknown Source)
at java.text.DateFormat.parse(Unknown Source)
at routines.TalendDate.parseDate(TalendDate.java:641)
at test_administration_reporting.alim_depuis_excel_bmm_0_1.Alim_depuis_Excel_BMM.tFileList_2Process(Alim_depuis_Excel_BMM.java:2227)
at test_administration_reporting.alim_depuis_excel_bmm_0_1.Alim_depuis_Excel_BMM.runJobInTOS(Alim_depuis_Excel_BMM.java:3482)
at test_administration_reporting.alim_depuis_excel_bmm_0_1.Alim_depuis_Excel_BMM.main(Alim_depuis_Excel_BMM.java:3211)
[statistics] disconnected
Job Alim_depuis_Excel_BMM terminé à 16:47 31/08/2011. [Code sortie=1]


J'ai vérifié mes fichiers Excel mais ceux-ci ont exactement la même config donc je ne vois pas pkoi ça marcherait pour un job et pas pour l'autre...
Pouvez-vous m'aider??

Merci bien !

complément d'information dans mon tMap:

ENTREE du tMap : une colonne DATE de la forme 28/02/2011, de type String (en provenance de mon fichier Excel) intitulée row8.DATE
-->
VARIABLE :
TalendDate.parseDate("dd/MM/yy",row8.DATE) de type DATE et intitulé conversionStringDate
-->
SORTIE du tMap : une colonne ID_DATE, de type String reconstituée à l'aide de l'expression suivante :
TalendDate.formatDate("yyyy",Var.conversionStringDate).toString()
+TalendDate.formatDate("MM",Var.conversionStringDate).toString()
+TalendDate.formatDate("dd",Var.conversionStringDate).toString()
Images attachées
Type de fichier : jpg 2011-08-31_170024.jpg (30,0 Ko, 7 affichages)
Type de fichier : jpg 2011-08-31_171555.jpg (199,7 Ko, 11 affichages)
maeva13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 17h37   #2
Membre habitué
 
Homme Nicolas Vandenbergue
Conseil - Consultant en systèmes d'information
Inscription : janvier 2011
Messages : 88
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vandenbergue
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information
Secteur : Conseil

Informations forums :
Inscription : janvier 2011
Messages : 88
Points : 112
Points : 112
Bonjour,
Tu as certainement une valeur vide (null) dans ton fichier excel qui fait que ton TalendDate.parseDate("dd/MM/yy",row8.DATE) provoque une exception.

Tu peux ajouter un contrôle sur le row8.DATE du genre :

TalendDate.parseDate("dd/MM/yy",(!Relational.ISNULL(row8.DATE) ? row8.DATE : TalendDate.getDate("YY/MM/DD") ) )
(ici, si la valeur est null, on prend la date du jour).


Enfin, pour alléger ta variable de sortie, tu peux utiliser directement :
TalendDate.formatDate("yyyyMMdd",Var.conversionStringDate) au lieu du
TalendDate.formatDate("yyyy",Var.conversionStringDate).toString()
+TalendDate.formatDate("MM",Var.conversionStringDate).toString()
+TalendDate.formatDate("dd",Var.conversionStringDate).toString()
NicolasTT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2011, 16h18   #3
Invité de passage
 
Homme Alexandre
Inscription : septembre 2011
Messages : 13
Détails du profil
Informations personnelles :
Nom : Homme Alexandre

Informations forums :
Inscription : septembre 2011
Messages : 13
Points : 3
Points : 3
bonjour,

de ce que j'ai cru comprendre, que si ta colonne date est de la forme 28/02/2011, alors il faut que conversionStringDate de type DATE soit plutôt
TalendDate.parseDate("dd/MM/yyyy",row8.DATE)

Mais bon, je débute, et je me trompe surement
_Tido_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h47.


 
 
 
 
Partenaires

Hébergement Web