|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre du Club
![]() Inscription : mars 2007 Messages : 248 ![]() |
Bonjour
Comment parvenir à créer un job générique afin d'insérer dans n tables le contenu de n feuilles excel ? Ceci en respectant le fait que les noms et tailles de colonnes sont propres à chaque table (intégrent le nom de la feuille Excel) Code :
Mon job actuel, fonctionne mais avec les tables créées comme ceci : Code : Code :
D'avance merci de votre attention msomso |
||||
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() Nicolas SaumandeArchitecte Décisionnel Inscription : février 2008 Messages : 693 ![]() |
Bonjour,
Une solution, qui n'est peut-être pas la meilleure serait d'utiliser un tBaseRow afin de coder une requête du genre insert into MaTable Values('Code', 'Libelle'). En récupérant les valeurs de MaTable, Code et Libelle des feuilles excel. Ainsi il est possible de faire les insert sans spécifier le nom des colonnes. Nicolas |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : mars 2007 Messages : 248 ![]() |
Bonjour
J'y ai pensé un peu, mais cette solution ne permet pas gérer proprement les rejets/erreurs etc. Merci tout de même msomso |
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : mars 2007 Messages : 248 ![]() |
Bonjour
J'avance en effet sur la solution avec tPostgresqlRow. Mais, je n'arrive pas à récupérer les erreurs d'insertion effectuées dans ce composant. Comment utiliser le lien "Reject" du composant tPostgresqlRow pour diriger la sortie vers un fichier ? Merci msomso |
|
|
00
|
|
|
#5 |
|
Membre émérite
![]() Nicolas SaumandeArchitecte Décisionnel Inscription : février 2008 Messages : 693 ![]() |
|
|
|
00
|
|
|
#6 | |||
|
Membre du Club
![]() Inscription : mars 2007 Messages : 248 ![]() |
Non, malheureusement cela génère une erreur :
Citation:
Code :
|
|||
|
|
00
|
|
|
#7 |
|
Membre émérite
![]() Nicolas SaumandeArchitecte Décisionnel Inscription : février 2008 Messages : 693 ![]() |
J'ai fait un petit test rapide, et je n'ai pas d'erreur de compilation en utilisant un lien rejet après un lien iterate...
J'ai regardé le code généré, en fait ça semble poser problème à partir du moment où tu définis un schéma au niveau du tPostgresqlRow. A priori, tu n'en as pas besoin. L'ordre sql que tu mets dans le tPostgresqlRow utilise les variables du tFlowToIterate, c'est bien ça ? Nicolas |
|
|
00
|
|
|
#8 | ||||
|
Membre du Club
![]() Inscription : mars 2007 Messages : 248 ![]() |
Bonjour
Citation:
Après avoir supprimé le schema de tPostgresql Row l'erreur est : Citation:
Code :
msomso |
||||
|
|
00
|
|
|
#9 | |
|
Membre du Club
![]() Inscription : mars 2007 Messages : 248 ![]() |
Bonjour
en utilisant tFileOutputDelimited à la place tFileOutputExcel, je n'ai pas d'erreur de compilation/exécution. Mais le fichier trace contient juste ceci (cf. png en PJ): Citation:
Avec quel type de fichier as-tu testé Nicolas ? Arrives-tu à traces en détail les rejets (enregistrement et message d'errreur) ? msosmo |
|
|
|
00
|
|
|
#10 |
|
Membre émérite
![]() Nicolas SaumandeArchitecte Décisionnel Inscription : février 2008 Messages : 693 ![]() |
Alors je ne suis pas allé jusqu'à l'exécution, j'avais juste essayé de compiler un job avec un lien iterate suivi d'un tPostgresqlRow avec un lien rejet.
Mon lien rejet a les mêmes champs que toi : errorCode errorMessage Mais tu peux le compléter en ajoutant un tMap et en récupérant les valeurs qui ont posé problème, de la même façon que tu les as utilisées dans le tPostgresqlRow. Sinon, je n'ai effectivement jamais essayé de gérer des rejets sur un tBaseRow... Donc je ne te pourrai pas te garantir que cela fonctionne comme tu le souhaites. Nicolas |
|
|
00
|
|
|
#11 |
|
Membre du Club
![]() Inscription : mars 2007 Messages : 248 ![]() |
Bonjour
Effectivement avec tMap j'arrive à tracer tous les enregistrements rejetés, mais le fichier doit être en ajout (a cause de "iterate") donc il faut y ajouter date, penser à le purger etc ... Est-ce que quelqu'un a testé les schémas dynamiques ? Comment ça marche ? Merci bien |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com