Förbättra komponentprestanda, -stabilitet och -tillförlitlighet med lösningskontrollen

För att leverera med det avancerade affärsprogrammet, kan utvecklare ofta få mycket avancerade lösningar som anpassar och utökar plattformen Microsoft Dataverse. 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 utforma en omfattande statisk analyskontroll på dina lösningar mot en uppsättning regler och snabbt identifiera dessa problemmönster. När kontrollen är klar kan få du en detaljerad rapport 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 konfiguration, till exempel steg för SDK-meddelandesteg
  • Power Automate-flöden (via flödeskontrollen)
  • Power Fx-uttryck (via programkontrollen)

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

Anteckning

  • Det här avsnittet innehåller information om hur du kör en lösningskontroll från Power Apps tillverkningsportalen. Det finns också 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
  • 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.
  • Genom att använda lösningskontrollen garanterar inte säkert att en lösningsimport 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 inläsningssymbol, och du kommer att märka att den Körs… i kolumnen lösningskontroll i listan lösning.

    Status för lösningkontroll.

    Notera följande:

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

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

Solution checker states

Tillstånd för lösningskontroll

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.

Land Beskrivning
Har inte körts. Lösningen har aldrig analyserats.
Körs Lösningen analyseras.
Det gick inte att slutföra. Lösningsanalysen har begärt men analysen slutfördes inte.
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 Det här är en tredjeparts hanterad lösning. 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.

    Visa resultat för lösningskontroll.

Lösningskontrollen resultat kan också hämtas. Zip-filen för lösningskontroll hämtas till den mapp som angetts av din webbläsare. Nedladdningsrapporten är 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 komponent
Ärende Rubriken för problemet identifieras 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
Location Plats och/eller källfil för komponenten där problemet som identifierades inträffade, till exempel paketet eller JavaScript-filnamnet. Alla
Rad # Radnummerreferensen till problemet i den påverkade webbresurskomponenten. Webbresurser
Modul Modulnamnet där problemet som identifierats i paketet identifierades. Anpassad arbetsflödesaktivitet
Type Typ av problem som identifierades i paketet. 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.

Regler för bästa metod som används av lösningskontroll

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 attribut för filtrering med plugin-programregistreringar för Dataverse. Medium Resultat
Plug-in eller arbetsflödesaktivitet meta-avoid-reg-retrieve Var försiktig med plugin-program för registreringar för Dataverse som registrerats för Retrieve- och RetrieveMultiple-meddelanden. Medium Resultat
Plug-in eller arbetsflödesaktivitet meta-remove-inactive Ta bort inaktiva kanalkonfigurationer i Dataverse Lägst 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. Medium Uppgraderingsberedskap
Plug-in eller arbetsflödesaktivitet meta-avoid-retrievemultiple-annotation Undvik att registrera ett plugin-program för RetrieveMultiple av anteckningar. Högst 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ägst Licensiering
Modellbaserat program meta-license-fieldservice-customcontrols Lösningen innehåller anpassade kontroller som kräver en giltig Dynamics 365 Field Service-licens. Lägst 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ägst Licensiering
Webbresurser use-async Interagera asynkront med HTTP- och HTTPS-resurser. Kritisk Resultat
Webbresurser avoid-modals Undvik att använda modala dialogrutor. Högst Supportmöjlighet
Webbresurser avoid-dom-form Högst Supportmöjlighet
Webbresurser avoid-dom-form-event Högst Supportmöjlighet
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ägst Supportmöjlighet
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ögst Supportmöjlighet
Webbresurser avoid-window-top Högst Supportmöjlighet
Webbresurser avoid-2011-api Använd inte inaktuell Microsoft Dynamics CRM 2011-objektmodellen. Följ i stället dokumentationen för Dataverse webb-API. Högst Uppgraderingsberedskap
Webbresurser use-relative-uri Använd inte absoluta slutpunkt-API:er för Dataverse för program. Medium Underhållsmöjlighet
Webbresurser use-cached-webresource Medium Resultat
Webbresurser use-client-context Använd klientkontexter. Medium Uppgraderingsberedskap
Webbresurser use-navigation-api Använd API-parametrar för navigering. Medium Uppgraderingsberedskap
Webbresurser use-offline Medium Uppgraderingsberedskap
Webbresurser do-not-make-parent-assumption Högst Designa
Webbresurser use-org-setting Använd organisationsinställningar. Medium Uppgraderingsberedskap
Webbresurser use-global-context Medium Uppgraderingsberedskap
Webbresurser use-grid-api Använda API:er för rutnät. Medium Uppgraderingsberedskap
Webbresurser use-utility-dialogs Medium Användning
Webbresurser avoid-isActivityType Ersätt Xrm.Utility.isActivityType-metod med nya Xrm.Utility.gettableMetadata och använd inte menyfliksområdets regler. Medium Uppgraderingsberedskap
Webbresurser meta-avoid-silverlight Användning av webbresursen Silverlight är inaktuell. Medium Uppgraderingsberedskap
Webbresurser remove-debug-script Undvik felsökningsskript i miljöer utan utveckling. Medium Användning
Webbresurser use-strict-mode Använd läget strikt när det är möjligt. Medium Användning
Webbresurser use-strict-equality-operators Använd strikta jämlika operatorer. Medium Användning
Webbresurser avoid-eval Använd inte "eval"-funktionen eller dess funktionella motsvarigheter. Kritisk Säkerhet
Webbresurser undvik-med Använd inte med operatören. Högst Resultat
Webbresurser remove-alert Använd inte funktionen alert eller någon av dess funktionella motsvarigheter. Medium Användning
Webbresurser remove-console Undvik att använda metoder på konsolen. Medium 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ögst Resultat
Webbresurser use-appsidepane-api Använd Xrm.App.sidePanes.createPane istället för Xrm.Panels.loadPanel. Medium Uppgraderingsberedskap
Webbresurser web-sdl-no-cookies HTTP-cookies är en gammal lagringsmekanism på klientsidan med inneboende risker och begränsningar. Använd webblagring, IndexedDB eller andra modern metodik i stället. Medium Säkerhet
Webbresurser web-sdl-no-document-domain Skriver till egendomen document.domain måste granskas för att undvika förbikoppling av kontroller av samma ursprung. Användning av toppdomäner som azurewebsites.net är strängt förbjuden. Medium Säkerhet
Webbresurser web-sdl-no-document-write Samtal till document.write eller document.writeln manipulerar DOM direkt utan någon sanering och bör undvikas. Använd document.createElement() eller liknande metoder i stället. Medium Säkerhet
Webbresurser web-sdl-no-html-method Direkta anrop till metod html() ofta (t.ex. i jQuery framework) manipulerar DOM utan någon sanering och bör undvikas. Använd document.createElement() eller liknande metoder i stället. Medium Säkerhet
Webbresurser web-sdl-no-inner-html Tilldelningar till innerHTML eller outerHTML-egenskaper manipulerar DOM direkt utan någon sanering och bör undvikas. Använd document.createElement() eller liknande metoder i stället. Medium Säkerhet
Webbresurser web-sdl-no-insecure-url Oskyddade protokoll som HTTP eller FTP bör ersättas av deras krypterade protokoll (HTTPS, FTPS) så att potentiellt känsliga data skickas över nätverk som inte är betrodda i klartext. Medium Säkerhet
Webbresurser web-sdl-no-msapp-exec-unsafe Anrop till MSApp.execUnsafeLocalFunction() kringgår skriptinjektion validering och bör undvikas. Medium Säkerhet
Webbresurser web-sdl-no-postmessage-star-origin Ange alltid ett specifikt mål ursprung, inte * när du skickar data till andra fönster med hjälp av postMessage för att undvika att data uppstår utanför förtroendegränsen. Medium Säkerhet
Webbresurser web-sdl-no-winjs-html-unsafe Anrop till WinJS.Utilities.setInnerHTMLUnsafe() och liknande metoder utför ingen indatavalidering och bör undvikas. Använd WinJS.Utilities.setInnerHTML() i stället. Medium Säkerhet
Arbetsyteapp app-formel-problem-hög Mer information finns i Power Apps-formelreferenser. Kritisk Designa
Arbetsyteapp app-formel-problem-medel Mer information finns i Power Apps-formelreferenser. Medium Designa
Arbetsyteapp app-formel-problem-låg Mer information finns i Power Apps-formelreferenser. Lägst Designa
Arbetsyteapp app-använd-delayoutput-text-indata Använd fördröjd belastning i vissa situationer för att förbättra prestanda. Medium Resultat
Arbetsyteapp app-förminska–skärm-kontroller Begränsa antalet appkontroller för förbättrade prestanda. Medium Resultat
Arbetsyteapp app-inkludera-tillgänglig-etikett Använd explicita etiketter för att förbättra programmets tillgänglighet. Medium Hjälpmedel
Arbetsyteapp app-inkludera-alternativ-indata Kontrollera att alla interaktiva element är tillgängliga för alternativa indata. Medium Hjälpmedel
Arbetsyteapp app-undvik-autostart Undvik att använda autostart på spelare inom ett program. Medium Hjälpmedel

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

Anteckning

Kan du berätta om dina inställningar för dokumentationsspråk? Svara i en kort undersökning. (observera att undersökningen är på engelska)

Undersökningen tar ungefär sju minuter. Inga personuppgifter samlas in (sekretesspolicy).