Förbättra lösningens prestanda, stabilitet och tillförlitlighet

Lösningar används för att distribuera Power Platform-objekt, till exempel appar, tabeller, flöden, webbresurser och plugin-program. Den här artikeln introducerar funktionen för lösningskontroll, ett kraftfullt verktyg som utför en omfattande statisk analys av dina lösningsobjekt mot en uppsättning regler för bästa praxis. Genom att använda Lösningskontroll kan du snabbt identifiera problematiska mönster i dina komponenter och få detaljerade rapporter som belyser problem, berörda komponenter och ger länkar till dokumentation om hur du löser varje problem. Detta säkerställer att dina lösningar är optimerade för prestanda, stabilitet och tillförlitlighet.

Exempel på resultat och detaljer för lösningskontroll

Lösningskontrollen fungerar med icke-hanterade lösningar som kan exporteras från en miljö.

Du kan antingen köra Lösningskontroll från Power Apps (make.powerapps.com) eller genom att använda PowerShell.

Hur Lösningskontroll hjälper dig

För att uppfylla komplexa affärskrav kan skapare ofta få mycket avancerade lösningar som anpassar och utökar Power Platform. Med avancerade implementeringar kommer en ökad risk där prestanda-, stabilitets- och tillförlitlighetsproblem introduceras, vilket kan påverka slutanvändarens upplevelse negativt. Det kan vara komplicerat och tidsödande att identifiera och förstå hur du kan lösa problemen. Med funktionen för lösningskontroll kan du inom några sekunder utföra en kontroll av din lösning, som använder en uppsättning bästa praxisregler för att snabbt identifiera problematiska mönster. När kontrollen är klar kan få du en detaljerad rapport i Power Apps och även ett e-postmeddelande med en lista över de problem som uppstår, komponenter och kod som påverkas och länkar till dokumentationen som beskriver hur du löser varje problem.

Lösningskontroll analyserar dessa lösningskomponenter.

  • Dataverse Anpassade arbetsflödesaktiviteter
  • Dataverse webbresurser (HTML och JavaScript)
  • Dataverse-konfigurationer, såsom SDK-meddelandesteg
  • Power Automate-flöden (via flödeskontroll)
  • Power Fx-uttryck (via programkontrollen)

Kommentar

  • Lösningskontrollen stöder globala variabler för syntax ECMAScript 2015 (ES6) och upp till ECMAScript 2018 (ES9). När JavaScript identifieras med globala variabler senare än ES6 eller syntax senare än ES9 rapporteras ett syntaxprobem för webbresurser som inte stöds av webben.
  • Användning av lösningskontrollen garanterar inte att en lösningsimport kommer att lyckas. De statiska analyskontrollerna som utfördes mot lösningen känner inte till den konfigurerade statusen för målmiljön och importen kan vara beroende av andra lösningar eller konfigurationer i miljön.

Kör lösningskontroll

  1. Logga in på Power Apps.

  2. Välj Lösningar i vänstra fönstret. Om objektet inte finns i sidopanelsfönstret väljer du … Mer och markerar sedan det objekt du vill använda.

  3. Bredvid den icke-hanterade lösningen som du vill analysera, välj ..., peka på lösningskontroll och välj kör.

    Kör kommandot för lösningskontroll.

  4. Kommandoknappen Lösningskontroll har en laddningsindikator, och du ser statusen Körs… i kolumnen Lösningskontroll i listan Lösning.

Status för lösningskontroll

Kommentar

  • Lösningskontrollen kan ta några minuter att slutföra analysen.
  • Du får ett e-postmeddelande och ett meddelande i området Aviseringar i Power Apps området när kontrollen har slutförts.
  1. Visa rapporten när kontrollen har slutförts.

Avbryta en kontroll

När du har skickat en lösningskontroll i din miljö kan kontrollen annulleras via statusrutan i den övre högra delen av sidan lösningar.

När du avbryter en kontroll slutar lösningskontrollen att köras och statusen för lösningskontrollen återgår till föregående tillstånd.

Status för Solution Checker

När du installerar lösningskontrollen i den aktuella miljön blir kolumnen Lösningskontroll tillgänglig i listan Lösningar. Den här kolumnen visar lösningsanalystillstånd för en lösning.

Tillstånd Beskrivning
Har inte körts. Lösningen har aldrig analyserats.
Körs Lösningen analyseras.
Det gick inte att slutföra. En lösningsanalys begärdes, men analysen kunde inte slutföras korrekt.
Resultaten från datum och tid Lösningsanalysen har slutförts och resultatet är tillgängligt för hämtning.
Det gick inte att slutföra. Resultat från datum och tid Senaste analysförfrågan kunde inte slutföras. Du kan hämta senaste lyckade resultat.
Kontrollerad av Microsoft Det här är en Microsoft-hanterad lösning. Analys av lösningen tillåts inte på de här lösningarna.
Kontrollerat av Utgivare Detta är en lösning som inte hanteras av Microsoft. För närvarande är lösningsanalys inte tillgängligt för dessa lösningar.

Granska rapporten för lösningskontroll

När en lösningskontroll har slutförts kan du visa analysrapporten på portalen eller hämta rapporten från webbläsaren. På portalen finns alternativ för att sortera resultat efter problem, plats eller allvarlighetsgrad och visa detaljerad information för problem som upptäcktes i din lösning.

  1. Välj Lösningar i vänstra fönstret. Om objektet inte finns i sidopanelsfönstret väljer du … Mer och markerar sedan det objekt du vill använda.

  2. Markera bredvid den icke-hanterade lösningen som du vill visa rapporten för lösningskontroll, ..., peka på Lösningskontroll och välj Visa resultat.

  3. Välj ett problem om du vill visa information om och vägledning om hur du ska lösa det.

    Exempelresultat från lösningskontroll och fördjupad information

Resultaten för lösningskontrollen är också tillgängliga för nedladdning. Zip-filen för lösningskontroll hämtas till den mapp som angetts av din webbläsare. Den hämtade rapporten visas i Excel-format och innehåller flera visualiseringar och kolumner som hjälper dig att identifiera påverkan, typ och platsen för varje problem som identifierats i lösningen. Det finns även en länk till detaljerade anvisningar om hur du åtgärdar problemet.

  1. Välj Lösningar i vänstra fönstret. Om objektet inte finns i sidopanelsfönstret väljer du … Mer och markerar sedan det objekt du vill använda.
  2. Markera bredvid den icke-hanterade lösningen som du vill hämta rapporten för lösningskontroll, ..., peka på Lösningskontroll och välj Hämta resultat.
  3. Zip-filen för lösningskontroll hämtas till den mapp som angetts av din webbläsare.

Här följer en sammanfattning av varje kolumn i rapporten.

Rapportkolumn Beskrivning Gäller för komponent
Ärende Titeln på problemet som identifierats i lösningen. Alla
Kategori Kategorisering av problemet som identifierats Prestanda, Underhåll, Användning, Stöd, Design, Säkerhet, Tillgänglighet eller Uppgraderingsberedskap. Alla
Allvarlighetsgrad Representerar den potentiella effekten av det identifierade problemet. Tillgängliga påverkanstyper är Kritisk, Hög, Mellan, Låg och information. Alla
Vägledning Länka till artikeln med information om problemet, påverkan och rekommenderad åtgärd. Alla
Komponent En lösningskomponent där problemet identifierades. Alla
Plats Plats och/eller källfil för komponenten där problemet som identifierades inträffade, till exempel paketet eller JavaScript-filnamnet. Alla
Rad nr Referensen till radnumret för problemet i den berörda webbresurskomponenten. Webbresurser
Modul Modulnamn i vilken problemet som identifierades i sammansättningen upptäcktes. Anpassad arbetsflödesaktivitet
Typ Typ av problem som identifierades i sammanställningen. Anpassad arbetsflödesaktivitet
Medlem Medlem av problem som identifierades i paketet. Anpassad arbetsflödesaktivitet
Utdrag Kodutdrag eller konfigurationen som orsakade problemet. Alla
Kommentarer Information om problemet med lösningssteg på hög nivå. Alla

Kör lösningskontrollregler lokalt

Du kan köra regler för lösningskontroll i utvecklingsmiljön om du vill identifiera problem mycket snabbare när du skapar lösningsresurserna. Detta stöds för närvarande för webbresurser (JavaScript och TypeScript). Mer information finns i NPM-paketet @microsoft/eslint-plugin-power-apps.

Kör Lösningskontroll med PowerShell

Det finns en PowerShell-modul som du kan använda för att interagera direkt med tjänsten. Microsoft.PowerApps.Checker.PowerShell-modulen kan användas för analys av icke-hanterade lösningar för Power Apps-miljöer eller för att automatisera och integrera tjänsten i bygg-och-släpp-pipeline. Mer information: Översikt över Microsoft.PowerApps.Checker.PowerShell

Regler för bästa praxis som används av lösningsgranskaren

I följande tabell visas komponenttyp, regelbeskrivning, allvarlighetsgrad och kategori. Kritiska kränkningar blockeras eller varnas när de konfigureras för tvingande lösningskontroll med hanterade miljöer. Mer information: Använd lösningskontroll i hanterade miljöer

Lösningskomponent Regelnamn Regelbeskrivning Allvarlighetsgrad Kategori
Plug-in eller arbetsflödesaktivitet meta-remove-dup-reg Undvik dubbla registreringar av Dataverse-plugin-program. Kritisk Resultat
Plug-in eller arbetsflödesaktivitet meta-avoid-reg-no-attribute Inkludera filtreringsattribut med pluginregistreringar för Dataverse. Medel Resultat
Plug-in eller arbetsflödesaktivitet meta-avoid-reg-retrieve Var försiktig med Dataverse-plugin-program som har registrerats för meddelandena Retrieve och RetrieveMultiple. Medel Resultat
Plug-in eller arbetsflödesaktivitet meta-remove-inactive Ta bort inaktiva konfigurationer i Dataverse Låg Underhållsmöjlighet
Plug-in eller arbetsflödesaktivitet meta-avoid-crm4-event Använd inte Microsoft Dynamics CRM 4.0 registreringsteg för plugin-program. Medel Uppgraderingsberedskap
Plug-in eller arbetsflödesaktivitet meta-avoid-retrievemultiple-annotation Undvik att registrera ett insticksprogram på RetrieveMultiple för anteckningar. Hög Användning
Modellbaserat program meta-license-sales-entity-operations Lösningen innehåller enheter med begränsade SDK-meddelanden och åtgärder som kräver en giltig Dynamics 365-licens. Låg Licensiering
Modellbaserat program meta-license-fieldservice-customcontrols Lösningen innehåller Anpassade kontroller som kräver en giltig Dynamics 365 Field Service-licens. Låg Licensiering
Modellbaserat program meta-license-fieldservice-entity-operations Lösningen innehåller entiteter med begränsade SDK-meddelanden och åtgärder som kräver en giltig Dynamics 365 Field Service-licens. Låg Licensiering
Webbresurser use-async Interagera asynkront med HTTP- och HTTPS-resurser. Kritisk Resultat
Webbresurser avoid-modals Undvik att använda modala dialogrutor. Hög Supportbarhet
Webbresurser avoid-dom-form Hög Supportbarhet
Webbresurser avoid-dom-form-event Hög Supportbarhet
Webbresurser avoid-crm2011-service-odata Rikta inte in dig på Microsoft Dynamics CRM 2011 OData 2.0-slutpunkten. Kritisk Uppgraderingsberedskap
Webbresurser avoid-crm2011-service-soap Rikta inte in dig på Microsoft Dynamics CRM 2011 SOAP-tjänster. Kritisk Uppgraderingsberedskap
Webbresurser avoid-loadtheme Använd inte loadTheme Fluent v8 API. Låg Supportbarhet
Webbresurser avoid-browser-specific-api Använd inte äldre API:er för Internet Explorer eller plugin-program för webbläsare. Kritisk Uppgraderingsberedskap
Webbresurser avoid-unpub-api Hög Supportbarhet
Webbresurser avoid-window-top Hög Supportbarhet
Webbresurser avoid-2011-api Använd inte den föråldrade objektmodellen för Microsoft Dynamics CRM 2011. Följ i stället dokumentationen för Dataverse webb-API. Hög Uppgraderingsberedskap
Webbresurser use-relative-uri Använd inte absoluta slutpunkts-URL:er för Dataverse. Medel Underhållsmöjlighet
Webbresurser use-cached-webresource Medel Resultat
Webbresurser use-client-context Använd klientkontexter. Medel Uppgraderingsberedskap
Webbresurser use-navigation-api Använd API-parametrar för navigering. Medel Uppgraderingsberedskap
Webbresurser använd offline Medel Uppgraderingsberedskap
Webbresurser do-not-make-parent-assumption Hög Design
Webbresurser use-org-setting Använd organisationsinställningar. Medel Uppgraderingsberedskap
Webbresurser use-global-context Medel Uppgraderingsberedskap
Webbresurser use-grid-api Använda API:er för rutnät. Medel Uppgraderingsberedskap
Webbresurser använd-verktygsdialogrutor Medel Användning
Webbresurser avoid-isActivityType Ersätt metoden Xrm.Utility.isActivityType med den nya metoden Xrm.Utility.gettableMetadata och använd den inte i menyfliksregler. Medel Uppgraderingsberedskap
Webbresurser meta-avoid-silverlight Användning av webbresursen Silverlight är inaktuell. Medel Uppgraderingsberedskap
Webbresurser remove-debug-script Undvik felsökningsskript i miljöer utan utveckling. Medel Användning
Webbresurser use-strict-mode Använd läget strikt när det är möjligt. Medel Användning
Webbresurser use-strict-equality-operators Använd strikta likhetsoperatorer. Medel Användning
Webbresurser avoid-eval Använd inte eval-funktionen eller dess funktionella motsvarigheter. Kritisk Säkerhet
Webbresurser undvik-med Använd inte operatorn 'with'. Hög Resultat
Webbresurser remove-alert Använd inte funktionen alert eller någon av dess funktionella motsvarigheter. Medel Användning
Webbresurser remove-console Undvik att använda metoder på konsolen. Medel Användning
Webbresurser avoid-ui-refreshribbon Undvik att använda refreshRibbon i form av onload och EnableRule. Kritisk Resultat
Webbresurser use-getsecurityroleprivilegesinfo Undvik userSettings.securityRolePrivileges. Använd userSettings.getSecurityRolePrivilegesInfo i stället. Hög Resultat
Webbresurser use-appsidepane-api Använd Xrm.App.sidePanes.createPane istället för Xrm.Panels.loadPanel. Medel Uppgraderingsberedskap
Canvas-app app-formel-problem-hög Gå till Power Apps formelreferens för ytterligare information. Kritisk Design
Canvas-app app-formel-problem-medel Mer information finns i Power Apps-formelreferenser. Medel Design
Canvas-app app-formel-problem-låg Mer information finns i Power Apps-formelreferenser. Låg Design
Canvas-app app-använd-delayoutput-text-indata Använd fördröjd belastning i vissa situationer för att förbättra prestanda. Medel Resultat
Canvas-app app-minimera-skärmkontroller Begränsa antalet appkontroller för förbättrade prestanda. Medel Resultat
Canvas-app app-inkludera-tillgänglig-etikett Använd explicita etiketter för att förbättra programmets tillgänglighet. Medel Tillgänglighet
Canvas-app app-inkludera-alternativ-indata Kontrollera att alla interaktiva element är tillgängliga för alternativa indata. Medel Tillgänglighet
Canvas-app app-avoid-autostart Undvik att använda autostart på spelare inom ett program. Medel Tillgänglighet
Skrivbordsflöde desktopflow-avoid-unsafe-password Lösenord hanteras osäkert i flödet. Hög Säkerhet
Skrivbordsflöde desktopflow-avoid-subflow-recursion Rekursiva anrop har identifierats mellan underflöden, vilket kan orsaka en oändlig loop. Medel Design
Skrivbordsflöde desktopflow-avoid-infinite-loop En oändlig loop har identifierats i flödet, vilket kan leda till att den körs oändligt länge. Medel Design
Skrivbordsflöde desktopflow-avoid-incomplete-if-branch Ofullständig If-åtgärd har identifierats, saknar innehåll eller innehåller bara åtgärder i Else-grenen. Låg Design
Skrivbordsflöde desktopflow-avoid-excessive-nested-ifs Kapslade If-satser överskrider fem nivåer. Låg Underhållsmöjlighet
Skrivbordsflöde desktopflow-avoid-empty-on-error-block Åtgärden ”Vid blockfel” är tom och hanterar inte fel. Låg Design
Skrivbordsflöde desktopflow-limit-argument-count Det totala antalet indata-/utdatavariabler överskrider gränsen på 25 variabler. Låg Underhållsmöjlighet
Skrivbordsflöde desktopflow-input-argument-default-value Indata-/utdatavariabler använder inte standardvärden. Låg Underhållsmöjlighet
Skrivbordsflöde desktopflow-limit-variable-name-length Variabelnamnet överskrider gränsen på 25 tecken. Låg Underhållsmöjlighet
Skrivbordsflöde desktopflow-avoid-excessive-wait-actions Missbruk av vänteåtgärder har identifierats, och fler än tio vänteåtgärder orsakar potentiella flaskhalsar. Låg Resultat
Skrivbordsflöde desktopflow-avoid-immense-wait-duration Mycket lång väntetid har identifierats, som överskrider gränsen på 600 sekunder för hårdkodade vänteåtgärder. Låg Resultat

Se även

Metodtips och vägledning för Dataverse
Metodtips och riktlinjer för modellstyrda program
Vanliga problem och lösningar för lösningskontrollen