Améliorer les performances, la stabilité et la fiabilité de la solution

Les solutions sont utilisées pour distribuer des objets Power Platform, tels que des applications, des tables, des flux, des ressources web et des plug-ins. Cet article introduit la fonctionnalité du vérificateur de solution, un outil performant qui effectue une analyse statique détaillée des objets de votre solution par rapport à un ensemble de règles de bonnes pratiques. En utilisant Vérificateur de solution, vous pouvez rapidement identifier les modèles problématiques dans vos composants et recevoir des rapports détaillés qui mettent en évidence les problèmes, les composants affectés et fournissent des liens vers la documentation sur la façon de résoudre chaque problème. Cela garantit que vos solutions sont optimisées en termes de performances, de stabilité et de fiabilité.

Exemples de résultats et de détails du vérificateur de solution

Le vérificateur de solution utilise des solutions non gérées qui peuvent être exportées à partir d’un environnement.

Vous pouvez exécuter le vérificateur de solution soit à partir de Power Apps (make.powerapps.com), soit en utilisant PowerShell.

Comment l’outil de vérification de la solution peut vous aider

Pour répondre aux besoins métier complexes, les créateurs peuvent souvent se retrouver avec des solutions très avancées qui personnalisent et étendent Power Platform. 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é du vérificateur de solution, vous pouvez exécuter une vérification de votre solution en quelques secondes, qui utilise un ensemble de règles de bonnes pratiques pour identifier rapidement les modèles problématiques. Une fois la vérification terminée, vous recevez un rapport détaillé dans Power Apps et par message électronique, qui répertorie les problèmes identifiés, les composants et le code affectés, ainsi que les 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 de Dataverse, telles que les étapes de messages du SDK
  • Flux Power Automate (via le vérificateur de flux)
  • Expressions Power Fx (via le vérificateur d’application)

Remarque

  • 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 se déroulera correctement. 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 état En cours d’exécution… dans la colonne Vérification de solution de la liste Solution.

Statut du vérificateur de solution

Remarque

  • Le vérificateur de solutions peut prendre 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.
  1. 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.

Statuts du vérificateur de solutions

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.
En cours d’exécution La solution est en cours d’analyse.
Impossible de terminer 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 de terminer. Résultat en date du 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 autre que Microsoft. 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.

    Exemples de résultats et analyse détaillée du Vérificateur 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 téléchargé 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. Tous
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. Tous
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
Emplacement 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 Élément du problème identifié dans l’assemblage. Activité de workflow personnalisée
Déclaration 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. Tous

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, consultez le package NPM @microsoft/eslint-plugin-power-apps.

Exécutez Vérificateur de solution en utilisant PowerShell

Un module PowerShell est disponible pour vous permettre d’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

Règles de meilleures pratiques utilisées par le vérificateur de solution

Le tableau suivant répertorie le type de composant, la description de la règle, la gravité et la catégorie. Les violations critiques sont bloquées ou signalées par un avertissement lorsque l’application de Solution Checker est configurée dans 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é Catégorie
Plug-in ou activité de workflow meta-remove-dup-reg Évitez les enregistrements de plug-in Dataverse en double. Critique Performances
Plug-in ou activité de workflow meta-avoid-reg-no-attribute Incluez des attributs de filtrage dans les enregistrements des plug-ins 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 Préparation à la mise à niveau
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. Élevé Supportabilité
Ressources web avoid-dom-form Élevé Supportabilité
Ressources web avoid-dom-form-event Élevé Supportabilité
Ressources web avoid-crm2011-service-odata Ne ciblez pas le point de terminaison Microsoft Dynamics CRM 2011 OData 2.0. Critique Préparation à la mise à niveau
Ressources web avoid-crm2011-service-soap Ne ciblez pas les services SOAP Microsoft Dynamics CRM 2011. Critique Préparation à la mise à niveau
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 Préparation à la mise à niveau
Ressources web avoid-unpub-api Élevé Supportabilité
Ressources web avoid-window-top Élevé 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. Élevé Préparation à la mise à niveau
Ressources web use-relative-uri N’utilisez pas d’URL de point de terminaison Dataverse absolues. Moyen Maintenabilité
Ressources web use-cached-webresource Moyen Performances
Ressources web use-client-context Utilisez les contextes clients. Moyen Préparation à la mise à niveau
Ressources web use-navigation-api Utilisez les paramètres d’API de navigation. Moyen Préparation à la mise à niveau
Ressources web utiliser hors ligne Moyen Préparation à la mise à niveau
Ressources web do-not-make-parent-assumption Élevé Conception
Ressources web use-org-setting Utilisez les paramètres d’organisation. Moyen Préparation à la mise à niveau
Ressources web use-global-context Moyen Préparation à la mise à niveau
Ressources web use-grid-api Utilisez les API de grille. Moyen Préparation à la mise à niveau
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 Préparation à la mise à niveau
Ressources web meta-avoid-silverlight L’utilisation de la ressource Web Silverlight est déconseillée. Moyen Préparation à la mise à niveau
Ressources web remove-debug-script Évitez d’inclure le script de débogage dans des environnements autres que de 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 N’utilisez pas l’opérateur « with ». Élevé 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 Préparation à la mise à niveau
Application canevas app-formula-issues-high Accédez à Référence aux formules Power Apps pour plus d’informations. Critique Conception
Application canevas app-formula-issues-medium Consultez la documentation de référence sur les formules Power Apps pour plus d’informations. Moyen Conception
Application canevas app-formula-issues-low Consultez la documentation de référence sur les formules Power Apps pour plus d’informations. Bas Conception
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é
Flux de bureau desktopflow-avoid-unsafe-password Les mots de passe ne sont pas gérés de manière sécurisée dans le flux. Élevé Sécurité
Flux de bureau desktopflow-avoid-subflow-recursion Appels récursifs détectés entre les sous-flux, provoquant potentiellement une boucle infinie. Moyen Conception
Flux de bureau desktopflow-avoid-infinite-loop Boucle infinie détectée dans le flux, ce qui risque de l’entraîner à s’exécuter indéfiniment. Moyen Conception
Flux de bureau desktopflow-avoid-incomplete-if-branch Action If incomplète détectée, sans contenu ou contenant uniquement des actions dans la branche Else. Bas Conception
Flux de bureau desktopflow-avoid-excessive-nested-ifs Les clauses If imbriquées dépassent cinq niveaux. Bas Maintenabilité
Flux de bureau desktopflow-avoid-empty-on-error-block L’action « Erreur sur bloc » est vide et ne gère pas les erreurs. Bas Conception
Flux de bureau desktopflow-limit-argument-count Le total des variables d’entrée/sortie dépasse la limite de 25 variables. Bas Maintenabilité
Flux de bureau desktopflow-input-argument-default-value Les variables d’entrée/sortie n’utilisent pas de valeurs par défaut. Bas Maintenabilité
Flux de bureau desktopflow-limit-variable-name-length Le nom de la variable dépasse la limite de 25 caractères. Bas Maintenabilité
Flux de bureau desktopflow-avoid-excessive-wait-actions Une utilisation abusive des actions d’attente a été détectée, avec plus de 10 actions d’attente provoquant des goulots d’étranglement potentiels. Bas Performances
Flux de bureau desktopflow-avoid-immense-wait-duration Un temps d’attente immense a été détecté, dépassant la limite de 600 secondes pour les actions d’attente codées en dur. Bas Performances

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