Bruge løsningskontrol til at validere dine løsninger

For at opfylde komplekse forretningskrav kan udviklere ofte ende med meget avancerede løsninger, som tilpasser og udvider Microsoft Dataverse-platformen. Med avancerede implementeringer følger en øget risiko, hvor der kan opstå problemer med ydeevne, stabilitet og pålidelighed, hvilket kan påvirke brugeroplevelsen negativt. Identifikation og forståelse af, hvordan disse problemer løses, kan være kompliceret og tidskrævende. Med løsningskontrolfunktionen kan du udføre et omfattende statisk analysetjek af dine løsninger i forhold til et sæt af regler for bedste praksis og hurtigt identificere de problematiske mønstre. Når tjekket er fuldført, modtager du en detaljeret rapport, som viser en liste over de identificerede problemer, de berørte komponenter og den berørte kode, samt links til dokumentation, der beskriver, hvordan de enkelte problemer løses.

Løsningskontrollen analyserer disse løsningskomponenter:

  • Dataverse-brugerdefinerede arbejdsprocesaktiviteter
  • Dataverse-webressourcer (HTML og JavaScript)
  • Dataverse-konfigurationer, som f.eks. SDK-meddelelsestrin
  • Power Automate-flows (via flowkontrol)
  • Power Fx-udtryk (via appkontrol)

Løsningskontrollen fungerer sammen med ikke-administrerede løsninger, der kan eksporteres fra et miljø.

Bemærk

  • I dette emne forklares det, hvordan du kan køre Løsningskontrol fra Power Apps-udviklerportalen. Der findes også et PowerShell-modul, som du kan bruge til at kommunikere direkte med tjenesten. Microsoft.PowerApps.Checker.PowerShell-modulet kan bruges til analyse af ikke-administrerede løsninger til understøttede versioner af lokale og online Power Apps-miljøer eller til at automatisere og integrere tjenesten i build- og release-pipelines. Flere oplysninger: Microsoft.PowerApps.Checker.PowerShell-oversigt
  • Løsningskontrol understøtter globale variabler for syntaks ECMAScript 2015 (ES6) og op til ECMAScript 2018 (ES9). Når der registreres JavaScript med globale variabler senere end ES6 eller syntaks senere end ES9, rapporteres et problem med syntaks, der ikke understøttes af internettet, for webressourcen.
  • Brug af løsningskontrol garanterer ikke, at en løsningsimport bliver vellykket. Den statiske analysekontrol, der udføres mod løsningen, kender ikke den konfigurerede tilstand af destinationsmiljøet, og importsucces kan være afhængig af andre løsninger eller konfigurationer i miljøet.

Kør løsningskontrollen

  1. Log på Power Apps.

  2. Vælg Løsninger i venstre rude. Hvis elementet ikke findes i sidepanelruden, skal du vælge ...Flere og derefter vælge det ønskede element.

  3. Ved siden af den ikke-administrerede løsning, du vil analysere, skal du vælge ..., pege på Løsningskontrol og derefter vælge Kør.

    Kommandoen Kør løsningskontrol.

  4. Kommandoknappen Løsningskontrol har en indlæsningsindikator, og du vil se Kører... i kolonnen Løsningskontrol på listen Løsning.

    Status for løsningskontrol.

    Bemærk følgende:

    • Det kan tage et par minutter for løsningskontrollen at fuldføre analysen.

    • Du modtager en mail og en meddelelse i området Meddelelser på Power Apps-webstedet, når kontrollen er fuldført.

  5. Få vist rapporten, når kontrollen er fuldført.

Annullering af en kontrol

Når du sender en løsningskontrol i dit miljø, kan kontrollen annulleres fra statusruden i området øverst til højre på siden Løsninger.

Når du annullerer en kontrol, stopper løsningskontrollen, og status for løsningskontrollen vender tilbage til forrige tilstand.

Tilstande for løsningskontrollen

Når du installerer løsningskontrollen i dit miljø, vises kolonnen Løsningskontrol på listen Løsninger. Denne kolonne viser løsningsanalystetilstandene for en løsning.

Område Beskrivelse
Er ikke blevet kørt Løsningen er aldrig blevet analyseret.
Kører Løsningen analyseres.
Kunne ikke fuldføres Løsningsanalysen blev anmodet, men analysen blev ikke fuldført.
Resultater efter dato og klokkeslæt Løsningsanalysen blev fuldført, og resultaterne kan hentes.
Kunne ikke fuldføres. Resultat efter dato og klokkeslæt Den seneste analyseanmodning blev ikke fuldført. De seneste vellykkede resultater kan downloades.
Kontrolleret af Microsoft Dette er en administreret løsning fra Microsoft. Løsningsanalysen er ikke tilladt for disse løsninger.
Kontrolleret af udgiver Dette er en administreret løsning fra tredjepart. Løsningsanalyse er ikke tilgængelig for disse løsninger i øjeblikket.

Gennemse rapporten for løsningskontrollen

Når en løsningskontrol er fuldført, kan du få vist analyserapporten på portalen, eller du kan downloade rapporten fra din webbrowser. I portalen har du mulighed for at sortere resultater efter Problem, Placering eller Alvorsgrad og at få vist detaljerede oplysninger om problemer, der er registreret i løsningen.

  1. Vælg Løsninger i venstre rude. Hvis elementet ikke findes i sidepanelruden, skal du vælge ...Flere og derefter vælge det ønskede element.

  2. Ud for den ikke-administrerede løsning, hvor du vil have vist rapporten for løsningskontrollen, skal du vælge ..., pege på Løsningkontrol og derefter vælge Se resultater.

  3. Vælg en fejl for at få vist detaljer og en vejledning i, hvordan du løser problemet.

    Visning af resultater i løsningskontrol.

Du kan også hente resultaterne af løsningskontrollen. Zip-filen med løsningskontrollen downloades til den mappe, der er angivet af din webbrowser. Downloadrapporten er i Excel-format og indeholder flere visualiseringer og kolonner, der hjælper dig med at identificere påvirkningen, typen og placeringen af de enkelte problemer, der er registreret i din løsning. Der findes også et link til en detaljeret vejledning i, hvordan du kan løse problemet.

  1. Vælg Løsninger i venstre rude. Hvis elementet ikke findes i sidepanelruden, skal du vælge ...Flere og derefter vælge det ønskede element.
  2. Ud for den ikke-administrerede løsning, hvor du vil hente rapporten for løsningskontrollen, skal du vælge ..., pege på Løsningskontrol og derefter vælge Hent resultater.
  3. Zip-filen med løsningskontrollen hentes til den mappe, der er angivet af din webbrowser.

Her er en oversigt over de enkelte kolonner i rapporten.

Kolonnen Rapport Beskrivelse Gælder for-komponent
Fejl Titlen på det problem, der er identificeret i løsningen. Alle
Kategori Den kategorisering af det identificerede problem, f.eks. Ydeevne, Vedligeholdelse, Brug, Mulighed for support, Design, Sikkerhed, Tilgængelighed eller Opgraderingsparathed. Alle
Alvorlighedsgrad Repræsenterer den mulige påvirkning af det identificerede problem. Tilgængelige påvirkningstyper er Kritisk, Høj, Mellem, Lav og Oplysninger. Alle
Vejledning Link til artikel med detaljerede oplysninger om problemet, påvirkningen og den anbefalede handling. Alle
Komponent Løsningskomponenten, hvor problemet blev identificeret. Alle
Location Placering og/eller kildefilen for komponenten, hvor det identificerede problem opstod, f.eks. assembly eller JavaScript-filnavn. Alle
Linjenr. Linjenummerreference for problemet i den berørte webressourcekomponent. Webressourcer
Modul Modulnavnet, hvor det identificerede problem i assembly'en blev registreret. Brugerdefineret arbejdsprocesaktivitet
Type Typen af identificeret problem i assemblyen. Brugerdefineret arbejdsprocesaktivitet
Medlem Medlem af identificeret problem i assemblyen. Brugerdefineret arbejdsprocesaktivitet
Erklæring Kodeerklæring eller konfiguration, som resulterede i problemet. Alle
Kommentarer Detaljer om problemet, der omfatter løsningstrin på højt niveau. Alle

Køre regler for løsningskontrol lokalt

Du kan køre regler for løsningskontrol i udviklingsmiljøet for at opdage problemer meget tidligere, når du opretter løsningsressourcerne. Det understøttes i øjeblikket for webressourcer (JavaScript og TypeScript). Du kan finde flere oplysninger i NPM-pakken @microsoft/eslint-plugin-power-apps.

Regler for bedste praksis, der anvendes af løsningskontrollen

I følgende tabel vises komponenttypen, regelbeskrivelsen, alvorsgraden og kategorien. Kritiske overtrædelser blokeres eller advares om, når de konfigureres til tvungen løsningskontrol med administrerede miljøer. Flere oplysninger: Bruge løsningskontrol i administrerede miljøer

Løsningskomponent Navn på regel Beskrivelse af regel Alvorlighedsgrad Kategori
Plug-in eller arbejdsprocesaktivitet meta-remove-dup-reg Undgå dubletter af Dataverse-plug-in-registreringer. Alvorlig Ydeevnen
Plug-in eller arbejdsprocesaktivitet meta-avoid-reg-no-attribute Medtag filtreringsattributter sammen med Dataverse-plug-in-registreringer. Mellem Ydeevnen
Plug-in eller arbejdsprocesaktivitet meta-avoid-reg-retrieve Vær forsigtig med Dataverse-plug-ins, der er registreret til Retrieve- og RetrieveMultiple-meddelelser. Mellem Ydeevnen
Plug-in eller arbejdsprocesaktivitet meta-remove-inactive Fjern inaktive konfigurationer i Dataverse. Lav Mulighed for vedligeholdelse
Plug-in eller arbejdsprocesaktivitet meta-avoid-crm4-event Brug ikke registreringsfasen til Microsoft Dynamics CRM 4.0-plug-in. Mellem Opgraderingsparathed
Plug-in eller arbejdsprocesaktivitet meta-avoid-retrievemultiple-annotation Undgå at registrere en plug-in for RetrieveMultiple for anmærkninger. Høj Brug
Webressourcer use-async Asynkron interaktion med HTTP- og HTTPS-ressourcer. Alvorlig Ydeevnen
Webressourcer avoid-modals Undgå brug af modale dialogbokse. Høj Mulighed for support
Webressourcer avoid-dom-form Høj Mulighed for support
Webressourcer avoid-dom-form-event Høj Mulighed for support
Webressourcer avoid-crm2011-service-odata Undgå at målrette mod Microsoft Dynamics CRM 2011 OData 2.0-slutpunktet. Alvorlig Opgraderingsparathed
Webressourcer avoid-crm2011-service-soap Undgå at målrette mod Microsoft Dynamics CRM 2011 SOAP-tjenester. Alvorlig Opgraderingsparathed
Webressourcer avoid-loadtheme Brug ikke loadTheme Fluent v8 API. Lav Mulighed for support
Webressourcer avoid-browser-specific-api Brug ikke ældre Internet Explorer-API'er eller browser-plug-ins. Alvorlig Opgraderingsparathed
Webressourcer avoid-unpub-api Høj Mulighed for support
Webressourcer avoid-window-top Høj Mulighed for support
Webressourcer avoid-2011-api Brug ikke den udfasede Microsoft Dynamics CRM 2011-objektmodel. Følg i stedet dokumentationen til Dataverse-Web-API. Høj Opgraderingsparathed
Webressourcer use-relative-uri Brug ikke absolutte Dataverse-slutpunkts-URL'er. Mellem Mulighed for vedligeholdelse
Webressourcer use-cached-webresource Mellem Ydeevnen
Webressourcer use-client-context Brug klientkontekster. Mellem Opgraderingsparathed
Webressourcer use-navigation-api Brug API-navigationsparametre. Mellem Opgraderingsparathed
Webressourcer use-offline Mellem Opgraderingsparathed
Webressourcer do-not-make-parent-assumption Høj Design
Webressourcer use-org-setting Brug organisationsindstillinger. Mellem Opgraderingsparathed
Webressourcer use-global-context Mellem Opgraderingsparathed
Webressourcer use-grid-api Brug gitter-API'er. Mellem Opgraderingsparathed
Webressourcer use-utility-dialogs Mellem Brug
Webressourcer avoid-isActivityType Erstat metoden Xrm.Utility.isActivityType med den nye Xrm.Utility.gettableMetadata, og brug den ikke i båndregler. Mellem Opgraderingsparathed
Webressourcer meta-avoid-silverlight Brug af Silverlight-webressourcen er udfaset. Mellem Opgraderingsparathed
Webressourcer remove-debug-script Undgå at inkludere fejlfindingsscript i ikke-udviklingsmiljøer. Mellem Brug
Webressourcer use-strict-mode Brug Strict-tilstand, hvis det er muligt. Mellem Brug
Webressourcer use-strict-equality-operators Brug Strict-lighedsoperatorer. Mellem Brug
Webressourcer avoid-eval Brug ikke "eval"-funktionen eller funktionsækvivalenter. Alvorlig Sikkerhed
Webressourcer undgå – med Brug ikke 'med' operator. Høj Ydeevnen
Webressourcer remove-alert Brug ikke funktionen "alert" eller tilsvarende funktion. Mellem Brug
Webressourcer remove-console Undgå at bruge metoder på konsollen. Mellem Brug
Webressourcer avoid-ui-refreshribbon Undgå at bruge refreshRibbon i form onload og EnableRule. Alvorlig Ydeevnen
Webressourcer use-getsecurityroleprivilegesinfo Undgå userSettings.securityRolePrivileges. Brug userSettings.getSecurityRolePrivilegesInfo i stedet. Høj Ydeevnen
Webressourcer use-appsidepane-api Brug Xrm.App.sidePanes.createPane i stedet for Xrm.Panels.loadPanel. Mellem Opgraderingsparathed
Webressourcer web-sdl-no-cookies HTTP-cookies er en gammel mekanisme til lagring på klientsiden med indbyggede risici og begrænsninger. Brug Web Storage, indexedDB eller andre moderne metoder i stedet. Mellem Sikkerhed
Webressourcer web-sdl-no-document-domain Skrivninger til egenskaben document.domain skal gennemses for at undgå omgåelse af kontrol for samme oprindelse. Brug af domæner på øverste niveau, f.eks. azurewebsites.net er forbudt. Mellem Sikkerhed
Webressourcer web-sdl-no-document-write Kald til document.write eller document.writeln manipulerer DOM direkte uden at blive renset og skal undgås. Brug i stedet document.createElement() eller lignende metoder. Mellem Sikkerhed
Webressourcer web-sdl-no-html-method Direkte kald til metode html() ofte (f.eks. i jQuery framework) manipulereR DOM uden at blive renset og skal undgås. Brug i stedet document.createElement() eller lignende metoder. Mellem Sikkerhed
Webressourcer web-sdl-no-inner-html Tildelinger til innerHTML- eller outerHTML-egenskaber manipulerer DOM direkte uden at blive renset og skal undgås. Brug i stedet document.createElement() eller lignende metoder. Mellem Sikkerhed
Webressourcer web-sdl-no-insecure-url Sikre protokoller, f.eks. HTTP eller FTP, skal erstattes af deres krypterede modparter (HTTPS, FTPS) for at undgå at sende potentielt følsomme data som almindelig tekst via netværk, der ikke er tillid til. Mellem Sikkerhed
Webressourcer web-sdl-no-msapp-exec-unsafe Kald til MSApp.execUnsymmetriLocalSektion() omgår scriptinjektions-validering og skal undgås. Mellem Sikkerhed
Webressourcer web-sdl-no-postmessage-star-origin Angiv altid en specifik destinationsoprindelse, ikke * ved afsendelse af data til andre vinduer ved hjælp af postMessage for at undgå, at data anvendes uden for tillidsgrænsen. Mellem Sikkerhed
Webressourcer web-sdl-no-winjs-html-unsafe Kald til WinJS.Validation.setInnerHTMLUnudstyr() og lignende metoder udfører ikke inputvalidering og skal undgås. Brug WinJS.Entre.setInnerHTML() i stedet. Mellem Sikkerhed
Lærredapp app-formula-issues-high Du kan finde flere oplysninger i Power Apps-formelreferencer. Alvorlig Design
Lærredapp app-formula-issues-medium Du kan finde flere oplysninger i Power Apps-formelreferencer. Mellem Design
Lærredapp app-formula-issues-low Du kan finde flere oplysninger i Power Apps-formelreferencer. Lav Design
Lærredapp app-use-delayoutput-text-input Brug forsinket indlæsning i visse scenarier for at forbedre ydeevnen. Mellem Ydeevnen
Lærredapp app-reduce-screen-controls Begræns antallet af app-kontrolelementer for at forbedre ydeevnen. Mellem Ydeevnen
Lærredapp app-include-accessible-label Brug eksplicitte navne for at forbedre app-tilgængeligheden. Mellem Tilgængelighed
Lærredapp app-include-alternative-input Sørg for, at alle interaktive elementer er tilgængelige for alternative input. Mellem Tilgængelighed
Lærredapp app-avoid-autostart Undgå at bruge automatisk start på afspillerne i en app. Mellem Tilgængelighed

Se også

Bedste fremgangsmåder og retningslinjer for Dataverse
Bedste fremgangsmåder og retningslinjer for modelbaserede apps
Almindelige problemer med og løsninger i løsningskontrol

Bemærk

Kan du fortælle os om dine sprogpræferencer for dokumentation? Tag en kort undersøgelse. (bemærk, at denne undersøgelse er på engelsk)

Undersøgelsen tager ca. syv minutter. Der indsamles ingen personlige data (erklæring om beskyttelse af personlige oplysninger).