Variables
Les variables vous permettent de stocker des valeurs intermédiaires pour rendre vos formules plus lisibles et éviter les calculs redondants.
Pourquoi les variables ?
Sans variables, les formules complexes deviennent vite illisibles. Comparez ces deux versions :
❌ Sans variables (difficile à lire)
SOMME(TRANSFORMER(FILTRER(CHERCHER.OBJETS(commande, {}), {{$.statut}} == "validée"), {{$.total}}))✓ Avec variables (clair et lisible)
var toutesLesCommandes = CHERCHER.OBJETS(commande, {});
var commandesValidees = FILTRER(toutesLesCommandes, {{$.statut}} == "validée");
var totaux = TRANSFORMER(commandesValidees, {{$.total}});
SOMME(totaux)Les variables améliorent :
- La lisibilité — chaque étape est nommée et claire
- La maintenabilité — plus facile à modifier ou débugger
- La performance — évite de recalculer la même chose plusieurs fois
Déclarer une variable
Pour déclarer une variable, utilisez le mot-clé varsuivi du nom de la variable et d'un signe égal.
var nomVariable = expression;Par exemple :
var total = SOMME([1, 2, 3, 4]);
total * 2Dans cet exemple :
var totalcrée une variable nommée "total"SOMME([1, 2, 3, 4])est calculé (= 10)- La valeur 10 est stockée dans la variable
total total * 2retourne 20
Important
Chaque déclaration de variable doit se terminer par un point-virgule ;. La dernière ligne de votre formule (celle qui retourne le résultat) n'a pas besoin de point-virgule.
Utiliser plusieurs variables
Vous pouvez déclarer autant de variables que nécessaire. Chaque variable peut utiliser les variables déclarées précédemment.
var prixHT = {{produit.prixUnitaire}} * {{produit.quantite}};
var tva = prixHT * 0.20;
var prixTTC = prixHT + tva;
prixTTCIci, chaque variable dépend de la précédente :
prixHTest calculé d'abordtvautiliseprixHTprixTTCutiliseprixHTettva
Exemple avec recherche
Les variables sont particulièrement utiles quand vous devez rechercher un objet et l'utiliser plusieurs fois :
var client = CHERCHER.OBJET(client, { id: {{commande.clientId}} });
var adresse = {{client.adresse}};
var ville = {{client.ville}};
CONCAT(adresse, ", ", ville)Bon à savoir
Sans variable, vous devriez appeler CHERCHER.OBJET deux fois pour accéder à l'adresse et à la ville. Avec une variable, la recherche n'est faite qu'une seule fois.
Bonnes pratiques
Nommez clairement vos variables
Utilisez des noms descriptifs qui expliquent ce que contient la variable.
❌ À éviter
var x = SOMME({{commande.produits.prix}});
var y = x * 0.20;✓ Recommandé
var totalHT = SOMME({{commande.produits.prix}});
var montantTVA = totalHT * 0.20;Évitez les recherches multiples
Si vous utilisez le même objet plusieurs fois, stockez-le dans une variable.
❌ Lent (2 recherches)
CONCAT(
CHERCHER.OBJET(client, {}).nom,
" - ",
CHERCHER.OBJET(client, {}).email
)✓ Rapide (1 recherche)
var client = CHERCHER.OBJET(client, {});
CONCAT({{client.nom}}, " - ", {{client.email}})Décomposez les formules complexes
Si une formule fait plus de 2-3 opérations, découpez-la en étapes.
// Étape 1 : Récupérer les données
var commandes = CHERCHER.OBJETS(commande, {});
// Étape 2 : Filtrer les commandes de l'année
var commandesAnnee = FILTRER(commandes,
ANNEE({{$.dateCreation}}) == ANNEE(AUJOURDHUI())
);
// Étape 3 : Calculer le total
var totaux = TRANSFORMER(commandesAnnee, {{$.totalTTC}});
SOMME(totaux)Exemples pratiques
Générer un code incrémental
var existants = ["MIEL001", "MIEL002", "MIEL003"];
var numeros = TRANSFORMER(existants, NOMBRE(COUPER({{$}}, 3, 4)));
var prochainNumero = MAX(numeros) + 1;
CONCAT("MIEL", REMPLIR.ZEROS(prochainNumero, 3))
// Résultat: "MIEL004"Ce code extrait les numéros des codes existants, trouve le maximum, et génère le code suivant.
Calculer une facturation complexe
var produits = {{facture.lignes}};
var sousTotal = SOMME(TRANSFORMER(produits, {{$.quantite}} * {{$.prixUnitaire}}));
var remise = SI {{client.fidele}} ALORS sousTotal * 0.10 SINON 0 FINSI;
var totalHT = sousTotal - remise;
var tva = totalHT * 0.20;
var totalTTC = totalHT + tva;
totalTTCAnalyser des données filtrées
var projets = CHERCHER.OBJETS(projet, {});
var projetsEnCours = FILTRER(projets, {{$.statut}} == "en_cours");
var nombreProjets = COMPTER(projetsEnCours);
var budgetTotal = SOMME(TRANSFORMER(projetsEnCours, {{$.budget}}));
var budgetMoyen = budgetTotal / nombreProjets;
CONCAT(nombreProjets, " projets en cours - Budget moyen : ",
FIXER.DECIMALES(budgetMoyen, 2), " €")Prochaine étape
Maintenant que vous savez organiser vos formules avec des variables, découvrez les fonctions de manipulation de tableaux.