Bonjour à tous,
Je poste dans cette section car je me doute que mon probléme fait intervenir une procédure stockée mais je peux bien me tromper aussi.
Le process:
- Je charge mensuellement des données depuis Excel dans une table MySQL via l'ETL TALEND.
- La table MySQL contient des données relatives à des projets
- Cette table est identifiée par une clé primaire (définie en auto increment dans MySQL)
- Un projet est identifié par un code projet et on peut avoir plusieurs lignes avec le même code projet mais pour des mois différents.
Une régle de gestion stipule que mon fichier source DOIT contenir toujours TOUS les projets déjà existants dans la table MySQL(càd que le fichier cumule tous les projets).
Exemple:
Fichier janvier:
ID || code projet
1 || P1
2 || P2
3 || P3
table MySQL correspondante
ID || code projet
1 || P1
2 || P2
3 || P3
Fichier Février:
ID || code projet
1 || P1
2 || P2
3 || P3
4 || P4
5 || P5
table MySQL correspondante
ID || code projet
1 || P1
2 || P2
3 || P3
4 || P4
5 || P5
NB: Nous voyons bien que P1, P2 et P3 existent également en février.
Cependant des erreurs de saisie de la part des utilisateurs font qu'il arrive qu'un projet existant dans la base, ne se retrouve plus dans le fichier excel du mois suivant à charger.
Exemple:
Fichier janvier:
ID || code projet
1 || P1
2 || P2
3 || P3
table MySQL correspondante
ID || code projet
1 || P1
2 || P2
3 || P3
Fichier Février:
ID || code projet
1 || P1
2 || P2
4 || P4
5 || P5
table MySQL correspondante
ID || code projet
1 || P1
2 || P2
3 || P3
4 || P4
5 || P5
NB: Nous voyons bien que P3 n'existe pas dans le fichier source mais existe
dans la base en février.
OBJECTIF:
Mon problème est de gérer ces erreurs lors du chargement mensuel des fichiers Excel: si un projet qui EXISTE déjà dans ma base ne figure pas dans le nouveau chargement, alors le code projet correspondant doit aller dans une table d'erreur(cela permettra d'alerter l'utilisateur et de charger la ligne correspondante à ce projet ).
Dans l'exemple ci-dessous cela revient à insérer P3 dans une table d'erreur.
J'espere que vous comprenez mon probléme mais je suis à votre disposition pour toute question supplémentaire
Je vous remercie d'avance
Partager