Back to Blog
Software

Import CSV fiable : valider les données avant de modifier le logiciel métier

5 min read
Share:

Un import CSV fiable contrôle le fichier avant l’écriture, montre les erreurs par ligne et permet de corriger sans créer de doublons.

Les équipes utilisent souvent un tableur pour préparer des contacts, des produits ou des commandes. Le fichier peut contenir des colonnes déplacées, des dates ambiguës et des références absentes. Un import qui écrit directement dans la base transforme ces problèmes en corrections manuelles difficiles à suivre.

Concevez l’import comme un parcours en plusieurs étapes. Le logiciel reçoit le fichier, vérifie son format, prévisualise les changements, demande une confirmation et applique une opération traçable. Cette séparation aide l’utilisateur à comprendre ce qui va être modifié avant que les données deviennent actives.

Définir le modèle attendu

Indiquez le nom des colonnes, leur type, leur caractère obligatoire et leur signification. Un fichier de produits doit préciser si le prix est hors taxe ou toutes taxes comprises. Une date doit préciser le format et le fuseau si cette information influence une échéance.

Le modèle peut accepter des colonnes supplémentaires ou les refuser. Une colonne inconnue ne doit pas être ignorée silencieusement si l’utilisateur pense qu’elle sera importée. Affichez un avertissement et laissez une décision claire sur le traitement.

Fournissez un exemple anonymisé avec les formats acceptés. L’exemple ne remplace pas le message d’erreur, mais il réduit les essais inutiles. Le modèle doit aussi indiquer les valeurs autorisées pour un statut, un pays ou une catégorie.

Valider sans écrire

La première étape lit le fichier et produit un aperçu. Vérifiez l’encodage, le séparateur, les colonnes, les types, les champs obligatoires et les limites de taille. Comptez les lignes lues et distinguez les lignes vides des lignes réellement invalides.

Les références doivent être recherchées dans une source maîtrisée. Un produit inconnu peut être signalé comme erreur ou créer un nouvel objet selon la règle du métier. Ne créez pas implicitement une nouvelle fiche lorsque l’utilisateur voulait mettre à jour une fiche existante.

Les erreurs doivent indiquer la ligne, la colonne, la valeur concernée et la correction attendue. « Format invalide » aide peu. « La date doit être au format AAAA-MM-JJ » donne une action. Le rapport peut être téléchargé pour corriger le fichier dans le tableur.

Un fichier contenant des erreurs peut être refusé entièrement ou importer seulement les lignes valides. Le choix dépend du métier. Pour des commandes, un import partiel peut créer une situation incohérente. Pour une liste indépendante de contacts, il peut être acceptable si le résultat indique précisément les lignes ignorées.

Éviter les doublons

Définissez une clé d’identification stable. Une référence externe, un identifiant fourni par le système source ou une combinaison documentée peut servir à reconnaître une mise à jour. Le nom seul est rarement suffisant, car deux personnes peuvent le partager et les accents peuvent varier.

L’import doit expliquer son comportement devant une clé déjà présente : mise à jour, rejet ou création d’une nouvelle version. Une mise à jour doit contrôler la version courante si plusieurs personnes modifient le dossier. Ce contrôle rejoint les règles de gestion des versions de documents.

Une reprise après interruption ne doit pas recommencer les lignes déjà appliquées sans protection. Enregistrez un identifiant d’import et l’état de chaque ligne. Une clé d’idempotence ou une contrainte adaptée permet de relancer le traitement sans créer de doublons.

Appliquer les changements par étapes

Pour un grand fichier, utilisez un traitement différé. Affichez un état, un nombre de lignes traitées et un résultat partiel si le métier l’autorise. Une erreur technique doit permettre de retrouver le point d’arrêt et les lignes concernées.

Une transaction unique peut protéger un petit import, mais elle peut verrouiller trop longtemps une table. Un traitement par lots réduit la durée des verrous, au prix d’une reprise et d’un état intermédiaire plus complexes. La décision dépend du volume et de la cohérence requise.

Les notifications doivent annoncer la fin du traitement et le rapport d’erreurs. Elles ne doivent pas exposer les données importées à un destinataire non autorisé. Le fichier d’erreurs peut contenir des informations sensibles et doit avoir une durée de vie limitée.

Contrôler les droits et l’audit

Le droit de modifier un écran ne donne pas forcément le droit d’importer une base entière. Limitez les colonnes selon le rôle et contrôlez l’entreprise concernée pour chaque ligne. Un utilisateur ne doit pas pouvoir importer une référence appartenant à un autre espace.

Enregistrez l’auteur, la date, le nom logique du fichier, le modèle choisi, le nombre de lignes et le résultat. Le journal d’audit doit indiquer les actions sensibles sans recopier tout le contenu du fichier.

Tester avec des fichiers imparfaits

Préparez des fichiers avec des caractères accentués, des lignes vides, des dates incorrectes, des colonnes supplémentaires, des doublons et des références supprimées. Testez un fichier vide, un fichier trop grand et un fichier coupé pendant la transmission.

Vérifiez que l’aperçu et le résultat final utilisent les mêmes règles. Un import qui affiche une ligne valide puis la rejette à l’application crée une confusion évitable. Les critères d’acceptation peuvent préciser les résultats attendus par type d’erreur.

Un import devient fiable lorsque l’utilisateur peut comprendre ce qui sera écrit, corriger les erreurs et reprendre le traitement sans doublons. Le format CSV n’est qu’un contenant ; les règles d’identité, de validation et de reprise portent la plus grande partie du risque.

Sources : RFC 4180, format CSV, OWASP, validation des entrées.

Enjoyed this article? Share it!