Leistung, Stabilität und Zuverlässigkeit Ihrer Komponenten mit dem Lösungsprüfer verbessern

Um komplexe geschäftliche Anforderungen zu liefern, können Ersteller häufig mit fortschrittlichen Lösungen arbeiten, die die Microsoft Dataverse-Plattform anpassen und erweitern. Mit der erweiterten Implementierungen kommt ein erhöhtes Risiko, wo, Leistung und Stabilität Zuverlässigkeitsprobleme eingegeben werden, und sich auf die Benutzererfahrung negativ auswirken können. Identifizieren und verstehen, wie diese Probleme zeitaufwendig und kompliziert sein können. Mit der Lösungsprüferfunktion können Sie eine umfangreiche Prüfung der statischen Analyse auf Ihren Lösungen für einen Satz von Regeln der bewährten Methode ausführen und diese problematischen Muster schnell ermitteln. Nach der Überprüfung erhalten Sie einen Bericht, der Probleme aufzeigt, die bestimmt werden, welche Komponenten und Code betroffen sind und die Dokumentation verknüpft, die beschreibt, wie ein Problem zu beheben ist.

Der Lösungsprüfer analysiert die Lösungskomponente:

  • Dataverse benutzerdefinierte Workflowaktivitäten
  • Dataverse-Webressourcen (HTML) und JavaScript
  • Dataverse-Konfigurationen, wie SDK-Nachrichtenschritte
  • Power Automate-Flows (über Flowprüfung)
  • Power Fx-Ausdrücke (über App-Überprüfung)

Lösungsprüfer abeiten mit nicht verwalteten Lösungen, die von einer Umgebung exportiert werden.

Hinweis

  • In diesem Thema wird erläutert, wie Sie den Lösungsprüfer über das Herstellerportal Power Apps ausführen. Ein PowerShell-Modul ist ebenfalls verfügbar, das Sie verwenden können, um direkt mit dem Service zu interagieren. Das Microsoft.PowerApps.Checker.PowerShell-Modul kann zur Analyse von nicht verwalteten Lösungen für Power Apps-Umgebungen oder zur Automatisierung und Integration des Dienstes in Ihre Build und Release Pipelines verwendet werden. Mehr Informationen: Microsoft.PowerApps.Checker.PowerShell Übersicht
  • Die Lösungsüberprüfung unterstützt globale Variablen für ECMAScript 2015 (ES6) und bis zu ECMAScript 2018 (ES9)-Syntax. Wenn JavaScript mithilfe globaler Variablen nach ES6 oder mithilfe von Syntax nach ES9 erkannt wird, wird ein Problem mit der nicht unterstützten Websyntax für die Webressource gemeldet.
  • Die Verwendung der Lösungsüberprüfung garantiert nicht, dass ein Lösungsimport erfolgreich ist. Die für die Lösung durchgeführten statischen Analyseprüfungen kennen den konfigurierten Status der Zielumgebung nicht, und der Erfolg des Imports kann von anderen Lösungen oder Konfigurationen in der Umgebung abhängen.

Ausführen es Lösungsprüfer

  1. Melden Sie sich bei Power Apps an.

  2. Wählen Sie im Navigationsbereich Lösungen aus. Wenn sich das Element nicht im linken Seitenbereich befindet, wählen Sie …Mehr und dann das gewünschte Element aus.

  3. Neben der nicht verwalteten Lösung, die Sie auch zum Analysieren möchten, wählen Sie ... aus, zeigen Sie auf Lösungsprüfer und dann auf Ausführen.

    Lösungsprüfer-Befehl ausführen

  4. Die Befehlsschaltfläche Lösungsprüfung verfügt über eine Ladeanzeige, und Sie sehen einen Wird ausgeführt... Status in der Spalte Lösungsprüfung der Liste Lösung.

    Lösungsprüfer-Status

    Beachten Sie Folgendes:

    • Der Lösungsprüfer kann einige Minuten dauern, um die Analyse zu starten.

    • Sie erhalten eine E-Mail-Benachrichtigung und eine Benachrichtigung im Bereich Benachrichtigungen auf der Seite Power Apps, wenn die Überprüfung abgeschlossen ist.

  5. Zum Anzeigen des Berichts Wenn eine Prüfung abgeschlossen ist.

Prüfvorgang abbrechen

Wenn Sie E-Mails senden, um Lösungen in Ihrer Umgebung übermitteln zu können, kann die Prüfung über den Statusbereich im oberen rechten Bereich der Lösungen storniert werden.

Wenn Sie eine Prüfung abbrechen, läuft die Lösungsprüfung nicht weiter und der Lösungsprüfungsstatus kehrt zum vorherigen Zustand zurück.

Lösungsprüfer-Status

Wenn Sie den Lösungsprüfer in Ihrer Umgebung installieren, steht die Lösungsprüfung in der Lösungen zur Verfügung. In dieser Spalte werden die Lösungsanalysestatus für eine Lösung angezeigt.

Status Beschreibung
Ist nicht ausgeführt worden Die Lösung wurde nicht analysiert.
Wird ausgeführt... Die Lösung wird analysiert.
Konnte nicht abgeschlossen werden Lösungsanalyse wurde angefordert, aber die Analyse wurde nicht erfolgreich abgeschlossen.
Ergebnisse erhalten Datum und Uhrzeit Lösungsanalyse abgeschlossen und Ergebnisse können heruntergeladen werden.
Konnte nicht abgeschlossen werden. Ergebnisse erhalten Datum und Uhrzeit Die aktuelle Analyseanforderung in nicht erfolgreich abgeschlossen. Die letzten erfolgreichen Ergebnisse können heruntergeladen werden.
Geprüft von Microsoft Dies ist eine Microsoft-verwaltete Lösung. Lösungsanalyse ist für diese Lösungen nicht erlaubt.
Geprüft von Publisher Dies ist eine verwalteten Lösung von Drittanbieter. Für die Erstellung der Lösungsanalyse nicht verfügbar.

Wiederholen Sie den Lösungsprüferbericht

Wenn eine Lösungsprüfung abgeschlossen ist, können Sie den Analysebericht im Portal anzeigen oder den Bericht über Ihren Webbrowser herunterladen. Im Portal haben Sie die Möglichkeit, die Ergebnisse nach Problem, Speicherort oder nach Schweregrad zu filtern und zu sortieren und detaillierte Informationen zu den in Ihrer Lösung gefundenen Problemen anzuzeigen.

  1. Wählen Sie im Navigationsbereich Lösungen aus. Wenn sich das Element nicht im linken Seitenbereich befindet, wählen Sie …Mehr und dann das gewünschte Element aus.

  2. Wählen Sie neben der nicht verwalteten Lösung, für die Sie den Bericht über den Solution Checker anzeigen möchten, ..., zeigen Sie auf Solution Checker, und wählen Sie dann Ergebnisse anzeigen.

  3. Wählen Sie ein Problem aus, um die Details und Anleitungen zur Lösung anzuzeigen.

    Lösungsüberprüfung-Ergebnisse

Die Ergebnisse der Lösungsprüfung stehen auch zum Download bereit. Die Lösungsprüferzip-Datei wird heruntergeladen in den Ordner, der über dem Webbrowser angegeben ist. Der Download steht im Excel Format und enthält einige Visualisierungen und Spalten, die Ihnen dabei helfen, die Auswirkungen, die den Typ und der Ort ein Problem feststellen, das in der Lösung erkannt wird. Ein Link zu detaillierten Anweisungen, wie das Problem auch bereitgestellt wird.

  1. Wählen Sie im Navigationsbereich Lösungen aus. Wenn sich das Element nicht im linken Seitenbereich befindet, wählen Sie …Mehr und dann das gewünschte Element aus.
  2. Wählen Sie neben der nicht verwalteten Lösung, für die Sie den Bericht über den Solution Checker herunterladen möchten, ..., zeigen Sie auf Solution Checker, und wählen Sie dann Ergebnisse herunterladen.
  3. Die Lösungsprüferzip-Datei wird heruntergeladen in den Ordner, der über dem Webbrowser angegeben ist.

Hier finden Sie eine Zusammenfassung einer Spalte im Bericht.

Berichtsspalte Beschreibung Sie betrifft nur Komponente.
Issue Der Titel des Problems ist in der Lösung identifiziert. Alle
Kateg. Die Kategorisierung des identifizierten Problems, z. B. Leistung, Wartbarkeit, Nutzung, Unterstützbarkeit, Design, Sicherheit, Barrierefreiheit oder Upgradebereitschaft. Alle
Schweregrad Stellt die möglichen Auswirkungen des Problems identifizierten dar. Verfügbare Auswirkungstypen sind Kritisch, Hoch, Mittel, Niedrig und Informativ. Alle
Anweisungen Verknüpfen Sie Artikel, die das Problem aufführen, beeinflussen und Aktionen empfehlen. Alle
Komponente Die Lösungskomponente, in der das Problem identifiziert wird. Alle
Location Der Standort und/oder die Quelldatei der Komponente, in der das Problem ist, wie z. B. die Assembly oder der JavaScript-Dateiname. Alle
Linie # Der Zeilennummernverweis des Problems in der betroffenen Webressourcenkomponente. Webressourcen
Modul Modulname,der das Problem identifiziert, das in der angegeben Assembly erkannt wurde. Benutzerdefinierte Workflow-Aktivität
Type Typ des Problems in der identifizierten Assembly. Benutzerdefinierte Workflow-Aktivität
Mitglied Typ des Problems in der identifizierten Assembly. Benutzerdefinierte Workflow-Aktivität
Anweisung Die Codeanweisung oder die Konfiguration, die das Problem auslöst. Alle
Kommentare Details zum Problem, die Auflösungsstufen auf hohem Niveau verfügen. Alle

Lösungsprüfungsregeln lokal ausführen

Sie können Lösungsprüfregeln in Ihrer Entwicklungsumgebung ausführen, um Probleme viel früher zu erkennen, während Sie Ihre Lösungsressourcen erstellen. Dies wird derzeit für Webressourcen (JavaScript und TypeScript) unterstützt. Weitere Einzelheiten finden Sie im NPM-Paket @microsoft/eslint-plugin-power-apps.

Bewährte Methoden, die vom Lösungsprüfer verwendet werden

In der folgenden Tabelle sind Komponententyp, Regelbeschreibung, Schweregrad und Kategorie aufgeführt. Kritische Verstöße werden blockiert oder es erfolgt eine Warnung bei Konfiguration für die Durchsetzung der Lösungsprüfung mit verwalteten Umgebungen. Weitere Informationen: Lösungsüberprüfung in verwalteten Umgebungen verwenden

Lösungskomponente Regelname Regelbeschreibung Schweregrad Kategorie
Plug-in oder Workflowaktivität meta-remove-dup-reg Vermeiden Sie doppelte Dataverse-Plugin-Registrierungen. Kritisch Leistung
Plug-in oder Workflowaktivität meta-avoid-reg-no-attribute Fügen Sie Filterattribute mit Dataverse-Plugin-Registrierungen hinzu. Mäßig Leistung
Plug-in oder Workflowaktivität meta-avoid-reg-retrieve Seien Sie vorsichtig mit Dataverse-Plugins, die für Retrieve- und RetrieveMultiple-Nachrichten registriert sind. Mäßig Leistung
Plug-in oder Workflowaktivität meta-remove-inactive Inaktive Konfigurationen unter Dataverse entfernen. Niedrig Verwaltbarkeit
Plug-in oder Workflowaktivität meta-avoid-crm4-event Verwenden Sie keine Microsoft Dynamics CRM 4.0-Plug-In-Registrierungs-Phase. Mäßig Upgradebereitschaft
Plug-in oder Workflowaktivität meta-avoid-retrievemultiple-annotation Vermeiden Sie die Registrierung eines Plug-Ins bei RetrieveMultiple der Anmerkung. Hoch Verbrauch
Plug-in oder Workflowaktivität meta-license-sales-sdkmessages Die Lösung enthält SDK-Nachrichten und -Vorgänge, für die eine gültige Dynamics 365-Lizenz erforderlich ist. Niedrig Lizenzierung
Modellbasierte App meta-license-sales-customcontrols Die Lösung enthält benutzerdefinierte Steuerelemente, für die eine gültige Dynamics 365 Sales-Lizenz erforderlich ist. Niedrig Lizenzierung
Modellbasierte App meta-license-sales-entity-operations Die Lösung enthält Entitäten mit eingeschränkten SDK-Nachrichten und -Vorgängen, für die eine gültige Dynamics 365-Lizenz erforderlich ist. Niedrig Lizenzierung
Webressourcen use-async Interagieren mit HTTP- und HTTPS-Ressourcen asynchron. Kritisch Leistung
Webressourcen avoid-modals Vermeiden Sie die Nutzung von modalen Dialogfelder. Hoch Unterstützung
Webressourcen avoid-dom-form Hoch Unterstützung
Webressourcen avoid-dom-form-event Hoch Unterstützung
Webressourcen avoid-crm2011-service-odata Zielen Sie nicht auf den Microsoft Dynamics CRM 2011 ODatas 2.0-Endpunkt ab. Kritisch Upgradebereitschaft
Webressourcen avoid-crm2011-service-soap Zielen Sie nicht auf die Microsoft Dynamics CRM 2011 SOAP-Services ab. Kritisch Upgradebereitschaft
Webressourcen avoid-loadtheme Verwenden Sie nicht die loadTheme Fluent v8-API. Niedrig Unterstützung
Webressourcen avoid-browser-specific-api Verwenden Sie keine Internet Explorer-Vorgänger APIs Internet oder -Browser-Plug-Ins. Kritisch Upgradebereitschaft
Webressourcen avoid-unpub-api Hoch Unterstützung
Webressourcen avoid-window-top Hoch Unterstützung
Webressourcen avoid-2011-api Verwenden Sie kein veraltetes Microsoft Dynamics CRM 2011-Objektmodell. Folgen Sie stattdessen der Dataverse Web-API-Dokumentation. Hoch Upgradebereitschaft
Webressourcen use-relative-uri Verwenden Sie keine absoluten Dataverse-Endpunkt-URLs. Mäßig Verwaltbarkeit
Webressourcen use-cached-webresource Mäßig Leistung
Webressourcen use-client-context Nutzen Sie Client-Kontexte. Mäßig Upgradebereitschaft
Webressourcen use-navigation-api Verwenden Sie Navigations-APIs. Mäßig Upgradebereitschaft
Webressourcen use-offline Mäßig Upgradebereitschaft
Webressourcen do-not-make-parent-assumption Hoch Design
Webressourcen use-org-setting Nutzen Sie Organisationseinstellungen. Mäßig Upgradebereitschaft
Webressourcen use-global-context Mäßig Upgradebereitschaft
Webressourcen use-grid-api Verwenden Sie Gitter-APIs. Mäßig Upgradebereitschaft
Webressourcen use-utility-dialogs Mäßig Verbrauch
Webressourcen avoid-isActivityType Ersetzen Sie Xrm.Utility.isActivityType method with new Xrm.Utility.gettableMetadata und verwenden Sie nicht die Menübandregeln. Mäßig Upgradebereitschaft
Webressourcen meta-avoid-silverlight Die Nutzung der Webressource Silverlight (XAP) ist veraltet. Mäßig Upgradebereitschaft
Webressourcen remove-debug-script Verwenden Sie keine Debugskripts in Nicht-Entwicklungsumgebungen. Mäßig Verbrauch
Webressourcen use-strict-mode Verwenden Sie den strengem Modus, wenn möglich. Mäßig Verbrauch
Webressourcen use-strict-equality-operators Verwenden Sie strenge Gleichheitsoperatoren. Mäßig Verbrauch
Webressourcen avoid-eval Verwenden Sie nicht die Funktion „eval” oder deren funktionale Entsprechungen. Kritisch Sicherheit
Webressourcen avoid-with Den 'with'-Operator nicht verwenden. Hoch Leistung
Webressourcen remove-alert Verwenden Sie nicht die „alert“-Funktion oder ihre funktionalen Entsprechungen. Mäßig Verbrauch
Webressourcen remove-console Verwenden Sie keine Methoden für die Konsole. Mäßig Verbrauch
Webressourcen avoid-ui-refreshribbon Vermeiden Sie die Verwendung von „refreshRibbon“ in „form onload“ und „EnableRule“. Kritisch Leistung
Webressourcen use-getsecurityroleprivilegesinfo Vermeiden Sie userSettings.securityRolePrivileges. Verwenden Sie stattdessen userSettings.getSecurityRolePrivilegesInfo. Hoch Leistung
Webressourcen use-appsidepane-api Verwenden Sie Xrm.App.sidePanes.createPane anstelle von Xrm.Panels.loadPanel. Mäßig Upgradebereitschaft
Webressourcen web-sdl-no-cookies HTTP-Cookies sind ein alter clientseitiger Speichermechanismus mit inhärenten Risiken und Einschränkungen. Verwenden Sie stattdessen Web Storage, IndexedDB oder andere moderne Methoden. Mäßig Sicherheit
Webressourcen web-sdl-no-document-domain Schreibvorgänge in die Eigenschaft „document.domain“ müssen überprüft werden, um eine Umgehung von Same-Origin-Prüfungen zu vermeiden. Die Verwendung von Top-Level-Domänen wie azurewebsites.net ist strengstens untersagt. Mäßig Sicherheit
Webressourcen web-sdl-no-document-write Aufrufe von document.write oder document.writeln manipulieren DOM direkt ohne jegliche Bereinigung und sollten vermieden werden. Verwenden Sie stattdessen document.createElement() oder ähnliche Methoden. Mäßig Sicherheit
Webressourcen web-sdl-no-html-method Direkte Aufrufe der Methode html() manipulieren häufig (z. B. im jQuery-Framework) das DOM ohne jegliche Bereinigung und sollten vermieden werden. Verwenden Sie stattdessen document.createElement() oder ähnliche Methoden. Mäßig Sicherheit
Webressourcen web-sdl-no-inner-html Zuweisungen zu innerHTML- oder outerHTML-Eigenschaften manipulieren DOM direkt ohne jegliche Bereinigung und sollten vermieden werden. Verwenden Sie stattdessen document.createElement() oder ähnliche Methoden. Mäßig Sicherheit
Webressourcen web-sdl-no-insecure-url Unsichere Protokolle wie HTTP oder FTP sollten durch ihre verschlüsselten Gegenstücke (HTTPS, FTPS) ersetzt werden, um zu vermeiden, dass potenziell sensible Daten im Klartext über nicht vertrauenswürdige Netzwerke gesendet werden. Mäßig Sicherheit
Webressourcen web-sdl-no-msapp-exec-unsafe Aufrufe von MSApp.execUnsafeLocalFunction() umgehen die Skriptinjektionsvalidierung und sollten vermieden werden. Mäßig Sicherheit
Webressourcen web-sdl-no-postmessage-star-origin Geben Sie immer einen bestimmten Zielursprung an, nicht „*“, wenn Sie Daten mit postMessage an andere Fenster senden, um Datenlecks außerhalb der Vertrauensgrenze zu vermeiden. Mäßig Sicherheit
Webressourcen web-sdl-no-winjs-html-unsafe Aufrufe von WinJS.Utilities.setInnerHTMLUnsafe() und ähnlichen Methoden führen keine Eingabevalidierung durch und sollten vermieden werden. Verwenden Sie stattdessen WinJS.Utilities.setInnerHTML(). Mäßig Sicherheit
Canvas-App app-formula-issues-high Weitere Details finden Sie in den Power Apps-Formelverweisen. Kritisch Design
Canvas-App app-formula-issues-medium Weitere Details finden Sie in den Power Apps-Formelverweisen. Mäßig Design
Canvas-App app-formula-issues-low Weitere Details finden Sie in den Power Apps-Formelverweisen. Niedrig Design
Canvas-App app-use-delayoutput-text-input Verwenden Sie in einigen Szenarien verzögertes Laden, um die Leistung zu verbessern. Mäßig Leistung
Canvas-App app-reduce-screen-controls Begrenzen Sie die Anzahl der App-Steuerelemente, um die Leistung zu verbessern. Mäßig Leistung
Canvas-App app-include-accessible-label Verwenden Sie explizite Beschriftungen, um die Barrierefreiheit der App zu verbessern. Mäßig Barrierefreiheit
Canvas-App app-include-alternative-input Stellen Sie sicher, dass alle interaktiven Elemente für alternative Eingaben zugänglich sind. Mäßig Barrierefreiheit
Canvas-App app-avoid-autostart Vermeiden Sie die Verwendung des Autostarts bei Spielern innerhalb einer App. Mäßig Barrierefreiheit

Siehe auch

Bewährte Methoden sowie Anweisungen zum Dataverse
Best Practices und Anleitungen für modellgetriebene Anwendungen
Häufige Probleme und Lösungen für Solution Checker

Hinweis

Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)

Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).