Share via


Exemple d’opérations parallèles d’API Web avec des composants de flux de données TPL (C#)

Cet exemple .NET 6.0 montre comment effectuer des opérations de données parallèles à l’aide de l’API web Dataverse avec les composants de flux de données de la bibliothèque parallèle de tâches (TPL). Plus d’informations : Flux de données (bibliothèque parallèle de tâches).

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/TPLDataFlowParallelOperations/.

  3. Ouvrir le fichier TPLDataFlowParallelOperations.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/TPLDataFlowParallelOperations/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 crée simplement un nombre configurable d’enregistrements de compte à créer, qu’il supprime à son tour. Cet exemple utilise des composants de flux de données pour traiter les enregistrements et transformer les résultats de l’opération de création dans la phase suivante qui supprime ces enregistrements. En raison de la nature de ce flux de données, les opérations de suppression des enregistrements créés précédemment démarreront avant la fin de tous les enregistrements à créer.

Vous souhaiterez peut-être comparer cet exemple à l’exemple d’opérations parallèles CDSWebApiService de l’API web (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 de l′API web WebApiService (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é).