Documentation

Cookies & confidentialité

Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Vous pouvez modifier vos préférences à tout moment depuis le pied de page.

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)

JavaScript
findObjects(commande, {}).filter(x => x.statut === "validée").map(x => x.total).sum()

✓ Avec variables (clair et lisible)

JavaScript
let toutesLesCommandes = findObjects(commande, {});
let commandesValidees = toutesLesCommandes.filter(toutesLesCommande => toutesLesCommande.statut === "validée");
let totaux = commandesValidees.map(commandesValidee => commandesValidee.total);
totaux.sum()

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é letsuivi du nom de la variable et d'un signe égal. const dit exactement la même chose : une variable de formule n'est jamais réaffectée.

JavaScript
let nomVariable = expression;

Par exemple :

JavaScript
let total = [1, 2, 3, 4].sum();
total * 2

Dans cet exemple :

  1. let total crée une variable nommée "total"
  2. [1, 2, 3, 4].sum() est calculé (= 10)
  3. La valeur 10 est stockée dans la variable total
  4. total * 2 retourne 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.

JavaScript
let prixHT = produit.prixUnitaire * produit.quantite;
let tva = prixHT * 0.20;
let prixTTC = prixHT + tva;
prixTTC

Ici, chaque variable dépend de la précédente :

  • prixHT est calculé d'abord
  • tva utilise prixHT
  • prixTTC utilise prixHT et tva

Exemple avec recherche

Les variables sont particulièrement utiles quand vous devez rechercher un objet et l'utiliser plusieurs fois :

JavaScript
let client = findObject(client, { id: "{{commande.clientId}}" });
let adresse = client.adresse;
let ville = client.ville;
adresse.concat(", ", ville)

Bon à savoir

Sans variable, vous devriez appeler findObject 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

JavaScript
let x = commande.produits.prix.sum();
let y = x * 0.20;

✓ Recommandé

JavaScript
let totalHT = commande.produits.prix.sum();
let 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)

JavaScript
findObject(client, {}).nom.concat(" - ",
  findObject(client, {}).email
)

✓ Rapide (1 recherche)

JavaScript
let client = findObject(client, {});
client.nom.concat(" - ", client.email)

Décomposez les formules complexes

Si une formule fait plus de 2-3 opérations, découpez-la en étapes.

JavaScript
// Étape 1 : Récupérer les données
let commandes = findObjects(commande, {});

// Étape 2 : Filtrer les commandes de l'année
let commandesAnnee = client.commandes.filter(commande => commande.dateCreation.year() === today().year()
);

// Étape 3 : Calculer le total
let totaux = commandesAnnee.map(x => x.totalTTC);
totaux.sum()

Exemples pratiques

Générer un code incrémental

JavaScript
let existants = ["MIEL001", "MIEL002", "MIEL003"];
let numeros = existants.map(existant => existant.slice(4, 7).toNumber());
let prochainNumero = max(numeros) + 1;
"MIEL".concat(prochainNumero.padZeros(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

JavaScript
let produits = facture.lignes;
let sousTotal = commande.produits.map(produit => produit.quantite * produit.prixUnitaire).sum();
let remise = client.fidele ? sousTotal * 0.10 : 0;
let totalHT = sousTotal - remise;
let tva = totalHT * 0.20;
let totalTTC = totalHT + tva;
totalTTC

Analyser des données filtrées

JavaScript
let projets = findObjects(projet, {});
let projetsEnCours = projets.filter(projet => projet.statut === "en_cours");
let nombreProjets = projetsEnCours.count();
let budgetTotal = projetsEnCours.map(projetsEnCour => projetsEnCour.budget).sum();
let budgetMoyen = budgetTotal / nombreProjets;

nombreProjets.concat(" projets en cours - Budget moyen : ",
  budgetMoyen.toFixed(2), " €")

Prochaine étape

Maintenant que vous savez organiser vos formules avec des variables, découvrez les fonctions de manipulation de tableaux.