Améliorer les performances, la stabilité et la fiabilité des composants avec le vérificateur de solutions
Pour répondre aux besoins complexes d’une entreprise, les créateurs peuvent souvent se retrouver avec des solutions très avancées qui personnalisent et étendent la plateforme Microsoft Dataverse. Les implémentations avancées s’accompagnent d’un risque accru où des problèmes de performances, de stabilité et de fiabilité surviennent, susceptibles d’impacter négativement l’expérience utilisateur. L’identification et la compréhension de la résolution de ces problèmes peuvent être compliquées et chronophages. Avec la fonctionnalité de vérificateur de solution, vous pouvez exécuter une vérification d’analyse statique enrichie de vos solutions par rapport à un ensemble de règles de meilleures pratiques et identifier rapidement ces schémas problématiques. Une fois la vérification terminée, vous recevez un rapport détaillé qui répertorie les problèmes identifiés, les composants et le code affectés, et des liens vers la documentation qui explique comment résoudre chaque problème.
Le vérificateur de solution analyse ces composants de solution :
- Activités de workflow personnalisées Dataverse
- Ressources Web (HTML et JavaScript) Dataverse
- Configurations Dataverse, telles que les étapes de message SDK
- Flux Power Automate (via le vérificateur de flux)
- Expressions Power Fx (via le vérificateur d’application)
Le vérificateur de solution utilise des solutions non gérées qui peuvent être exportées à partir d’un environnement.
Notes
- Cette rubrique explique comment exécuter le vérificateur de solution du portail générateur de Power Apps. Un module PowerShell est également disponible que vous pouvez utiliser pour interagir directement avec le service. Le module de Microsoft.PowerApps.Checker.PowerShell peut être utilisé pour l’analyse des solutions non gérées pour les environnements Power Apps, ou pour automatiser et intégrer le service dans votre pipelines de build et de publication. Pour plus d’informations : Vue d’ensemble de Microsoft.PowerApps.Checker.PowerShell
- Le vérificateur de solution prend en charge les variables globales pour ECMAScript 2015 (ES6) et jusqu’à la syntaxe ECMAScript 2018 (ES9). Quand JavaScript est détecté à l’aide de variables globales ultérieures à ES6, ou d’une syntaxe ultérieure à ES9, un problème de syntaxe web non prise en charge pour la ressource web est signalé.
- L’utilisation du vérificateur de solution ne garantit pas que l’importation d’une solution réussira. Les vérifications d’analyse statique effectuées par rapport à la solution ne connaissent pas l’état configuré de l’environnement de destination, et le succès de l’importation peut dépendre d’autres solutions ou configurations dans l’environnement.
Exécuter le vérificateur de solution
Connectez-vous à Power Apps.
Dans le volet de gauche, sélectionnez Solutions. Si l’élément ne se trouve pas dans le volet latéral, sélectionnez …Plus, puis sélectionnez l’élément souhaité.
En regard de la solution non gérée que vous souhaitez analyser, sélectionnez ..., pointez sur Vérificateur de solution, puis sélectionnez Exécuter.
Le bouton de commande Vérificateur de solution a un indicateur de chargement, et vous remarquerez un En cours d’exécution… dans la colonne Vérification de la solution de la liste Solution.
Notez ce qui suit :
Le vérificateur de solution peut durer quelques minutes pour terminer l’analyse.
Vous recevez une notification par courrier électronique et une notification dans la zone Notifications du site Power Apps quand la vérification est terminée.
Affichez le rapport quand la vérification est terminée.
Annuler une vérification
Après l’envoi d’une vérification de solutions dans votre environnement, la vérification peut être annulée via le volet de statut dans la zone supérieure droite de la page Solutions.
Quand vous annulez une vérification, la vérification de solution arrête de s’exécuter et le statut de vérification de solution revient à l’état antérieur.
États du vérificateur de solution
Quand vous installez le vérificateur de solution dans votre environnement, la colonne Vérification de solution devient disponible dans la liste Solutions. Cette colonne affiche les états d’analyse de solution pour une solution.
État | Description |
---|---|
N’a pas été exécutée | La solution n’a jamais été analysée. |
Exécution | La solution est en cours d’analyse. |
Impossible d’exécuter | L’analyse de solution a été demandée mais l’analyse n’a pas abouti. |
Résultats aux date et heure | L’analyse de solution s’est terminée et les résultats sont disponibles au téléchargement. |
Impossible d’exécuter. Résultat aux date et heure | La dernière demande d’analyse n’a pas abouti. Les derniers résultats réussis peuvent être téléchargés. |
Vérifiée par Microsoft | Il s’agit d’une solution gérée Microsoft. L’analyse de solution n’est pas autorisée sur ces solutions. |
Vérifiée par l’éditeur | Il s’agit d’une solution gérée tierce. Actuellement, l’analyse de solution n’est pas disponible pour ces solutions. |
Consulter le rapport du vérificateur de solution
Quand une vérification de la solution est terminée, vous pouvez afficher le rapport d’analyse dans le portail ou vous pouvez télécharger le rapport depuis votre navigateur web. Dans le portail, vous avez des options de trier des résultats par Problème, Emplacement ou Gravité et vous pouvez afficher des informations détaillées pour les problèmes détectés dans votre solution.
Dans le volet de gauche, sélectionnez Solutions. Si l’élément ne se trouve pas dans le volet latéral, sélectionnez …Plus, puis sélectionnez l’élément souhaité.
En regard de la solution non gérée où vous souhaitez afficher le rapport du vérificateur de solution, sélectionnez ..., pointez sur Vérificateur de solution, puis sélectionnez Afficher les résultats.
Sélectionnez un problème pour afficher les détails et des instructions sur la manière de le résoudre.
Les résultats de la vérification de solution sont également disponibles au téléchargement. Le fichier zip du vérificateur de solution est téléchargé dans le dossier spécifié par votre navigateur Web. Le rapport de téléchargement est au format Excel et comporte plusieurs visualisations et colonnes qui vous permettent d’identifier l’impact, le type et l’emplacement de chaque problème détecté dans votre solution. Un lien vers des indications détaillées sur la résolution du problème est également fourni.
- Dans le volet de gauche, sélectionnez Solutions. Si l’élément ne se trouve pas dans le volet latéral, sélectionnez …Plus, puis sélectionnez l’élément souhaité.
- En regard de la solution non gérée où vous souhaitez télécharger le rapport du vérificateur de solution, sélectionnez ..., pointez sur Vérificateur de solution, puis sélectionnez Télécharger les résultats.
- Le fichier zip du vérificateur de solution est téléchargé dans le dossier spécifié par votre navigateur Web.
Voici un résumé de chaque colonne du rapport.
Colonne de rapport | Description | S’applique à un composant |
---|---|---|
Problème | Titre du problème identifié dans la solution. | Tous |
Catégorie | La catégorisation du problème identifié, telle que Performance, Maintenabilité, Utilisation, Supportabilité, Conception, Sécurité, Accessibilité, ou Mise à niveau de préparation. | Toutes |
Niveau de gravité | Représente l’impact potentiel du problème identifié. Les types d’impacts disponibles sont Critique, Élevée, Moyenne, Faible et Informative. | Toutes |
Conseils | Lien vers l’article détaillant le problème, son impact, et l’action recommandée | Tous |
Composant | Composant de solution où l’erreur a été identifiée. | Tous |
Location | Emplacement et/ou fichier source du composant où l’erreur qui a été identifiée s’est produite, par exemple l’assembly ou le nom du fichier JavaScript. | Tous |
N° de ligne | Référence du numéro de ligne du problème dans le composant de ressource Web concerné. | Ressources Web |
Module | Nom du module où l’erreur identifiée dans l’assembly a été détectée. | Activité de workflow personnalisée |
Type | Type du problème identifié dans l’assembly. | Activité de workflow personnalisée |
Membre | Membre du problème identifié dans l’assembly. | Activité de workflow personnalisée |
Instruction | Instruction ou configuration de code ayant entraîné le problème. | Tous |
Commentaires | Détails sur le problème qui comprennent les étapes de résolution globale. | Toutes |
Exécuter les règles du vérificateur de solution localement
Vous pouvez exécuter des règles de vérificateur de solution dans votre environnement de développement pour détecter les problèmes beaucoup plus tôt quand vous créez vos ressources de solution. Ceci est actuellement pris en charge pour les ressources web (JavaScript et TypeScript). Pour plus de détails, accédez au package NPM @microsoft/eslint-plugin-power-apps.
Règles de meilleures pratiques utilisées par le vérificateur de solution
Le tableau suivant répertorie les types de modèles, la description de règle, la gravité et la Catégorie. Les violations critiques sont bloquées ou averties quand elles sont configurées pour l’application du sélecteur de solution avec des environnements gérés. Plus d’informations : Utiliser le contrôle de solutions dans les environnements gérés
Composant de solution | Nom de la règle | Description de la règle | Niveau de gravité | Categorie |
---|---|---|---|---|
Plug-in ou activité de workflow | meta-remove-dup-reg | Évitez de dupliquer des inscriptions de plug-in Dataverse. | Critique | Performances |
Plug-in ou activité de workflow | meta-avoid-reg-no-attribute | Incluez des attributs de filtrage avec les inscriptions du plug-in Dataverse. | Moyen | Performances |
Plug-in ou activité de workflow | meta-avoid-reg-retrieve | Faites preuve de prudence avec les plug-ins Dataverse enregistrés pour les messages Retrieve et RetrieveMultiple. | Moyen | Performances |
Plug-in ou activité de workflow | meta-remove-inactive | Supprimez les configurations inactives de Dataverse. | Bas | Maintenabilité |
Plug-in ou activité de workflow | meta-avoid-crm4-event | N’utilisez pas la phase d’inscription du plug-in Microsoft Dynamics CRM 4.0. | Moyen | Upgrade readiness |
Plug-in ou activité de workflow | meta-avoid-retrievemultiple-annotation | Évitez d’enregistrer un plug-in sur RetrieveMultiple d’une annotation. | Élevé | Utilisation |
Application pilotée par modèle | meta-license-sales-entity-operations | La solution contient des entités avec des messages et des opérations SDK restreints qui nécessitent une licence Dynamics 365 valide. | Bas | Gestion des licences |
Application pilotée par modèle | meta-license-fieldservice-customcontrols | La solution contient des contrôles personnalisés qui nécessitent une Dynamics 365 Field Service licence valide. | Bas | Gestion des licences |
Application pilotée par modèle | meta-license-fieldservice-entity-operations | La solution contient des entités avec des messages et des opérations SDK restreints qui nécessitent une Dynamics 365 Field Service licence valide. | Bas | Gestion des licences |
Ressources web | use-async | Interagissez avec les ressources HTTP et HTTPS de manière asynchrone. | Critique | Performances |
Ressources web | avoid-modals | Évitez d’utiliser les boîtes de dialogue modales. | Forte | Supportabilité |
Ressources web | avoid-dom-form | Forte | Supportabilité | |
Ressources web | avoid-dom-form-event | Forte | Supportabilité | |
Ressources web | avoid-crm2011-service-odata | Ne ciblez pas le point de terminaison Microsoft Dynamics CRM 2011 OData 2.0. | Critique | Upgrade readiness |
Ressources web | avoid-crm2011-service-soap | Ne ciblez pas les services SOAP Microsoft Dynamics CRM 2011. | Critique | Upgrade readiness |
Ressources web | avoid-loadtheme | N’utilisez pas l’API loadTheme Fluent v8. |
Bas | Supportabilité |
Ressources web | avoid-browser-specific-api | N’utilisez pas les plug-ins de navigateur ou les API héritées d’Internet Explorer. | Critique | Upgrade readiness |
Ressources web | avoid-unpub-api | Forte | Supportabilité | |
Ressources web | avoid-window-top | Forte | Supportabilité | |
Ressources web | avoid-2011-api | N’utilisez pas le modèle d’objet Microsoft Dynamics CRM 2011 obsolète. En lieu et place, suivez la documentation sur l’API Web Dataverse. | Forte | Upgrade readiness |
Ressources web | use-relative-uri | N’utilisez pas les URL de point de terminaison Dataverse pour les applications absolues. | Moyen | Maintenabilité |
Ressources web | use-cached-webresource | Moyen | Performances | |
Ressources web | use-client-context | Utilisez les contextes clients. | Moyen | Upgrade readiness |
Ressources web | use-navigation-api | Utilisez les paramètres d’API de navigation. | Moyen | Upgrade readiness |
Ressources web | use-offline | Moyen | Upgrade readiness | |
Ressources web | do-not-make-parent-assumption | Forte | Concevoir | |
Ressources web | use-org-setting | Utilisez les paramètres d’organisation. | Moyen | Upgrade readiness |
Ressources web | use-global-context | Moyen | Upgrade readiness | |
Ressources web | use-grid-api | Utilisez les API de grille. | Moyen | Upgrade readiness |
Ressources web | use-utility-dialogs | Moyen | Utilisation | |
Ressources web | avoid-isActivityType | Remplacez la méthode Xrm.Utility.isActivityType par la nouvelle méthode Xrm.Utility.gettableMetadata et ne l’utilisez pas dans les règles de ruban. | Moyen | Upgrade readiness |
Ressources web | meta-avoid-silverlight | L’utilisation de la ressource Web Silverlight est déconseillée. | Moyen | Upgrade readiness |
Ressources web | remove-debug-script | Évitez d’inclure le script de débogage dans des environnements autres que celui du développement. | Moyen | Utilisation |
Ressources web | use-strict-mode | Utilisez le mode strict quand cela est possible. | Moyen | Utilisation |
Ressources web | use-strict-equality-operators | Utilisez des opérateurs d’égalité stricts. | Moyen | Utilisation |
Ressources web | avoid-eval | N’utilisez pas la fonction « eval » ou ses équivalents fonctionnels. | Critique | Sécurité |
Ressources web | avoid-with | Ne pas utiliser avec l’opérateur « with ». | Forte | Performances |
Ressources web | remove-alert | N’utilisez pas la fonction « alert » ni ses équivalents fonctionnels. | Moyen | Utilisation |
Ressources web | remove-console | Évitez d’utiliser des méthodes sur la console. | Moyen | Utilisation |
Ressources web | avoid-ui-refreshribbon | Évitez d’utiliser refreshRibbon dans le formulaire onload et EnableRule. | Critique | Performances |
Ressources web | use-getsecurityroleprivilegesinfo | Évitez userSettings.securityRolePrivileges. Utilisez plutôt userSettings.getSecurityRolePrivilegesInfo. | Élevé | Performances |
Ressources web | use-appsidepane-api | Utilisez Xrm.App.sidePanes.createPane au lieu de Xrm.Panels.loadPanel. | Moyen | Upgrade readiness |
Ressources web | web-sdl-no-cookies | Les cookies HTTP sont un ancien mécanisme de stockage côté client avec des risques et des limites inhérents. Utilisez plutôt Web Storage, IndexedDB ou d’autres méthodes modernes. | Moyen | Sécurité |
Ressources web | web-sdl-no-document-domain | Les écritures dans la propriété document.domain doivent être vérifiées pour éviter le contournement des vérifications de même origine. L’utilisation de domaines de premier niveau tels que azurewebsites.net est strictement interdite. | Moyen | Sécurité |
Ressources web | web-sdl-no-document-write | Les appels à document.write ou document.writeln manipulent directement DOM sans aucun assainissement et doivent être évités. Utilisez plutôt document.createElement() ou des méthodes similaires. | Moyen | Sécurité |
Ressources web | web-sdl-no-html-method | Les appels directs à la méthode html() (par exemple dans la structure jQuery) manipulent DOM sans aucun assainissement et doivent être évités. Utilisez plutôt document.createElement() ou des méthodes similaires. | Moyen | Sécurité |
Ressources web | web-sdl-no-inner-html | Les affectations aux propriétés innerHTML ou outerHTML manipulent directement DOM sans aucun assainissement et doivent être évités. Utilisez plutôt document.createElement() ou des méthodes similaires. | Moyen | Sécurité |
Ressources web | web-sdl-no-insecure-url | Les protocoles non sécurisés tels que HTTP ou FTP doivent être remplacés par leurs homologues chiffrés (HTTPS, FTPS) pour éviter d’envoyer des données potentiellement sensibles sur des réseaux non fiables en clair. | Moyen | Sécurité |
Ressources web | web-sdl-no-msapp-exec-unsafe | Les appels à MSApp.execUnsafeLocalFunction() contournent la validation de l’injection de script et doivent être évités. | Moyen | Sécurité |
Ressources web | web-sdl-no-postmessage-star-origin | Fournissez toujours une origine cible spécifique, pas * lors de l’envoi de données à d’autres fenêtres à l’aide de postMessage pour éviter les fuites de données en dehors de la limite de confiance. | Moyen | Sécurité |
Ressources web | web-sdl-no-winjs-html-unsafe | Les appels à WinJS.Utilities.setInnerHTMLUnsafe() et aux méthodes similaires n’effectuent aucune validation d’entrée et doivent être évités. Utilisez WinJS.Utilities.setInnerHTML() à la place. | Moyen | Sécurité |
Application canevas | app-formula-issues-high | Reportez-vous aux références des formules Power Apps pour plus de détails. | Critique | Concevoir |
Application canevas | app-formula-issues-medium | Reportez-vous aux références des formules Power Apps pour plus de détails. | Moyen | Concevoir |
Application canevas | app-formula-issues-low | Reportez-vous aux références des formules Power Apps pour plus de détails. | Bas | Concevoir |
Application canevas | app-use-delayoutput-text-input | Utilisez une charge différée dans certains scénarios pour améliorer les performances. | Moyen | Performances |
Application canevas | app-reduce-screen-controls | Limitez le nombre de contrôles d’application pour améliorer les performances. | Moyen | Performances |
Application canevas | app-include-accessible-label | Utilisez des étiquettes explicites pour améliorer l’accessibilité des applications. | Moyen | Accessibilité |
Application canevas | app-include-alternative-input | Assurez-vous que tous les éléments interactifs sont accessibles aux entrées alternatives. | Moyen | Accessibilité |
Application canevas | app-avoid-autostart | Évitez d’utiliser le démarrage automatique des lecteurs dans une application. | Moyen | Accessibilité |
Voir aussi
Bonnes pratiques et instructions pour Dataverse
Meilleures pratiques et directives pour des applications basées sur des modèles
Problèmes courants et solutions pour le vérificateur de solution
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é).