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.

Sources de données

MEL peut accéder à différentes sources de données grâce à des préfixes spéciaux. Chaque préfixe vous donne accès à un contexte particulier.

Comprendre les sources

Quand vous écrivez une expression MEL, vous pouvez référencer des données provenant de différents endroits. Ces références commencent par un préfixe qui indique la source des données.

PréfixeDescriptionExemple
$formDonnées du formulaire en cours$form.status
$objectObjet actuellement affiché ou édité$object.id
$selectorDonnées du sélecteur (widgets)$selector.beneficiary
$userUtilisateur actuellement sélectionné$user.role
$selfUserID de l'utilisateur connecté$selfUser
$contextContexte d'exécution global$context.date

Bon à savoir

Les sources disponibles dépendent du contexte où vous utilisez MEL. Par exemple, $form n'est disponible que lorsque vous êtes dans un formulaire.

$form - Données du formulaire

Le préfixe $form vous donne accès aux données saisies dans le formulaire courant. C'est particulièrement utile pour créer des filtres dynamiques basés sur les choix de l'utilisateur.

Par exemple, pour filtrer les éléments dont le statut correspond à celui sélectionné dans le formulaire :

JSON
{ "status": { "$eq": "$form.status" } }

Ou pour filtrer par plusieurs types de contrats sélectionnés :

JSON
{ "contractType": { "$in": "$form.selectedTypes" } }

Cas d'usage typique

Utilisez $form quand vous créez des filtres de recherche ou des sélecteurs conditionnels dans vos formulaires.

$object - Objet courant

Le préfixe $object fait référence à l'objet actuellement affiché ou édité. C'est utile pour créer des relations entre objets.

Par exemple, pour trouver tous les éléments liés à l'objet courant :

JSON
{ "parentId": { "$eq": "$object.id" } }

Ou pour filtrer les commandes du même projet :

JSON
{ "project": { "$eq": "$object.project" } }

Cas d'usage typique

Utilisez $object pour afficher des données liées à l'élément que vous consultez, comme les sous-éléments ou les éléments du même groupe.

$selector - Sélecteur de données

Le préfixe $selector est utilisé principalement dans les widgets et les composants de sélection. Il référence les données actuellement filtrées ou sélectionnées.

Exemple typique dans un widget de tableau de bord :

JSON
{
  "$and": [
    { "$selector.beneficiary": { "$eq": 2 } },
    { "$selector.status": { "$eq": "validated" } }
  ]
}

Note technique

Le préfixe $selector est souvent retiré automatiquement lors de l'évaluation finale. Les chemins comme $selector.statussont transformés en status pour la requête réelle.

$user - Utilisateur courant

Le préfixe $user donne accès aux informations de l'utilisateur actuellement sélectionné ou référencé dans le contexte.

Par exemple, pour filtrer par le rôle de l'utilisateur :

JSON
{ "requiredRole": { "$eq": "$user.role" } }

Vous pouvez accéder à diverses propriétés de l'utilisateur comme son rôle, son équipe, ou ses permissions.

$selfUser - ID utilisateur connecté

$selfUser est une valeur spéciale qui représente l'ID de l'utilisateur actuellement connecté à l'application. C'est l'une des références les plus utilisées dans MEL.

Cas d'usage très courant : afficher uniquement les tâches assignées à l'utilisateur connecté :

JSON
{ "assignedTo": { "$eq": "$selfUser" } }

Ou vérifier si l'utilisateur connecté fait partie d'une liste :

JSON
{ "assignedTo": { "$in": ["$selfUser"] } }

Transformation automatique

Lors de l'évaluation, $selfUser est automatiquement remplacé par l'ID réel de l'utilisateur, avec un préfixe user:. Par exemple, $selfUser devient user:1234567890.

$context - Contexte d'exécution

Le préfixe $context donne accès à des informations globales sur le contexte d'exécution, comme la date actuelle ou d'autres métadonnées de l'environnement.

Par exemple, pour filtrer les éléments créés aujourd'hui :

JSON
{ "createdAt": { "$eq": "$context.date" } }

Chemins profonds

MEL supporte la navigation dans des structures de données imbriquées grâce aux chemins profonds. Utilisez des points pour accéder aux propriétés imbriquées.

Par exemple, pour filtrer par le nom du fournisseur d'une commande :

JSON
{ "$form.order.provider.name": { "$eq": "NETKIN" } }

Ce chemin se décompose ainsi :

  • $form - la source (formulaire)
  • order - le champ commande dans le formulaire
  • provider - le fournisseur de la commande
  • name - le nom du fournisseur

MEL résout automatiquement ces chemins en naviguant récursivement dans les données et en chargeant les objets référencés si nécessaire.

Attention

Les chemins trop profonds peuvent impacter les performances. Si possible, limitez-vous à 3-4 niveaux de profondeur.

Prochaine étape

Vous savez maintenant d'où viennent vos données. L'étape suivante est de découvrir tous les opérateurs de comparaison disponibles.