Objectif et prérequis

Calculez le chiffre d’affaires de chaque vente et préparez un tableau récapitulatif par région.

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

Region;Qty;Price
North;2;10
North;3;5
South;4;7.5

Blocs, connexions et paramètres exacts

Schéma explicatifAgrandir ↗07. Chiffre d’affaires et totaux régionaux. Topologie de l’exemple 07 : 4 blocs, 3 connexions. Les identifiants de nœuds et les ports du graphe configuré sont conservés.
Schéma du flux 07

Topologie de l’exemple 07 : 4 blocs, 3 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_sales_calc
  • Paramètres de lecture:
    • Feuille: CSV
    • Plage: A1:C4
    • La première ligne contient les en-têtes: так
    • Séparateur: ;
2
Champs calculés
calc
  • Champs:
      • Nom: Revenue
      • Formule: round(number(field("Qty")) * number(field("Price")), 2)
  • Séparateur décimal: .
3
Regroupement
group
  • Clés: Region
  • aggregates:
      • column: Revenue
      • Exploitation: sum
      • Nom: RevenueTotal
      • column: Revenue
      • Exploitation: count
      • Nom: Orders
  • Séparateur décimal: .
4
Exportation de données
out
  • Format: xlsx
  • Nom du fichier: regional_sales
  • Rôle: download
  • Séparateur: ;
  • Fuseau horaire: Europe/Kyiv

Connexions des ports

  • src out → calc in
  • calc out → group in
  • group 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_sales_calc",
        "options": {
          "sheet": "CSV",
          "range": "A1:C4",
          "header": true,
          "delimiter": ";"
        }
      }
    },
    {
      "id": "calc",
      "type": "calculation",
      "label": "calc",
      "config": {
        "fields": [
          {
            "name": "Revenue",
            "expression": "round(number(field(\"Qty\")) * number(field(\"Price\")), 2)"
          }
        ],
        "decimal": "."
      }
    },
    {
      "id": "group",
      "type": "group",
      "label": "group",
      "config": {
        "keys": [
          "Region"
        ],
        "aggregates": [
          {
            "column": "Revenue",
            "op": "sum",
            "name": "RevenueTotal"
          },
          {
            "column": "Revenue",
            "op": "count",
            "name": "Orders"
          }
        ],
        "decimal": "."
      }
    },
    {
      "id": "out",
      "type": "export",
      "label": "out",
      "config": {
        "format": "xlsx",
        "filename": "regional_sales",
        "destination": "download",
        "delimiter": ";",
        "timezone": "Europe/Kyiv"
      }
    }
  ],
  "edges": [
    {
      "source": "src",
      "target": "calc",
      "source_port": "out",
      "target_port": "in"
    },
    {
      "source": "calc",
      "target": "group",
      "source_port": "out",
      "target_port": "in"
    },
    {
      "source": "group",
      "target": "out",
      "source_port": "out",
      "target_port": "in"
    }
  ]
}

Résultat attendu

RegionRevenueTotalOrders
North352
South301

Les valeurs Revenue calculées avant regroupement sont 20, 15 et 30. Le chiffre d’affaires total est 65.

Exécuter et vérifier

  1. Vérifiez le séparateur décimal : 7.5 utilise decimal=".".
  2. Créez un champ calculé Revenue, puis regroupez par Region.
  3. Exécutez et vérifiez les totaux 35/30 et les nombres de lignes 2/1 ; ne comparez pas uniquement le nombre total de lignes.

Erreurs courantes

  • La formule n’exécute pas de code arbitraire : les fonctions et opérations doivent provenir du catalogue de référence.
  • Pour les noms contenant des espaces, utilisez field("Field name").
  • Ajouter Qty ou Price comme clés de regroupement crée des groupes supplémentaires au lieu d’un total régional.