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.

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 :

JavaScript
{{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}}.

JavaScript
{{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 facture

Contexte 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.

JavaScript
// 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.

JavaScript
// 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.

JavaScript
// 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.

JavaScript
// 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€"
FINSI

Astuce

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.