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.
Cet exemple .NET 6.0 montre comment effectuer des opérations de données parallèles à l’aide de l’API Web de Dataverse.
Cet exemple utilise le code d’assistance commun dans la Bibliothèque de classes WebAPIService (C#).
Conditions préalables
- Microsoft Visual Studio 2022.
- Accès à Dataverse avec les privilèges d′exécution des opérations de données.
Comment exécuter cet exemple
Clonez ou téléchargez le référentiel Exemples PowerApps.
Localisez le dossier /dataverse/webapi/C#-NETx/ParallelOperations/.
Ouvrir le fichier
ParallelOperations.slnen utilisant Visual Studio 2022Modifiez le fichier
appsettings.jsonpour définir les valeurs de propriété suivantes :Property Instructions UrlURL pour votre environnement. Remplacez la valeur https://yourorg.api.crm.dynamics.comde l’espace réservé avec la valeur de votre environnement. Voir Afficher les ressources pour développeurs pour trouver l’URL pour votre environnement.UserPrincipalNameRemplacez la valeur you@yourorg.onmicrosoft.comde l’espace réservé avec la valeur UPN pour accéder à l’environnement.PasswordRemplacez la valeur yourPasswordde l’espace réservé avec le mot de passe que vous utilisez.Enregistrer le fichier
appsettings.jsonAppuyez sur F5 pour exécuter l’exemple.
Code
Le code de cet exemple est ici : PowerApps-Samples/dataverse/webapi/C#-NETx/ParallelOperations/Program.cs
Montre ce qui suit
Cet exemple comprend des paramètres que vous pouvez appliquer pour optimiser votre connexion.
Cet exemple envoie d’abord une requête simplement pour accéder à la valeur de l’en-tête de réponse x-ms-dop-hint pour déterminer les degrés de parallélisme recommandés pour cet environnement. Lorsque le degré maximal de parallélisme est égal à la valeur de l’en-tête de réponse x-ms-dop-hint, vous devez atteindre un état stable où le débit est optimisé avec un minimum de 429 TooManyRequests erreurs de limite de protection de service renvoyées.
Pour atteindre les limites de protection de service avec cet exemple, vous devez augmenter la variable numberOfRecords à plus de 10 000 ou tout ce qui est nécessaire pour que l’échantillon fonctionne pendant plus de 5 minutes. Vous devez également modifier le code pour définir le maxDegreeOfParallelism pour être nettement supérieur à la valeur d’en-tête de réponse x-ms-dop-hint. Ensuite, à l’aide de Fiddler, vous devriez pouvoir observer comment WebAPIService relance les requêtes qui renvoient cette erreur.
Cet exemple utilise la méthode Parallel.ForEachAsync introduite avec .NET 6.0.
Cet exemple traite une liste de demandes de création d’enregistrements de compte, en envoyant les demandes en parallèle, puis utilise les données renvoyées pour ajouter des demandes de suppression des comptes créés à un ConcurrentBag. Une fois les enregistrements créés, le nombre de secondes pour créer les enregistrements s’affiche.
Ensuite, les demandes de suppression dans ConcurrentBag sont traitées et le temps passé à supprimer les enregistrements est affiché.
Vous souhaiterez peut-être comparer cet exemple à l’exemple d’opérations parallèles avec composants de flux de données TPL (C#).
Nettoyer
Par défaut, cet exemple supprime tous les enregistrements qui y sont créés. Si vous souhaitez afficher les enregistrements créés une fois l’exemple terminé, remplacez la variable deleteCreatedRecords par false et vous serez invité à décider si vous souhaitez supprimer les enregistrements.
Voir aussi
Utiliser l'API Web Dataverse
Bibliothèque de classes WebAPIService (C#)
Créer une ligne de table à l’aide de l’API web
Mettre à jour et supprimer des lignes de table à l’aide de l’API web
Limites de l’API de protection des services
Exemples d’API Web
Exemple d’opérations de base de l’API Web (C#)
Exemples de données de requête d’API web (C#)
Exemple d’opérations conditionnelles de l’API web (C#)
Exemple de fonctions et d’actions de l’API web (C#)
Exemple d’opérations de schéma de table de l’API web (C#)
Exemple d’opérations parallèles d’API web avec des composants de flux de données TPL (C#)