fetchxml |
FetchXML |
|---|---|
| Liquid (Microsoft) | |
Syntaxe
|
{% fetchxml nom_variable %} <fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false"> <!-- Requête FetchXML valide ici --> </fetch> {% endfetchxml %} |
Paramètres
| Nom | Description |
|---|---|
| nom_variable | Ce paramètre permet de nommer la variable Liquid dans laquelle sera entreposé le résultat de la requête FetchXML. |
| version | Ce paramètre permet d'indiquer la version du schéma FetchXML utilisé (souvent "1.0"). |
| output-format | Ce paramètre permet de définir le format de sortie (habituellement "xml-platform"). |
| mapping | Ce paramètre permet de spécifier le type de cartographie des entités, souvent "logical" pour les noms logiques des colonnes. |
| distinct | Ce paramètre permet d'indiquer si la requête doit retourner des résultats distincts ("true" ou "false"). |
| entity name | Ce paramètre permet de spécifier le nom de l'entité Dataverse ciblée par la requête (exemple : "contact"). |
| attribute name | Ce paramètre permet de lister les champs à extraire pour chaque enregistrement (exemple : "fullname", "emailaddress1"). |
| order attribute | Ce paramètre permet de trier les résultats selon un champ donné et un ordre (descending="true/false"). |
Description
Cette balise permet de démarrer une requête FetchXML intégrée qui peut être utilisée pour interroger les données du Dataverse.
Remarques
- Permet l'interrogation directe des données du Dataverse : La balise {% fetchxml %} donne la possibilité d'intégrer une requête FetchXML directement dans un modèle Liquid. Cela permet d'interroger la base de données Dataverse sans recourir à du code serveur externe ou à un appel API.
- Entrepose les résultats dans une variable réutilisable : Le nom passé en paramètre à fetchxml sert de variable Liquid dans laquelle les résultats de la requête seront entreposés. Cette variable peut ensuite être utilisée pour parcourir les données avec une boucle for, ou pour afficher des champs spécifiques dans la page.
- Compatible avec toutes les entités Dataverse : Cette balise peut interroger n'importe quelle entité du Dataverse (comme contact, account, incident,...). Il suffit de spécifier le nom de l'entité dans le noeud <entity name="..."> pour récupérer les données souhaitées.
- Permet un tri précis des résultats : Grâce à l'attribut <order>, il est possible de définir le champ de tri ainsi que l'ordre croissant ou décroissant. Cela est utile pour afficher des listes de manière ordonnée, comme des contacts triés par nom ou des enregistrements par date.
- Supporte le filtrage complexe des enregistrements : FetchXML permet d'ajouter des filtres conditionnels très détaillés à l'aide de <filter> combinant plusieurs conditions avec and/or. Cela permet de n'afficher que les données qui répondent à des critères précis (exemple : contacts actifs dont le nom commence par "A").
- Le résultat peut être vide : nécessite un test conditionnel : Avant d'utiliser les résultats entreposés dans la variable Liquid, il est conseillé de tester si la collection n'est pas vide (if variable.size > 0). Cela permet d'éviter des erreurs d'affichage ou des comportements inattendus dans le rendu HTML.
- Doit toujours être combinée à la balise endfetchxml : La balise fetchxml est une balise de bloc et nécessite une balise fermante {% endfetchxml %}. Omettre cette balise entraînera une erreur de compilation dans le moteur Liquid du portail.
- Utilisable pour alimenter dynamiquement des listes ou tableaux : Les données récupérées via fetchxml peuvent facilement être intégrées dans des tableaux HTML ou dans des composantes visuelles comme des listes, grilles, ou éléments conditionnels. C'est un outil très puissant pour générer dynamiquement du contenu personnalisé sur un portail.
Dernière mise à jour : Mercredi, le 23 Juillet 2025