Partager via


Exemple d′opérations parallèles de l′API web WebApiService (C#)

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

  1. Clonez ou téléchargez le référentiel Exemples PowerApps.

  2. Localisez le dossier /dataverse/webapi/C#-NETx/ParallelOperations/.

  3. Ouvrir le fichier ParallelOperations.sln en utilisant Visual Studio 2022

  4. Modifiez le fichier appsettings.json pour définir les valeurs de propriété suivantes :

    Property Instructions
    Url URL pour votre environnement. Remplacez la valeur https://yourorg.api.crm.dynamics.com de l’espace réservé avec la valeur de votre environnement. Voir Afficher les ressources pour développeurs pour trouver l’URL pour votre environnement.
    UserPrincipalName Remplacez la valeur you@yourorg.onmicrosoft.com de l’espace réservé avec la valeur UPN pour accéder à l’environnement.
    Password Remplacez la valeur yourPassword de l’espace réservé avec le mot de passe que vous utilisez.
  5. Enregistrer le fichier appsettings.json

  6. Appuyez 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

Utilisation de 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#)

Notes

Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)

Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).