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 montre comment écrire un plug-in qui peut accéder aux ressources (réseau) web en tant que service web ou flux. Il montre également comment limiter la durée impartie à cet appel.
Comment exécuter cet exemple
- Télécharger ou cloner le référentiel Exemples pour en avoir une copie locale. Cet exemple se trouve sous PowerApps-Samples-master\dataverse\orgsvc\C#\WebAccessPlugin.
- Ouvrez l’exemple de solution dans Visual Studio, accédez aux propriétés du projet, puis vérifiez que l’assembly est signé pendant la build. Appuyez sur F6 pour générer l’assemblage d’un exemple (WebAccessPlugin.dll).
- Exécutez l’outil Plug-in Registration et enregistrez l’exemple d’assembly dans le sandbox et la base de données du serveur Microsoft Dataverse.
- Lors de l′enregistrement d′une étape, spécifiez une chaîne d′URI web (c′est-à-dire,
https://www.microsoft.com) dans la colonne de configuration non sécurisée.- Si aucune valeur n’est fournie, la valeur par défaut
https://www.bing.comest utilisée.
- Si aucune valeur n’est fournie, la valeur par défaut
- À l’aide d’une application ou d’un code d’écriture pour effectuer l’opération appropriée pour invoquer le message et la requête de table sur lesquels vous avez enregistré le plug-in (créez un compte).
- Lorsque le plug-in s’exécute, si la durée de l’appel dépasse les 15 secondes imparties, il déclenche une erreur. Sinon, l’opération doit réussir.
- Lorsque vous avez terminé les tests, annulez l’enregistrement de l’assemblage et de l’étape à l’aide de l’outil Enregistrements de plug-ins.
En quoi consiste cet exemple
Une fois exécuté, le plug-in télécharge les données de la page Web à partir de l’adresse de service Web spécifiée (ou de l’adresse par défaut). Si la demande dépasse la limite de 15 secondes, elle lance une InvalidPluginExecutionException et écrit les détails dans le journal de suivi du plug-in.
Si le plug-in
HttpClientPluginéchoue, il écrit quelque chose comme ce qui suit dans le journal de suivi du plug-in :Downloading the target URI: https://www.bing.com Inner Exceptions: Exception: System.Threading.Tasks.TaskCanceledException: A task was canceled. Exception: Microsoft.Xrm.Sdk.InvalidPluginExecutionException: An exception occurred while attempting to issue the request. at PowerApps.Samples.HttpClientPlugin.Execute(IServiceProvider serviceProvider)L’exception TaskCanceledException est ambiguë sur la cause de la tâche annulée. Pour obtenir une solution plus complète indiquant comment détecter explicitement des erreurs dues à des dépassements du temps, consultez ce billet de blog : Better timeout handling with HttpClient.
Utiliser cet exemple
Afin de simuler le scénario décrit dans En quoi consiste cet exemple, l′exemple procède comme suit :
Configuration
- Vérifie le paramètre de configuration non sécurisé du constructeur pour une valeur d’adresse Web ; sinon, la valeur par défaut est utilisée.
- La classe HttpClient est utilisée par la méthode
Executedu plug-in pour télécharger les données d’une page web. - Si l’appel dépasse la durée de 15 secondes spécifiée, une InvalidPluginExecutionException est lancée et les détails sur l’erreur sont écrits dans le journal de suivi du plug-in.
Démontrer
Plugin HttpClientPlugin
- Utilise la classe HttpClient et définit la propriété d’expiration pour limiter le temps imparti pour effectuer l’opération.
- Intercepte la classe AggregateException attendue et examine l’exception interne pour la TaskCanceledException prévue.