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.
SI condition ALORS valeurSiVrai SINON valeurSiFaux FINSICette structure fonctionne comme suit :
- La condition est évaluée
- Si elle est
true, on retourne valeurSiVrai - 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 :
SI {{commande.total}} > 1000
ALORS "Client Premium"
SINON "Client Standard"
FINSIDécortiquons cet exemple :
{{commande.total}} > 1000est la condition"Client Premium"est retourné si le total dépasse 1000"Client Standard"est retourné sinon
Autres exemples
// 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"
FINSIConditions multiples (SINON SI)
Quand vous avez plus de deux cas possibles, utilisez SINON SIpour tester des conditions supplémentaires.
SI {{age}} < 18
ALORS "Mineur"
SINON SI {{age}} > 65
ALORS "Senior"
SINON "Adulte"
FINSIDans 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 :
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"
FINSIAttention à 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.
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
FINSIConseil
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.
SI {{commande.total}} > 0
ALORS {{commande.total}} / {{commande.quantite}}
SINON 0
FINSIDans 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
SI {{commande.total}} >= 100
ALORS 0
SINON SI {{commande.poids}} > 5
ALORS 15
SINON 5
FINSILivraison gratuite au-dessus de 100€, sinon 15€ pour les colis lourds, 5€ sinon.
Afficher un message d'urgence
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"
FINSIVérifier la validité d'un email
SI EXISTE({{client.email}})
ALORS {{client.email}}
SINON "Email non renseigné"
FINSIUtilise EXISTE pour vérifier si le champ a une valeur.
Combiner avec des opérateurs logiques
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"
FINSIProchaine étape
Pour rendre vos formules plus lisibles, apprenez à utiliser des variables pour stocker des valeurs intermédiaires.