Bonjour,
Envoyé par
clluciole
Je cherche à importer le contenu d'un fichier csv
utilise un tFileInputDelimeted
Envoyé par
clluciole
dans une table
un t#SGBD#Output
Envoyé par
clluciole
dans une table
mais uniquement les colonnes renseignées.
Je ne veux pas créer ma table de sortie avec les colonnes vides du fichier.
C'est un peu complexe il faut utiliser un tMap avec en entrée principale (main) ton tFileInputDelimeted en entré secondaire (lookup) un t#SGBD#Input avec les données existantes.
En sortie je te conseil même d'avoir deux t#SGBD#Output, l'un pour les insertions et l'autre pour les mises a jours.
Dans le cas de mise a jour tu devras tester si ta valeur est vide dans ton fichier est vide, je prend ma valeur actuelle en base sinon je prend celle du fichier.
Vu le nombre de composant faisant appel a ta base de donnés, utilise aussi t#SGBD#Connection et des t#SGBD#Commit
Voici un exemple que j'avais fait pour illustrer un insert ou update si ça peut t'aider.
Cette exemple montre une mise à jour de stock
Attention pour utiliser cette méthode il faut que tes clé primaires soit défini comme nullable
Si tu souhaites relier cet exemple à ton problème
tu remplaces le tFixedFlowInput par ton tFileInputDelimeted
Supposons que j'aurai du tester comme toi sur le champs Designation soit vide,
j'aurai fait en création :
row1.Designation == null || row1.Designation.trim().equals("") ? null : row1.Designation
et en mise à jour :
row1.Designation == null || row1.Designation.trim().equals("") ? row2.display_name: row1.Designation
A+
Partager