Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
En utilisant le Kit de développement logiciel (SDK) de données Microsoft Dataverse, .NET développeurs peuvent créer des fournisseurs de données de table virtuelle personnalisés pour intégrer des types de sources de données externes qui ne sont pas pris en charge par un fournisseur de données existant. Chaque fournisseur de données se compose d’un ensemble réutilisable de plug-ins Dataverse qui implémentent les opérations CRUD prises en charge. Pour chaque table virtuelle, également appelée entité virtuelle, les développeurs peuvent créer des plug-ins et les inscrire représentant chacune des opérations Create, Update, Retrieve, RetrieveMultiple et Delete . Cette section fournit des informations fondamentales sur les fournisseurs de données et les approches de développement de fournisseurs personnalisés, y compris des exemples de code.
Note
Au lieu de créer un fournisseur de source de données personnalisé, envisagez d’adapter votre source de données à un fournisseur de données existant. Par exemple, si vous créez une interface OData v4 à votre source de données externe, vous pouvez y accéder directement à l’aide du Fournisseur de données OData v4 standard fourni, qui prend en charge les opérations CRUD. Le mécanisme d’ajout de cette interface REST varie selon la technologie de service de données sous-jacente. Par exemple, consultez WCF Data Services 4.5. OData assure une large prise en charge du secteur, avec un large éventail d’outils dédiés et de technologies compatibles.
Prerequisites
Les fournisseurs de données personnalisés nécessitent de créer et de gérer d’importantes ressources de développement. Vous devez avoir des connaissances fondamentales des domaines suivants :
- Le schéma de la source de données externe et les techniques d’accès aux données associées. Ces connaissances du domaine sont spécifiques au type de source de données externe.
- Schéma de définition dataverse : Plus d’informations : Utiliser des définitions de table et de colonne à l’aide du code.
- Infrastructure d’événements Dataverse : Plus d’informations : Event Framework.
- Architecture et développement du plug-in Dataverse : Plus d’informations : Utilisez des plug-ins pour étendre les processus métier.
L’assembly Microsoft.Xrm.Sdk.Data.dll est disponible en tant que package NuGet : Microsoft.CrmSdk.Data
Catégories de fournisseurs
Vous pouvez créer deux catégories générales de fournisseurs de données à l’aide des assemblys du Kit de développement logiciel (SDK) de table virtuelle : générique ou ciblé. Le tableau suivant décrit ces approches et les correspond au modèle de développement du fournisseur de données le mieux adapté à chaque approche.
| Catégorie | Modèle de développement | Description |
|---|---|---|
| Générique | Fournisseur complet | Ces fournisseurs traduisent de manière flexible les expressions de requête FetchXML vers la requête associée vers la source de données externe, puis retournent les enregistrements résultants. Vous pouvez réutiliser ce fournisseur pour toutes les instances de ce type de source de données. Cette approche est la plus générale mais est plus complexe à développer. Si le schéma de la source de données change, vous devez uniquement remappper les tables virtuelles affectées. |
| Ciblé | Fournisseurs LINQ pour un schéma connu | Un tel fournisseur se contente de traduire les requêtes en l’appel LINQ correspondant pour une instance de source de données connue et existante. La source de données doit être un fournisseur LINQ, comme décrit dans l’article Activation d’une source de données pour l’interrogation LINQ. Cette approche est limitée à une instance de source de données spécifique, mais elle nécessite beaucoup moins de codage. Si le schéma de la source de données change, vous devez mettre à jour et reconstruire le fournisseur de données. |
Le fournisseur de données OData v4 standard et le fournisseur de données Azure Cosmos DB sont des exemples de fournisseurs génériques.
Étapes pour utiliser un fournisseur de données personnalisé
Pour créer une solution de fournisseur de données de table virtuelle que vous pouvez importer dans vos applications Dataverse, procédez comme suit :
- Développez la DLL du module d’extension du fournisseur de données personnalisé ou un ensemble de DLL.
- Inscrivez le fournisseur de données personnalisé auprès de votre service Dataverse à l’aide de l’outil d’inscription de plug-in (PRT).
- Créez une solution de fournisseur de données.
- Personnalisez la table de source de données pour refléter votre type de données ou votre instance spécifique.
- Exportez la solution de fournisseur de données personnalisé.
Pour plus d’informations, consultez Exemple : Fournisseur de tables virtuelles personnalisées avec des opérations CRUD.
Développement de plug-ins
Étant donné que les tables virtuelles prennent en charge les opérations CRUD, écrivez le fournisseur de données en tant que plug-in que vous inscrivez sur les événements Create, Update, Retrieve, RetrieveMultiple et Delete . Chaque événement inclut des informations dans le contexte d’exécution qui décrivent le type de données à retourner.
| Événement | Contexte d’exécution |
|---|---|
| Récupérer | Décrit la table à récupérer, ainsi que les colonnes et toutes les tables associées à inclure. |
| RetrieveMultiple | Contient un QueryExpression objet définissant la requête. La structure contient une classe QueryExpressionVisitor conçue pour inspecter les différentes parties de l’arborescence d’expressions de requête. |
Pour les deux événements, vous devez :
- Convertissez les informations respectives dans le contexte d’exécution en une requête qui fonctionne pour votre source de données externe.
- Récupérer les données du système externe.
- Pour Récupérer, convertissez les données en un Entity; sinon, pour RetrieveMultiple, convertissez-les en .EntityCollection Dataverse retourne ce résultat à l’utilisateur qui exécute la requête.
Les classes de l’espace de noms Microsoft.Xrm.Sdk.Data fournissent une infrastructure pour faciliter le mappage des informations de requête de Dataverse issues du contexte d’exécution vers une requête adaptée au format approprié pour votre source de données externe. Cette infrastructure vous aide à convertir les données retournées en types appropriés Entity ou EntityCollection attendus par la plateforme Dataverse.
Exceptions de fournisseur de données
Si votre code ne peut pas obtenir le résultat attendu, lèvez l’erreur appropriée. L’espace Microsoft.Xrm.Sdk.Data.Exceptions de noms contient les classes d’exception suivantes, dérivées de SdkExceptionBase, que vous pouvez utiliser à cet effet :
| Classe d’exception | Description |
|---|---|
| AuthenticationException | Une erreur s’est produite lors de l’authentification de sécurité auprès du service de source de données externe ; par exemple, l’état HTTP 401 reçu du service de données externe. En règle générale, l’utilisateur actuel n’a pas de privilèges appropriés ou les informations de connexion dans EntityDataSource associées sont incorrectes. |
| EndpointException | La configuration du point de terminaison dans la table de source de données n’est pas valide ou le point de terminaison n’existe pas. |
| GenericDataAccessException | Erreur d’accès aux données générale, utilisée lorsque l’erreur ne correspond pas à une exception plus spécifique. |
| InvalidMetadataException | |
| InvalidQueryException | La requête spécifiée n’est pas valide ; par exemple, il contient une combinaison de clauses non valide ou un opérateur de comparaison non pris en charge. |
| ObjectNotFoundException | L’enregistrement spécifié dans la source de données externe n’existe pas. |
| TimeoutException | L’opération externe ne s’est pas terminée dans le délai imparti ; par exemple, le résultat d’un état HTTP 408 à partir du service de données externe. |
Inscription des plug-ins
Contrairement à un plug-in ordinaire, utilisez l’outil d’enregistrement des plug-ins (PRT) pour enregistrer l’assembly et les plug-ins pour chaque événement. N’inscrivez pas d’étapes spécifiques. Votre plug-in s’exécute à l’étape 30, la phase de transaction principale de l’opération qui n’est pas disponible pour les étapes de plug-in ordinaires. Au lieu d’inscrire des étapes, configurez votre fournisseur de données à l’aide du tableau suivant.
| Table | Description |
|---|---|
| EntityDataProvider | Définit les plug-ins à utiliser pour chaque événement et le nom logique de la source de données. |
Lorsque vous configurez les définitions de votre table virtuelle, inscrivez vos plug-ins à l’aide du PRT et définissez les données de configuration appropriées dans la table EntityDataProvider . Votre table virtuelle commence à répondre aux demandes.
Pour plus d’informations, consultez Création d’un fournisseur de données et ajout de plug-ins au fournisseur.
Débogage de plug-ins
Un fournisseur de tables virtuelles personnalisées est un type de plug-in. Utilisez les informations de ces articles pour déboguer des plug-ins pour les fournisseurs de tables virtuelles personnalisées : Déboguer des plug-ins et tutoriel : Déboguer un plug-in.
Voir aussi
Commencez avec les tables virtuelles
Considérations relatives à l’API des tables virtuelles
Exemple : plug-in générique fournisseur de données des tables virtuelles