Documentation

Cookies

Nous utilisons les cookies afin de vous garantir la meilleure expérience sur notre site. Vous pouvez modifier vos préférences à tout moment en cliquant sur "Cookies" en pied de page.

Conditions

Les conditions vous permettent d'exécuter différentes actions selon qu'une condition est vraie ou fausse. C'est la base de toute logique métier.

Structure de base

La structure conditionnelle en Miel utilise les mots-clés françaisSI, ALORS, SINON et FINSI.

JavaScript
SI condition ALORS valeurSiVrai SINON valeurSiFaux FINSI

Cette structure fonctionne comme suit :

  1. La condition est évaluée
  2. Si elle est true, on retourne valeurSiVrai
  3. Sinon, on retourne valeurSiFaux

Bon à savoir

Les mots-clés SI, ALORS, SINON et FINSI doivent être en majuscules. C'est une convention du langage Miel.

Condition simple

Voici un exemple basique qui affiche un message différent selon le montant d'une commande :

JavaScript
SI {{commande.total}} > 1000
ALORS "Client Premium"
SINON "Client Standard"
FINSI

Décortiquons cet exemple :

  • {{commande.total}} > 1000 est la condition
  • "Client Premium" est retourné si le total dépasse 1000
  • "Client Standard" est retourné sinon

Autres exemples

JavaScript
// Vérifier si un produit est en stock
SI {{produit.stock}} > 0
ALORS "Disponible"
SINON "Rupture de stock"
FINSI

// Calculer une remise conditionnelle
SI {{client.fidele}} == true
ALORS {{commande.total}} * 0.9
SINON {{commande.total}}
FINSI

// Afficher un statut coloré
SI {{facture.payee}} == true
ALORS "✓ Payée"
SINON "⏳ En attente"
FINSI

Conditions multiples (SINON SI)

Quand vous avez plus de deux cas possibles, utilisez SINON SIpour tester des conditions supplémentaires.

JavaScript
SI {{age}} < 18
ALORS "Mineur"
SINON SI {{age}} > 65
ALORS "Senior"
SINON "Adulte"
FINSI

Dans cet exemple :

  • Si l'âge est inférieur à 18 → "Mineur"
  • Sinon, si l'âge est supérieur à 65 → "Senior"
  • Sinon (entre 18 et 65) → "Adulte"

Plusieurs SINON SI

Vous pouvez enchaîner autant de SINON SI que nécessaire :

JavaScript
SI {{note}} >= 16
ALORS "Très bien"
SINON SI {{note}} >= 14
ALORS "Bien"
SINON SI {{note}} >= 12
ALORS "Assez bien"
SINON SI {{note}} >= 10
ALORS "Passable"
SINON "Insuffisant"
FINSI

Attention à l'ordre

Les conditions sont évaluées de haut en bas. Dès qu'une condition est vraie, les suivantes ne sont pas testées. Mettez toujours les conditions les plus spécifiques en premier.

Conditions imbriquées

Vous pouvez imbriquer des conditions les unes dans les autres pour des logiques plus complexes.

JavaScript
SI {{client.type}} == "professionnel"
ALORS
  SI {{commande.total}} > 5000
  ALORS "Remise 15%"
  SINON "Remise 10%"
  FINSI
SINON
  SI {{commande.total}} > 1000
  ALORS "Remise 5%"
  SINON "Pas de remise"
  FINSI
FINSI

Conseil

Les conditions imbriquées peuvent vite devenir difficiles à lire. Pour les cas complexes, pensez à utiliser des variables pour stocker les résultats intermédiaires.

Évaluation paresseuse

Miel utilise l'évaluation paresseuse (lazy evaluation) pour les conditions. Cela signifie que seule la branche choisie est réellement exécutée.

JavaScript
SI {{commande.total}} > 0
ALORS {{commande.total}} / {{commande.quantite}}
SINON 0
FINSI

Dans cet exemple, si le total est 0 ou négatif, la division n'est jamais exécutée. Cela évite une division par zéro potentielle.

Avantage de l'évaluation paresseuse

Grâce à l'évaluation paresseuse, vous pouvez écrire des conditions qui protègent contre les erreurs. La branche non exécutée peut contenir du code qui échouerait, mais cela ne pose pas de problème car elle n'est jamais évaluée.

Exemples pratiques

Calculer les frais de port

JavaScript
SI {{commande.total}} >= 100
ALORS 0
SINON SI {{commande.poids}} > 5
ALORS 15
SINON 5
FINSI

Livraison gratuite au-dessus de 100€, sinon 15€ pour les colis lourds, 5€ sinon.

Afficher un message d'urgence

JavaScript
SI {{tache.dateEcheance}} < AUJOURDHUI()
ALORS "⚠️ En retard"
SINON SI {{tache.dateEcheance}} == AUJOURDHUI()
ALORS "📌 À faire aujourd'hui"
SINON SI {{tache.dateEcheance}} <= AUJOURDHUI() + 3
ALORS "🔔 Bientôt"
SINON "✓ Dans les temps"
FINSI

Vérifier la validité d'un email

JavaScript
SI EXISTE({{client.email}})
ALORS {{client.email}}
SINON "Email non renseigné"
FINSI

Utilise EXISTE pour vérifier si le champ a une valeur.

Combiner avec des opérateurs logiques

JavaScript
SI {{commande.total}} > 1000 ET {{client.fidele}} == true
ALORS "Remise VIP : 20%"
SINON SI {{commande.total}} > 500 OU {{client.fidele}} == true
ALORS "Remise : 10%"
SINON "Pas de remise"
FINSI

Prochaine étape

Pour rendre vos formules plus lisibles, apprenez à utiliser des variables pour stocker des valeurs intermédiaires.