Forbedre løsningens ytelse, stabilitet og pålitelighet

Løsninger brukes til rulle ut Power Platform-objekter, for eksempel apper, tabeller, flyter, nettressurser og programtillegg. Denne artikkelen introduserer løsningskontrollen, som er et kraftig verktøy som utfører en omfattende, statisk analyse av løsningsobjektene mot et sett med regler for anbefalt fremgangsmåte. Ved hjelp av Løsningskontroll kan du raskt identifisere problematiske mønstre i komponentene og motta detaljerte rapporter som fremhever problemer, berørte komponenter og gir koblinger til dokumentasjon om hvordan du løser hvert problem. Dette sikrer at løsningene dine er optimalisert for ytelse, stabilitet og pålitelighet.

Eksempel på resultater og detaljer med løsningskontrollen

Løsningskontroll fungerer sammen med uadministrerte løsninger som kan eksporteres fra et miljø.

Du kan kjøre løsningskontrollen fra Power Apps (make.powerapps.com) eller ved å bruke PowerShell.

Hvordan Løsningskontroll hjelper deg

For å følge komplekse forretningskrav kan utviklere ofte ende opp med svært avanserte løsninger som tilpasser og utvider Power Platform-plattformen. Med avanserte implementeringer kommer økt risiko der problemer med ytelse, stabilitet og pålitelighet blir introdusert, som kan ha en negativ innvirkning på brukeropplevelsen. Å identifisere og forstå hvordan du løser disse problemene kan være komplisert og tidkrevende. Med løsningskontrollen kan du foreta en kontroll av løsningen din i løpet av sekunder som bruker et sett med regler for anbefalt fremgangsmåte til raskt å finne problematiske mønstre. Etter at kontrollen er fullført, får du en detaljert rapport i Power Apps og i en e-postmelding som viser en liste over problemene som ble funnet, komponentene og koden som er berørt, og koblinger til dokumentasjon som beskriver hvordan du løser hvert enkelt problem.

Løsningskontrollen analyserer disse løsningskomponentene:

  • Egendefinerte Dataverse-arbeidsflytaktiviteter
  • Dataverse-nettressurser (HTML og JavaScript)
  • Dataverse-konfigurasjoner, for eksempel SDK-meldingstrinn
  • Power Automate-flyt (via flytkontrollen)
  • Power Fx-uttrykk (via appkontrollen)

Notat

  • Løsningskontroll støtter globale variabler for ECMAScript 2015-syntaks (ES6) og opptil ECMAScript 2018-syntaks (ES9). Når JavaScript er registrert ved hjelp av globale variabler som er senere enn ES6, eller syntaks som er senere enn ES9, rapporteres det et syntaksproblem om web som ikke støttes for nettressursen.
  • Bruk av løsningskontroll garanterer ikke at en løsningsimport blir vellykket. De statiske analysekontrollene som utføres mot løsningen, kjenner ikke til den konfigurerte tilstanden til målmiljøet, og vellykket import kan være avhengig av andre løsninger eller konfigurasjoner i miljøet.

Kjøre løsningskontrollen

  1. Logg på Power Apps.

  2. Velg Løsninger i venstre rute. Hvis elementet ikke finnes i sideruten, velger du ...Mer og deretter elementet du vil ha.

  3. Ved siden av den uadministrerte løsningen du vil analysere, velger du ..., peker på Løsningskontroll, og velger deretter Kjør.

    Kjøre løsningskontroll-kommandoen.

  4. Kommandoknappen Løsningskontroll har en innlastingsindikator, og du kan legge merke til tilstanden Kjører… i Løsningskontroll-kolonnen i Løsning-listen.

Status for løsningskontroll

Notat

  • Løsningskontrollen kan bruke noen minutter på å fullføre analysen.
  • Du mottar en e-postvarsling og en varsling i Varslinger-området på Power Apps-nettstedet når kontrollen fullføres.
  1. Vis rapporten når kontrollen er fullført.

Avbryte en kontroll

Når du har sendt en løsningskontroll i miljøet, kan kontrollen avbrytes gjennom statusruten i det øvre høyre området på Løsninger-siden.

Når du avbryter en kontroll, slutter løsningskontrollen å kjøre og statusen for løsningskontrollen returnerer til forrige tilstand.

Tilstander for løsningskontroll

Når du installerer løsningskontrollen i miljøet, blir Løsningskontroll-kolonnen tilgjengelig i Løsninger-listen. Denne kolonnen viser løsningsanalysetilstandene for en løsning.

Tilstand Beskrivelse
Er ikke kjørt Løsningen er aldri analysert.
Kjører Løsningen blir analysert.
Kunne ikke fullføres Løsningsanalysen ble forespurt, men analysen ble ikke fullført.
Resultater for dato og klokkeslett Løsningsanalysen er fullført og resultater er tilgjengelig for nedlasting.
Kunne ikke fullføres. Resultat for dato og klokkeslett Den nyeste analyseforespørselen ble ikke fullført. De siste vellykkede resultatene kan lastes ned.
Kontrollert av Microsoft Dette er en Microsoft-administrert løsning. Løsningsanalyse er ikke tillatt i disse løsningene.
Kontrollert av utgiver Dette er en ikke-Microsoft-administrert løsning. Løsningsanalyse er for øyeblikket ikke tilgjengelig for disse løsningene.

Se gjennom løsningskontrollrapporten

Når en løsningskontroll er fullført, kan du vise analyserapporten i portalen, eller du kan laste ned rapporten fra webleseren. I portalen har du alternativer for å sortere resultater etter Problem, Sted eller Alvorlighetsgrad og vise detaljert informasjon om problemer som er oppdaget i løsningen.

  1. Velg Løsninger i venstre rute. Hvis elementet ikke finnes i sideruten, velger du ...Mer og deretter elementet du vil ha.

  2. Ved siden av den uadministrerte løsningen der du vil vise løsningskontrollrapporten, velger du ..., peker på Løsningskontroll og velger deretter Vis resultater.

  3. Velg et problem for å vise detaljer og veiledning for hvordan du løser problemet.

    Eksempel på neddrilling i resultater og detaljer med løsningskontrollen

Løsningskontrollresultatene er også tilgjengelige for nedlasting. Zip-filen for løsningskontroll lastes ned til mappen som er angitt i webleseren. Nedlastingsrapporten er i Excel-format og inneholder flere visualiseringer og kolonner som kan hjelpe deg å identifisere innvirkningen, typen og plasseringen av hvert problem som er registrert i løsningen. En kobling til detaljert informasjon om hvordan du løser problemet, er også oppgitt.

  1. Velg Løsninger i venstre rute. Hvis elementet ikke finnes i sideruten, velger du ...Mer og deretter elementet du vil ha.
  2. Ved siden av den uadministrerte løsningen der du vil laste ned løsningskontrollrapporten, velger du ..., peker på Løsningskontroll og velger deretter Last ned resultater.
  3. Zip-filen for løsningskontroll lastes ned til mappen som er angitt i webleseren.

Her er et sammendrag av hver kolonne i rapporten.

Rapport-kolonnen Beskrivelse Gjelder for komponent
Problem Tittelen på problemet som er identifisert i løsningen. Alle
Kategori Kategoriseringen av det identifiserte problemet, for eksempel Ytelse, Vedlikehold, Bruk, Støtte, Utforming, Sikkerhet, Tilgjengelighet eller Oppgraderingsklar. Alle
Alvorsgrad Representerer den potensielle virkningen av problemet som identifiseres. Tilgjengelige innvirkningstyper er Kritisk, Høy, Middels, Lav og Informasjon. Alle
Veiledning Kobling til artikkelen med detaljer om problemet, innvirkning og anbefalt handling. Alle
Komponent Løsningskomponenten der problemet ble identifisert. Alle
Location Plasseringen og/eller kildefilen til komponenten der problemet som ble funnet, oppstod, for eksempel samlingen eller JavaScript-filnavnet. Alle
Linje nr. Linjenummerreferansen til problemet i den berørte nettressurskomponenten. Nettressurser
Modul Navn på modul der problemet som ble identifisert i samlingen, ble oppdaget. Egendefinert arbeidsflytaktivitet
Type Type problem som ble identifisert i samlingen. Egendefinert arbeidsflytaktivitet
Medlem Del av feilen som ble identifisert i monteringen. Egendefinert arbeidsflytaktivitet
Uttalelse Kodesetningen eller konfigurasjonen som førte til problemet. Alle
Kommentarer Informasjon om problemet som inkluderer løsningstrinn på høyt nivå. Alle

Kjøre løsningskontrollregler lokalt

Du kan kjøre regler for løsningskontroller i utviklingsmiljøet for å oppdage problemer mye raskere når du oppretter løsningsressursene. Dette støttes for øyeblikket for webressurser (JavaScript og TypeScript). Hvis du vil ha mer informasjon, kan du gå til NPM-pakken @microsoft/eslint-plugin-power-apps.

Kjør Løsningskontroll med PowerShell

En PowerShell-modul er tilgjengelig og kan brukes til å samhandle direkte med tjenesten. Microsoft.PowerApps.Checker.PowerShell-modulen kan brukes til å analysere uadministrerte løsninger for Power Apps-miljøer, eller for å automatisere og integrere tjenesten i dine egne køer for utvikling og lansering. Mer informasjon: Oversikt over Microsoft.PowerApps.Checker.PowerShell

Regler for anbefalt fremgangsmåte som brukes av løsningskontrollen

Tabellen nedenfor viser komponenttypen, regelbeskrivelsen, alvorsgraden og kategorien. Kritiske brudd blokkeres eller advares mot når de er konfigurert for håndheving av løsningskontrollen i administrerte miljøer. Mer informasjon: Bruke løsningskontroll i administrerte miljøer

Løsningskomponent Regelnavn Regelbeskrivelse Alvorsgrad Kategori
Programtillegg eller arbeidsflytaktivitet meta-remove-dup-reg Unngå registrering av dupliserte Dataverse-programtillegg. Kritisk Ytelse
Programtillegg eller arbeidsflytaktivitet meta-avoid-reg-no-attribute Inkluder filtreringsattributter med Dataverse-programtilleggsregistreringer. Middels Ytelse
Programtillegg eller arbeidsflytaktivitet meta-avoid-reg-retrieve Vær forsiktig med Dataverse-programtillegg som er registrert for Retrieve- og RetrieveMultiple-meldinger. Middels Ytelse
Programtillegg eller arbeidsflytaktivitet meta-remove-inactive Fjern inaktive konfigurasjoner i Dataverse. Lav Vedlikehold
Programtillegg eller arbeidsflytaktivitet meta-avoid-crm4-event Ikke bruk fase for registrering av programtillegg for Microsoft Dynamics CRM 4.0. Middels Oppgraderingsklar
Programtillegg eller arbeidsflytaktivitet meta-avoid-retrievemultiple-annotation Unngå å registrere et programtillegg på RetrieveMultiple av merknader. Høy Bruk
Modelldrevet app meta-license-sales-entity-operations Løsningen inneholder enheter med begrensede SDK-meldinger og -operasjoner som krever en gyldig Dynamics 365-lisens. Lav Lisensiering
Modelldrevet app meta-license-fieldservice-customcontrols Løsningen inneholder egendefinerte kontroller som krever en gyldig Dynamics 365 Field Service-lisens. Lav Lisensiering
Modelldrevet app meta-license-fieldservice-entity-operations Løsningen inneholder enheter med begrensede SDK-meldinger og operasjoner som krever en gyldig Dynamics 365 Field Service-lisens. Lav Lisensiering
Webressurs use-async Samhandle med HTTP- og HTTPS-ressurser asynkront. Kritisk Ytelse
Webressurs avoid-modals Unngå å bruke modale dialogbokser. Høy Støtte
Webressurs avoid-dom-form Høy Støtte
Webressurs avoid-dom-form-event Høy Støtte
Webressurs avoid-crm2011-service-odata Ikke fokuser på endepunktet for Microsoft Dynamics CRM 2011 OData 2.0. Kritisk Oppgraderingsklar
Webressurs avoid-crm2011-service-soap Ikke fokuser på SOAP-tjenestene for Microsoft Dynamics CRM 2011. Kritisk Oppgraderingsklar
Webressurs avoid-loadtheme Ikke bruk API-en loadTheme Fluent v8. Lav Støtte
Webressurs avoid-browser-specific-api Ikke bruk eldre API-er eller nettleser-programtillegg for Internet Explorer. Kritisk Oppgraderingsklar
Webressurs avoid-unpub-api Høy Støtte
Webressurs avoid-window-top Høy Støtte
Webressurs avoid-2011-api Ikke bruk den foreldede objektmodellen i Microsoft Dynamics CRM 2011. Følg i stedet dokumentasjonen for Web-API for Dataverse. Høy Oppgraderingsklar
Webressurs use-relative-uri Ikke bruk absolutte URL-adresser for endepunkt for Dataverse. Middels Vedlikehold
Webressurs use-cached-webresource Middels Ytelse
Webressurs use-client-context Bruk klientkontekster. Middels Oppgraderingsklar
Webressurs use-navigation-api Bruke API-paramtere for navigasjon Middels Oppgraderingsklar
Webressurs use-offline Middels Oppgraderingsklar
Webressurs do-not-make-parent-assumption Høy Utform
Webressurs use-org-setting Bruk organisasjonsinnstillinger. Middels Oppgraderingsklar
Webressurs use-global-context Middels Oppgraderingsklar
Webressurs use-grid-api Bruk API-er for rutenett. Middels Oppgraderingsklar
Webressurs use-utility-dialogs Middels Bruk
Webressurs avoid-isActivityType Erstatt Xrm.Utility.isActivityType-metoden med ny Xrm.Utility.gettableMetadata, og ikke bruk i regler på båndet. Middels Oppgraderingsklar
Webressurs meta-avoid-silverlight Bruk av Silverlight-nettressurser er avviklet. Middels Oppgraderingsklar
Webressurs remove-debug-script Unngå å ta med feilsøkingsskript i ikke-utviklingsmiljøer. Middels Bruk
Webressurs use-strict-mode Bruk Strict-modus når det er mulig. Middels Bruk
Webressurs use-strict-equality-operators Bruk strikte likhetsoperatorer. Middels Bruk
Webressurs avoid-eval Ikke bruk eval-funksjonen eller funksjonsekvivalenter. Kritisk Sikkerhet
Webressurs unngå-med Ikke bruk operatoren «with». Høy Ytelse
Webressurs remove-alert Ikke bruk funksjonen "alert, eller dens funksjonelle ekvivalenter. Middels Bruk
Webressurs remove-console Unngå å bruke metoder i console. Middels Bruk
Webressurs avoid-ui-refreshribbon Unngå å bruke refreshRibbon i skjema onload og EnableRule. Kritisk Ytelse
Webressurs use-getsecurityroleprivilegesinfo Unngå userSettings.securityRolePrivileges. Bruk userSettings.getSecurityRolePrivilegesInfo i stedet. Høy Ytelse
Webressurs use-appsidepane-api Bruk Xrm.App.sidePanes.createPane i stedet for Xrm.Panels.loadPanel. Middels Oppgraderingsklar
Canvas-app app-formula-issues-high Gå til Power Apps-formelreferanse hvis du vil ha mer informasjon. Kritisk Utform
Canvas-app app-formula-issues-medium Se Power Apps-formelreferanser hvis du vil ha mer informasjon. Middels Utform
Canvas-app app-formula-issues-low Se Power Apps-formelreferanser hvis du vil ha mer informasjon. Lav Utform
Canvas-app app-use-delayoutput-text-input Bruk forsinket innlesing i noen scenarioer for å forbedre ytelsen. Middels Ytelse
Canvas-app app-reduce-screen-controls Begrens antall appkontroller for forbedret ytelse. Middels Ytelse
Canvas-app app-include-accessible-label Bruk eksplisitte etiketter til å forbedre apptilgjengelighet. Middels Tilgjengelighet
Canvas-app app-include-alternative-input Kontroller at alle interaktive elementer er tilgjengelige for alternative inndata. Middels Tilgjengelighet
Canvas-app app-avoid-autostart Unngå å bruke autostart på spillere i en app. Middels Tilgjengelighet
Skrivebordsflyt desktopflow-avoid-unsafe-password Passord administreres usikkert i flyten. Høy Sikkerhet
Skrivebordsflyt desktopflow-avoid-subflow-recursion Rekursive samtaler oppdaget mellom underflyter, noe som muligens forårsaker en uendelig løkke. Middels Utform
Skrivebordsflyt desktopflow-avoid-infinite-loop Uendelig løkke oppdaget i flyten, noe som muligens kan føre til at den kjører på ubestemt tid. Middels Utform
Skrivebordsflyt desktopflow-avoid-incomplete-if-branch Ufullstendig Hvis-handling oppdaget, mangler innhold eller bare inneholder handlinger i Ellers-grenen. Lav Utform
Skrivebordsflyt desktopflow-avoid-excessive-nested-ifs Nestede Hvis-setninger overskrider fem nivåer. Lav Vedlikehold
Skrivebordsflyt desktopflow-avoid-empty-on-error-block Handlingen «Ved blokkfeil» er tom og håndterer ikke feil. Lav Utform
Skrivebordsflyt desktopflow-limit-argument-count Totale inndata-/utdatavariabler overskrider grensen på 25 variabler. Lav Vedlikehold
Skrivebordsflyt desktopflow-input-argument-default-value Inndata-/utdatavariabler bruker ikke standardverdier. Lav Vedlikehold
Skrivebordsflyt desktopflow-limit-variable-name-length Variabelnavnet overskrider grensen på 25 tegn. Lav Vedlikehold
Skrivebordsflyt desktopflow-avoid-excessive-wait-actions Misbruk av ventehandlinger oppdaget, med mer enn ti ventehandlinger som forårsaker mulige flaskehalser. Lav Ytelse
Skrivebordsflyt desktopflow-avoid-immense-wait-duration Enorm ventetid oppdaget som overskrider grensen på 600 sekunder for hardkodede ventehandlinger. Lav Ytelse

Se også

Gode fremgangsmåter og veiledning for Dataverse
Gode fremgangsmåter og veiledning for modelldrevne apper
Vanlige problemer og løsninger for Løsningskontroll