Lorsque vous travaillez avec Dynamics 365, qui permet la création d'un grand nombre d'enregistrements et offre des possibilités d'intégration infinies via Dataverse, il est essentiel de disposer d'une méthode robuste pour interroger et récupérer ces enregistrements. Dataverse n'est pas seulement une base de données SQL Server où vous pouvez écrire des requêtes SQL standard — c'est une plateforme dotée d'API, de SDK et de méthodes de requêtage spécifiques, optimisées pour la performance et la flexibilité.
Parmi celles-ci, FetchXML se distingue comme une option particulièrement puissante et polyvalente.
Qu'est-ce que FetchXML ?
FetchXML est un langage de requête propriétaire basé sur XML, conçu pour Microsoft Dataverse (anciennement CDS) et Dynamics 365. Il permet aux développeurs et aux utilisateurs de construire des requêtes complexes pour récupérer, agréger et filtrer des données des tables Dataverse. Contrairement au SQL traditionnel, FetchXML est profondément intégré à l'écosystème Dynamics 365, ce qui le rend adapté aux scénarios où les modèles de données relationnels et pilotés par les métadonnées sont en jeu.
FetchXML prend en charge plusieurs fonctionnalités, telles que :
- Filtrage des données à l'aide d'opérateurs conditionnels.
- Tri des résultats en fonction des champs spécifiés.
- Agrégation des données avec des fonctions comme SUM, COUNT et AVG.
- Récupération de données associées via des relations entre entités.
- Pagination des résultats pour gérer de grands ensembles de données.
FetchXML est largement utilisé dans Dynamics 365 car c'est le langage de requête sous-jacent pour Recherche avancée, Vues personnalisées dans les applications Dynamics 365, Rapports et tableaux de bord, Plugins et workflows côté serveur, Scripts client via JavaScript, Flux Power Automate.
Consultez la documentation officielle.
Pourquoi FetchXML est important
À mesure que les requêtes deviennent plus complexes, elles peuvent être plus difficiles à gérer et entraîner des problèmes de performances. FetchXML résout ces problèmes en :
Intégration avec Dataverse : Il comprend la nature pilotée par les métadonnées de Dataverse, respectant ainsi automatiquement les rôles de sécurité, les contraintes de champ et les relations. Compatibilité avec les API : FetchXML peut être utilisé avec l'API Web de Dynamics 365, les SDK et les points de terminaison OData, garantissant une compatibilité aussi bien côté serveur que client. Personnalisation : Il permet de construire des requêtes sophistiquées, y compris l'agrégation et les jointures, sans écrire de code de base de données bas niveau. Accessibilité pour les non-développeurs : FetchXML peut être généré à l'aide d'outils conviviaux, comme la fonctionnalité Recherche avancée, permettant même aux utilisateurs non techniques de créer et d'exporter des requêtes.
Comment utiliser FetchXML
1. Commencez avec la Recherche avancée
L'un des moyens les plus simples de créer des requêtes FetchXML est d'utiliser la Recherche avancée, une fonctionnalité accessible dans Dynamics 365. La Recherche avancée permet aux utilisateurs de :
Une fois votre requête prête, vous pouvez cliquer sur "Télécharger FetchXML" pour exporter le fichier XML. Ce fichier peut ensuite être utilisé dans :
2. Utiliser FetchXML avec Power Automate FetchXML est un excellent choix pour interroger Dataverse dans Power Automate. En utilisant le connecteur Dataverse, vous pouvez coller des requêtes FetchXML pour récupérer des données spécifiques, notamment dans des conditions complexes impossibles via l'interface de requêtage de base.
3. Exécutez FetchXML via l'API Web FetchXML peut être exécuté par programmation à l'aide de l'API Web Dynamics 365. Vous pouvez envoyer des requêtes HTTP GET ou POST avec la requête FetchXML intégrée, ce qui vous permet de récupérer des données directement dans vos applications ou intégrations.
Dans la section Extrait de code du site Web, vous pouvez trouver des exemples présentant comment utiliser fetchXML à partir du code. Voici un exemple rapide de la façon d'utiliser FetchXML dans un script de formulaire JavaScript (JS) avec la méthode retrieveMultipleRecords disponible dans l'API D365 SDK : Cliquez ici
Pour un exemple en CSharp (C#) utilisant la méthode RetrieveMultiple avec FetchExpression, veuillez consulter cet extrait de code : Cliquez ici
4. Personnaliser FetchXML dans les rapports Si vous créez des rapports SSRS (SQL Server Reporting Services) personnalisés, FetchXML devient l'épine dorsale de vos requêtes de données. Cela est particulièrement utile lorsque vous avez besoin de rapports détaillés ou agrégés directement à partir de Dataverse.
5. Générer et modifier FetchXML par programmation Bien que des outils comme Advanced Find soient parfaits pour les requêtes de base, les développeurs modifient souvent manuellement le FetchXML exporté pour ajouter des fonctionnalités avancées telles que :
Exemple d'une requête FetchXML simple Voici une requête FetchXML de base qui récupère les 15 premiers comptes d'un environnement Dataverse (où `statecode` est égal à 0) dont le nom commence par "Alpes" et qui inclut le nom complet du contact principal lié à chaque compte, avec un résultat limité à un seul enregistrement :
Cette requête peut être personnalisée en ajoutant autant de critères et de filtres que possibles, et exécutée depuis différents endroits du SDK ou des APIs.
- Sélectionner une table (entité) à interroger.
- Ajouter des conditions et des filtres.
- Choisir les champs à afficher.
- Trier et grouper les données.
Une fois votre requête prête, vous pouvez cliquer sur "Télécharger FetchXML" pour exporter le fichier XML. Ce fichier peut ensuite être utilisé dans :
- Les flux Power Automate.
- Le code personnalisé dans les plugins ou JavaScript.
- Les rapports dans Dynamics 365.

2. Utiliser FetchXML avec Power Automate FetchXML est un excellent choix pour interroger Dataverse dans Power Automate. En utilisant le connecteur Dataverse, vous pouvez coller des requêtes FetchXML pour récupérer des données spécifiques, notamment dans des conditions complexes impossibles via l'interface de requêtage de base.
3. Exécutez FetchXML via l'API Web FetchXML peut être exécuté par programmation à l'aide de l'API Web Dynamics 365. Vous pouvez envoyer des requêtes HTTP GET ou POST avec la requête FetchXML intégrée, ce qui vous permet de récupérer des données directement dans vos applications ou intégrations.
Dans la section Extrait de code du site Web, vous pouvez trouver des exemples présentant comment utiliser fetchXML à partir du code. Voici un exemple rapide de la façon d'utiliser FetchXML dans un script de formulaire JavaScript (JS) avec la méthode retrieveMultipleRecords disponible dans l'API D365 SDK : Cliquez ici
Pour un exemple en CSharp (C#) utilisant la méthode RetrieveMultiple avec FetchExpression, veuillez consulter cet extrait de code : Cliquez ici
4. Personnaliser FetchXML dans les rapports Si vous créez des rapports SSRS (SQL Server Reporting Services) personnalisés, FetchXML devient l'épine dorsale de vos requêtes de données. Cela est particulièrement utile lorsque vous avez besoin de rapports détaillés ou agrégés directement à partir de Dataverse.
5. Générer et modifier FetchXML par programmation Bien que des outils comme Advanced Find soient parfaits pour les requêtes de base, les développeurs modifient souvent manuellement le FetchXML exporté pour ajouter des fonctionnalités avancées telles que :
- Conditions imbriquées.
- Jointures avec des entités associées. (Récupérer des données à partir de tables associées, par exemple pour récupérer toutes les commandes liées à un client spécifique)
- Agrégation et regroupement. (Créez des résumés et des informations directement dans la requête)
- Pagination pour les grands ensembles de données.
- Récupérer le cookie de pagination : gérez efficacement les grands ensembles de données en implémentant la pagination.
Exemple d'une requête FetchXML simple Voici une requête FetchXML de base qui récupère les 15 premiers comptes d'un environnement Dataverse (où `statecode` est égal à 0) dont le nom commence par "Alpes" et qui inclut le nom complet du contact principal lié à chaque compte, avec un résultat limité à un seul enregistrement :
<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false" top="15">
<entity name="account">
<attribute name="accountid" />
<attribute name="name" />
<filter type="and">
<condition attribute="statecode" operator="eq" value="0" />
<condition attribute="name" operator="like" value="Alpes%" />
</filter>
<link-entity name="contact" from="contactid" to="primarycontactid" alias="primarycontact">
<attribute name="fullname" />
</link-entity>
</entity>
</fetch>
Cette requête peut être personnalisée en ajoutant autant de critères et de filtres que possibles, et exécutée depuis différents endroits du SDK ou des APIs.
XrmToolBox et le plugin FetchXML Builder
XrmToolBox est une plateforme tierce largement adoptée par la communauté Dynamics 365 pour développer et personnaliser l’environnement CRM. Parmi ses nombreux plugins, FetchXML Builder est particulièrement apprécié pour la création de requêtes FetchXML.

Cet outil offre une approche visuelle et interactive pour construire des requêtes FetchXML, permettant aux utilisateurs de concevoir et de modifier leurs requêtes avec l’avantage d’une validation en temps réel garantissant à la fois l’exactitude syntaxique et logique au fur et à mesure de la construction. Il prend également en charge un large éventail de fonctionnalités avancées, y compris la possibilité d’effectuer des agrégations, d’implémenter des jointures complexes et de convertir les requêtes en divers formats tels que QueryExpression, code C# et requêtes Web API, répondant ainsi à divers besoins d’intégration et de développement. De plus, l’outil permet aux utilisateurs de tester leurs requêtes directement dans l’interface et d’exporter les résultats pour une utilisation ultérieure dans des applications ou des processus automatisés, offrant une solution complète pour optimiser la manipulation et la récupération des données dans Dynamics 365.
Avantages pour les développeurs et les utilisateurs non techniques
Ce qui rend FetchXML exceptionnel, c’est son accessibilité aussi bien aux développeurs qu’aux utilisateurs non techniques. Les développeurs peuvent utiliser FetchXML dans les plugins, les workflows et le code personnalisé pour des scénarios hautement personnalisés. Pendant ce temps, les utilisateurs non techniques peuvent générer et télécharger FetchXML via la Recherche avancée, leur permettant de contribuer efficacement sans avoir à écrire de code.
FetchXML est une pierre angulaire des requêtes au sein de Dynamics 365 et de la Power Platform, combinant facilité d’utilisation, capacités avancées et intégration transparente. Que vous soyez un développeur expérimenté ou un utilisateur métier, maîtriser FetchXML peut considérablement améliorer votre capacité à interagir avec vos données et à en extraire de la valeur.