En mettant la logique métier de côté, le problème se traite par méthodes d’intégration.
Je le découperais en 4 couches :
1. Méthodes de collecte du fichier source
A. Téléchargement planifié
Un job va chercher périodiquement le fichier Excel sur le site externe.
Usage :
-
site public
-
URL stable
-
pas d’événement émis par la source
Avantages :
-
simple
-
robuste
-
facile à opérer
Inconvénients :
-
on vérifie même quand rien n’a changé
-
dépend du rythme de polling
B. Détection par empreinte du fichier
On télécharge ou on lit les métadonnées, puis on calcule un hash du fichier.
Principe :
-
si le hash est identique, on ne fait rien
-
si le hash change, on lance l’analyse
Avantages :
-
très efficace
-
évite les imports inutiles
Inconvénient :
-
dit que le fichier a changé, pas quoi a changé
C. Versionnement systématique des snapshots
Chaque fichier reçu est archivé comme une version datée.
Principe :
-
on conserve
v1,v2,v3, etc. -
la comparaison se fait entre deux snapshots successifs
Avantages :
-
audit complet
-
possibilité de rejouer l’historique
-
très utile pour les écarts
Inconvénient :
-
plus de stockage
-
plus de discipline opérationnelle
2. Méthodes de détection des différences
A. Diff au niveau du fichier
On compare le fichier courant au précédent comme un objet global.
Résultat :
-
changé / inchangé
Usage :
-
bon comme filtre rapide
-
insuffisant seul pour ERPLibre
B. Diff au niveau des lignes
C’est la méthode la plus sérieuse dans ce genre de cas.
Principe :
-
chaque ligne représente un enregistrement métier
-
on identifie une ligne par une clé stable
-
on compare ancien et nouveau jeu de lignes
On obtient 4 catégories :
-
nouvelles lignes
-
lignes supprimées
-
lignes modifiées
-
lignes inchangées
Avantages :
-
très compatible avec ERPLibre
-
permet du
create / update / archive -
méthode généralement la plus propre
Condition :
-
il faut une clé métier stable, ou à défaut une clé technique reconstruite
C. Diff au niveau des cellules
On compare champ par champ à l’intérieur d’une ligne.
Exemple :
-
montant changé
-
date changée
-
statut changé
Avantages :
-
précision fine
-
utile pour journaliser les changements
-
permet d’éviter des mises à jour inutiles dans ERPLibre
Inconvénient :
-
plus coûteux
-
plus complexe si les colonnes changent souvent
D. Diff par hash de ligne
Pour chaque ligne normalisée, on calcule une empreinte.
Principe :
-
même clé + hash différent = ligne modifiée
-
même clé + hash identique = aucune mise à jour
Avantages :
-
très efficace
-
très propre techniquement
-
excellent compromis entre simplicité et performance
C’est souvent la meilleure méthode pratique.
3. Méthodes de synchronisation vers ERPLibre
A. Import brut et remplacement complet
On efface ou désactive les anciennes données, puis on recharge tout.
Avantages :
-
très simple conceptuellement
Inconvénients :
-
brutal
-
mauvais pour l’historique
-
risque de casser les liens ERPLibre
-
peu élégant
Je ne recommande pas cette méthode sauf petit volume et modèle jetable.
B. Synchronisation incrémentale par upsert
Méthode standard recommandée.
Principe :
-
si la clé n’existe pas : création
-
si la clé existe et les données changent : mise à jour
-
si la clé n’existe plus dans la source : archivage ou désactivation
Avantages :
-
propre
-
stable
-
compatible avec le fonctionnement d’ERPLibre
-
bon pour le suivi dans le temps
C’est la méthode la plus naturelle pour ce besoin.
C. Staging puis promotion
On charge d’abord les données dans une zone tampon, puis on les pousse dans les modèles métier ERPLibre après validation.
Deux étages :
-
table/modèle de staging
-
modèles métier finaux
Avantages :
-
très professionnel
-
permet validation, nettoyage, contrôle qualité
-
protège les modèles métier
-
excellent pour les fichiers Excel externes, souvent imparfaits
C’est souvent la meilleure architecture réelle.
D. Journal des écarts avant écriture
Avant de modifier ERPLibre, on produit un lot d’écarts :
-
à créer
-
à modifier
-
à archiver
-
anomalies
Avantages :
-
auditabilité
-
validation humaine possible
-
utile si les subventions sont sensibles
Très bonne méthode quand la donnée a une portée administrative.
4. Méthodes d’intégration technique avec ERPLibre
A. Module ERPLibre dédié
On crée un module ERPLibre qui :
-
stocke la source
-
gère le staging
-
calcule les écarts
-
met à jour les modèles métier
Avantages :
-
cohérent
-
traçable
-
maintenable
-
intégré au cycle ERPLibre
C’est la méthode la plus propre si le système doit durer.
B. ETL externe qui appelle ERPLibre proprement
Un service externe récupère Excel, calcule les écarts, puis pousse les mises à jour vers ERPLibre via son mécanisme applicatif.
Avantages :
-
séparation claire
-
bon si vous avez déjà une stack d’intégration
-
plus facile à industrialiser
Inconvénient :
-
un système de plus à opérer
C. Écriture directe en base
Possible techniquement, mais mauvaise méthode pour ERPLibre.
Pourquoi :
-
contourne les règles métier
-
contourne les automatismes ORM
-
risque d’incohérence
Je déconseille.
Les grandes méthodes possibles, résumées
Méthode 1 — Polling + hash fichier + reload complet
Simple, mais assez grossière.
Méthode 2 — Polling + snapshots + diff par lignes + upsert ERPLibre
Méthode standard, solide.
Méthode 3 — Polling + staging + diff par hash de ligne + validation + promotion
Méthode la plus professionnelle.
Méthode 4 — Versionnement complet + journal des écarts + synchronisation incrémentale
Méthode idéale si on veut audit, traçabilité et historique fort.
Ce que je recommanderais
Pour un contexte Polytechnique / subventions / suivi professoral, je recommanderais ceci :
Méthode cible :
-
téléchargement planifié du fichier
-
archivage du snapshot
-
normalisation du contenu Excel
-
calcul d’une clé stable par enregistrement
-
hash par ligne
-
détection des écarts
-
chargement dans un modèle de staging ERPLibre
-
validation automatique des anomalies
-
synchronisation incrémentale vers les modèles métier
-
journal d’import et d’écarts
En pratique, ça donne une architecture très propre :
Source Excel → Snapshot → Normalisation → Diff → Staging → Sync ERPLibre → Audit
En une phrase
Oui : il existe plusieurs méthodes, mais la plus sérieuse est généralement
snapshot versionné + diff par lignes (ou hash de ligne) + staging + upsert incrémental dans ERPLibre.
Je peux maintenant te faire la typologie complète des méthodes sous forme de tableau comparatif, ou directement te proposer une architecture de référence concrète pour ERPLibre.