Objectif et prérequis

Laissez l’utilisateur choisir une région et un montant minimal sans modifier le flux lui-même.

Cet exemple utilise des données et paramètres de démonstration. Validez le résultat attendu dans votre propre environnement avant de connecter des destinations de production. Les identifiants demo_* sont illustratifs : sélectionnez vos propres connexions ou sources pédagogiques dans l’éditeur. Le JSON ci-dessous présente la structure des blocs et connexions, pas une archive de flux prête à transférer.

Données d’entrée pédagogiques

sales.csv

Order;Region;Amount
O1;North;1200
O2;North;400
O3;South;900

Blocs, connexions et paramètres exacts

Schéma explicatifAgrandir ↗12. Filtrer avec un paramètre d’exécution. Topologie de l’exemple 12 : 5 blocs, 4 connexions. Les identifiants de nœuds et les ports du graphe configuré sont conservés.
Schéma du flux 12

Topologie de l’exemple 12 : 5 blocs, 4 connexions. Les identifiants de nœuds et les ports du graphe configuré sont conservés.

Ajoutez les blocs listés dans le concepteur, ouvrez les propriétés de chacun et définissez ces valeurs. Les noms demo_* désignent les sources et connexions pédagogiques.

BlocParamètre
1
Fichier
src
  • Rôle: source
  • Source: demo_param_sales
  • Paramètres de lecture:
    • Feuille: CSV
    • Plage: A1:C4
    • La première ligne contient les en-têtes: так
    • Séparateur: ;
2
Paramètres d’exécution
params
  • wizard: так
  • Titre: Відбір продажів
  • Champs:
      • Nom: SelectedRegion
      • Libellé: Регіон
      • Type: text
      • Obligatoire: так
      • Valeur: North
      • Nom: MinAmount
      • Libellé: Мінімальна сума
      • Type: number
      • Obligatoire: так
      • Valeur: 500
3
Filtrage
filter
  • Mode: all
  • Conditions de sélection:
      • column: Region
      • Exploitation: eq
      • value_mode: parameter
      • Bloc de paramètres: params
      • Le paramètre: SelectedRegion
      • column: Amount
      • Exploitation: gte
      • Comparaison numérique: так
      • value_mode: parameter
      • Bloc de paramètres: params
      • Le paramètre: MinAmount
4
Mappage des colonnes
map
  • Mode: columns
  • Colonnes:
      • Nom: Order
      • Valeur: Order
      • Nom: Region
      • Valeur: Region
      • Nom: Amount
      • Valeur: Amount
5
Exportation de données
out
  • Format: csv
  • Nom du fichier: selected_sales
  • Rôle: download
  • Séparateur: ;
  • Fuseau horaire: Europe/Kyiv

Connexions des ports

  • src out → params in
  • params out → filter in
  • filter out → map in
  • map out → out in
Configuration complète du graphe en JSON
{
  "version": 3,
  "nodes": [
    {
      "id": "src",
      "type": "file",
      "label": "src",
      "config": {
        "role": "source",
        "source_id": "demo_param_sales",
        "options": {
          "sheet": "CSV",
          "range": "A1:C4",
          "header": true,
          "delimiter": ";"
        }
      }
    },
    {
      "id": "params",
      "type": "parameters",
      "label": "params",
      "config": {
        "wizard": true,
        "title": "Відбір продажів",
        "fields": [
          {
            "name": "SelectedRegion",
            "label": "Регіон",
            "kind": "text",
            "required": true,
            "value": "North"
          },
          {
            "name": "MinAmount",
            "label": "Мінімальна сума",
            "kind": "number",
            "required": true,
            "value": 500
          }
        ]
      }
    },
    {
      "id": "filter",
      "type": "filter",
      "label": "filter",
      "config": {
        "mode": "all",
        "predicates": [
          {
            "column": "Region",
            "op": "eq",
            "value_mode": "parameter",
            "parameter_block": "params",
            "parameter": "SelectedRegion"
          },
          {
            "column": "Amount",
            "op": "gte",
            "numeric": true,
            "value_mode": "parameter",
            "parameter_block": "params",
            "parameter": "MinAmount"
          }
        ]
      }
    },
    {
      "id": "map",
      "type": "mapping",
      "label": "map",
      "config": {
        "mode": "columns",
        "columns": [
          {
            "name": "Order",
            "value": "Order"
          },
          {
            "name": "Region",
            "value": "Region"
          },
          {
            "name": "Amount",
            "value": "Amount"
          }
        ]
      }
    },
    {
      "id": "out",
      "type": "export",
      "label": "out",
      "config": {
        "format": "csv",
        "filename": "selected_sales",
        "destination": "download",
        "delimiter": ";",
        "timezone": "Europe/Kyiv"
      }
    }
  ],
  "edges": [
    {
      "source": "src",
      "target": "params",
      "source_port": "out",
      "target_port": "in"
    },
    {
      "source": "params",
      "target": "filter",
      "source_port": "out",
      "target_port": "in"
    },
    {
      "source": "filter",
      "target": "map",
      "source_port": "out",
      "target_port": "in"
    },
    {
      "source": "map",
      "target": "out",
      "source_port": "out",
      "target_port": "in"
    }
  ]
}

Résultat attendu

Avec SelectedRegion=North et MinAmount=500, seul O1=1200 est renvoyé. Avec SelectedRegion=South et MinAmount=500, seul O3=900 est renvoyé.

Exécuter et vérifier

  1. Enregistrez le flux ; les paramètres doivent précéder le filtre sur la même branche active. Après filtrage, le mappage conserve uniquement Order, Region et Amount.
  2. Exécutez de manière interactive, gardez North et 500, puis vérifiez O1.
  3. Relancez avec South ; obtenez O3 sans changer le graphe.

Erreurs courantes

  • Indiquez parameter_block=params : le nom du champ seul n’identifie pas le bloc source.
  • mode=any laisse passer les lignes respectant une seule condition.
  • Ne nommez pas le paramètre Region, car cette colonne existe déjà dans la source : le bloc de paramètres ajoute ses propres colonnes. C’est pourquoi SelectedRegion est utilisé.