Partage via


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

  1. Connectez-vous à Power Apps.

  2. 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é.

  3. 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.

    Exécuter la commande du vérificateur de solution.

  4. 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.

    Statut du vérificateur de 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.

  5. 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.

  1. 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é.

  2. 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.

  3. Sélectionnez un problème pour afficher les détails et des instructions sur la manière de le résoudre.

    Résultats d’affichage du contrôleur de solution.

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.

  1. 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é.
  2. 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.
  3. 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é).