Comment utiliser ExecuteMultiple pour améliorer les performances du chargement en bloc des données
Vous pouvez utiliser le message ExecuteMultipleRequest pour prendre en charge les scénarios de transmission de messages en nombre d’un débit supérieur dans Dynamics 365 for Customer Engagement, notamment dans le cas des applications où la latence Internet peut être le plus gros facteur de limitation. ExecuteMultipleRequest accepte une collection d’entrée de messages Requests, exécute chacune des demandes de message dans l’ordre dans lequel elles apparaissent dans la collection d’entrée et renvoie en option un ensemble de Responses contenant la réponse de chaque message ou l’erreur qui s’est produite. Chaque demande de message dans la collection d’entrée est traitée dans une transaction de base de données distincte. ExecuteMultipleRequest est exécuté à l’aide de la méthode IOrganizationService.Execute
En général, ExecuteMultipleRequest se comporte comme si vous exécutiez séparément chaque demande de message de la collection de demandes en entrée, si ce n’est avec des performances optimisées. L’utilisation du paramètre CallerId du proxy de service est honorée et s’applique à l’exécution de chaque message de la collection de demandes en entrée. Les plug-ins et les activités de workflow sont exécutés comme prévu pour chaque message traité.
Le code personnalisé du formulaire des plug-ins et des activités de workflow personnalisé peut même exécuter ExecuteMultipleRequest. Toutefois, certains points clés sont à ne pas oublier. Une exception levée par un plug-in inscrit synchrone est retournée dans le paramètre Fault de l’élément de collection de la réponse. Si un plug-in s’exécute dans une transaction de base de données, que le plug-in exécute ExecuteMultipleRequest et qu’une restauration des transactions est initialisée, la restauration inclut toutes les modifications de données résultant des demandes exécutés par ExecuteMultipleRequest.
Pour obtenir les informations les plus récentes concernant ExecuteMultiple, voir Exécuter plusieurs requêtes à l’aide du service d’organisation. Pour obtenir des recommandations et des conseils, voir N’utilisez pas les types de demandes par lots dans les plug-ins et les activités de workflow.
Appliquer des limites pour les demandes simultanées
Il existe plusieurs contraintes liées à l’utilisation de la méthode ExecuteMultipleRequest. Une limite qui s’applique uniquement à un déploiement local est décrite ci-dessous et les deux autres (pas de récursivité et taille de lot maximale) sont documentées dans (Dataverse) Limitations d’exécution.
Limitation des appels simultanés : pour Dynamics 365 for Customer Engagement, il est possible de définir une limite au nombre d’exécutions simultanées de ExecuteMultipleRequest par organisation. Cela permet d’éviter qu’une application ne monopolise les ressources du serveur. Si cette limite est dépassée, une erreur « Serveur occupé » est levée avant que la première demande ne soit même exécutée. Cette option n’est pas activée par défaut. Le paramètre de déploiement pour cette limite est ExecuteMultiplePerOrgMaxConnectionsPerServer.
Pourboire
Pour tout déploiement de Customer Engagement, un administrateur de déploiement peut définir ou modifier la limite de limitation.
Voir aussi
Lecture et écriture de données et métadonnées à l’aide du service web IOrganizationService
Microsoft.Xrm.Sdk Messages
IOrganizationService.Execute
OrganizationRequest
OrganizationResponse
Microsoft.Crm.Sdk Messages
Importer des données