Interpolation
L'interpolation est le mécanisme qui vous permet d'accéder aux données de vos objets Miel directement dans vos formules.
Qu'est-ce que l'interpolation ?
L'interpolation permet d'insérer dynamiquement des valeurs provenant de vos objets dans une formule. La syntaxe utilise des doubles accolades : {{...}}.
Par exemple, si vous avez un objet "Commande" avec un champ "total", vous pouvez y accéder ainsi :
{{commande.total}}Quand la formule s'exécute, {{commande.total}} sera remplacé par la valeur réelle du champ (par exemple, 1500).
Pourquoi "interpolation" ?
Le terme vient de l'idée d'"intercaler" des valeurs dynamiques dans une expression. C'est un concept courant dans de nombreux langages de programmation et systèmes de templates.
Accès aux champs
La syntaxe de base pour accéder à un champ est {{typeObjet.nomChamp}}.
{{commande.total}} // Le total de la commande
{{client.nom}} // Le nom du client
{{produit.prixUnitaire}} // Le prix unitaire du produit
{{facture.dateEcheance}} // La date d'échéance de la factureContexte de la formule
Le type d'objet que vous pouvez utiliser dépend du contexte où la formule est définie. Par exemple :
- Dans une formule sur un objet "Commande", vous avez accès aux champs de la commande
- Si la commande a un lien vers un "Client", vous pouvez naviguer vers ses champs
- Si la commande contient des "Produits", vous pouvez accéder à leurs propriétés
Références spéciales
Outre les champs classiques, Miel propose plusieurs références spéciales pour des cas d'usage courants.
{{selfUser}} — L'utilisateur connecté
Référence à l'utilisateur actuellement connecté. Utile pour personnaliser l'affichage ou filtrer des données.
// Afficher le nom de l'utilisateur connecté
{{selfUser.fullname}}
// Filtrer les tâches assignées à l'utilisateur actuel
FILTRER({{taches}}, {{$.assigneA}} == {{selfUser}}){{$}} — L'élément courant
Dans les fonctions qui itèrent sur un tableau (comme FILTRER ou TRANSFORMER), {{$}} représente l'élément en cours de traitement.
// Filtrer les nombres supérieurs à 10
FILTRER([5, 15, 8, 20], {{$}} > 10) // [15, 20]
// Doubler chaque nombre
TRANSFORMER([1, 2, 3], {{$}} * 2) // [2, 4, 6]
// Accéder aux champs de l'élément courant
FILTRER({{produits}}, {{$.stock}} > 0){{$1}}, {{$2}} — Contextes imbriqués
Quand vous avez des itérations imbriquées, utilisez {{$1}}pour le contexte externe et {{$}} pour le contexte interne.
// Exemple avec double itération
TRANSFORMER(
UNIQUE({{commande.produits.tva}}), // Pour chaque taux de TVA
SOMME(
TRANSFORMER(
FILTRER({{commande.produits}}, {{$.tva}} == {{$1}}),
{{$.prixHT}}
)
)
)Dans cet exemple, {{$1}} fait référence au taux de TVA de la boucle externe, tandis que {{$}} fait référence au produit de la boucle interne.
Combiner avec des calculs
L'interpolation devient vraiment puissante quand vous la combinez avec des opérateurs et des fonctions.
// Calcul simple
{{produit.prixHT}} * 1.20 // Prix TTC
// Calcul avec plusieurs champs
{{produit.prixUnitaire}} * {{produit.quantite}} // Sous-total
// Concaténation de texte
CONCAT("Bonjour ", {{client.prenom}}, " !") // "Bonjour Constance !"
// Condition basée sur une valeur
SI {{commande.total}} > 1000
ALORS "Livraison gratuite"
SINON "Frais de port : 5€"
FINSIAstuce
Quand votre formule devient complexe, pensez à utiliser des variables pour la rendre plus lisible.
Prochaine étape
Maintenant que vous savez accéder à vos données, apprenez à les manipuler avec les opérateurs de calcul et de comparaison.