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
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.
| Bloc | Paramètre |
|---|---|
| 1 Fichier src |
|
| 2 Champs calculés calc |
|
| 3 Regroupement group |
|
| 4 Exportation de données out |
|
Connexions des ports
- src
out→ calcin - calc
out→ groupin - group
out→ outin
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
| Region | RevenueTotal | Orders |
|---|---|---|
| North | 35 | 2 |
| South | 30 | 1 |
Les valeurs Revenue calculées avant regroupement sont 20, 15 et 30. Le chiffre d’affaires total est 65.
Exécuter et vérifier
- Vérifiez le séparateur décimal : 7.5 utilise decimal=".".
- Créez un champ calculé Revenue, puis regroupez par Region.
- 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.