Skip to content

BDD-98 — Configurer le bloc Nettoyer

Objectif

Permettre à l’administrateur de configurer un bloc Traitement / Nettoyer pour supprimer les doublons, remplacer les valeurs nulles et retirer les lignes entièrement nulles, afin d’obtenir des données propres avant les étapes suivantes.

Périmètre livré

  • Option suppression des doublons sur une ou plusieurs colonnes (clé composite).
  • Option remplacement des valeurs nulles ou vides par une valeur par défaut (chaîne).
  • Option suppression des lignes entièrement nulles : une ligne est supprimée si, pour toutes les colonnes connues de la source, les cellules sont nulles ou vides (après les étapes précédentes de la simulation).
  • Affichage du nombre de lignes supprimées après une simulation sur les lignes chargées depuis le fichier du dépôt (GET /sources/preview?documentUuid=). Ce n’est pas l’exécution complète du pipeline côté serveur (hors périmètre MVP4 actuel).
  • Les blocs Source lient un fichier du dépôt (documents, via inputDocumentUuid), et non une source Heriade.
  • Les colonnes / lignes d’aperçu (Mapper et Nettoyer) remontent jusqu’aux blocs Source et chargent le fichier via GET /sources/preview?documentUuid=. Voir Workflows (MVP4).

Ordre appliqué (simulation)

  1. Dédoublonnage (première occurrence conservée).
  2. Remplacement des valeurs nulles / vides.
  3. Suppression des lignes entièrement nulles (selon les colonnes source listées).

Format de configuration JSONB (workflow_nodes.configuration)

json
{
  "type": "nettoyer",
  "dedupe": { "enabled": true, "columns": ["code", "libelle"] },
  "fillNulls": { "enabled": true, "value": "N/A" },
  "dropEmptyRows": { "enabled": true }
}

Fichiers principaux

RôleChemin
Moteur (logique pure)front/src/pages/admin/workflows/workflow-nettoyer.engine.js
Sync UI sous-type / config.typefront/src/pages/admin/workflows/workflow-traitement.sync.js
Options type traitementfront/src/pages/admin/workflows/workflow-treatment-type-options.js
Panneau UIfront/src/components/workflows/WorkflowNettoyerPanel.vue
Intégration éditeurfront/src/pages/admin/workflows/WorkflowEditorPage.vue
Résolution sources amont (récursif)front/src/pages/admin/workflows/workflow-upstream-sources.resolver.js
Chargement lignes source (prévisualisation)front/src/pages/admin/workflows/workflow-source-preview.fetch.js
Libellé canvas si nom videfront/src/pages/admin/workflows/workflow-canvas-display.js
Tiroir inspecteurfront/src/components/workflows/WorkflowInspectorDrawer.vue

API

  • PUT /workflows/:uuid/canvas : nodes[].inputDocumentUuid pour les blocs source ; nodes[].config pour les traitement.

Tests

  • front/src/__tests__/pages/admin/workflows/workflow-nettoyer.engine.spec.js
  • front/src/__tests__/pages/admin/workflows/workflow-traitement.sync.spec.js
  • front/src/__tests__/pages/admin/workflows/workflow-upstream-sources.resolver.spec.js
  • front/src/__tests__/pages/admin/workflows/workflow-source-preview.fetch.spec.js
  • front/src/__tests__/pages/admin/workflows/workflow-canvas-display.spec.js

Scripts SQL

  • sql/tool_14_workflow_input_document.sqlinput_document_id sur workflows et workflow_nodes.