Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Oplossingen worden gebruikt om Power Platform-objecten, zoals apps, tabellen, stromen, webbronnen en plug-ins, te distribueren. Dit artikel introduceert de functie Oplossingscontrole, krachtige tool die een uitgebreide, statische analyse van uw oplossingsobjecten uitvoert op basis van een reeks best practice-regels. Met Oplossingscontrole kunt u snel problematische patronen in uw componenten identificeren en gedetailleerde rapporten ontvangen waarin problemen en getroffen componenten worden gemarkeerd. Ook vindt u hier koppelingen naar documentatie over hoe u elk probleem kunt oplossen. Zo bent u ervan verzekerd dat uw oplossingen geoptimaliseerd zijn voor prestaties, stabiliteit en betrouwbaarheid.
Oplossingscontrole werkt met onbeheerde oplossingen die vanuit een omgeving kunnen worden geëxporteerd.
U kunt Oplossingscontrole uitvoeren vanuit Power Apps (make.powerapps.com) of door PowerShell te gebruiken.
Hoe Oplossingscontrole u helpt
Om aan complexe bedrijfsbehoeften te voldoen, worden door makers vaak zeer geavanceerde oplossingen gemaakt waarmee het Power Platform wordt aangepast en uitgebreid. Geavanceerde implementaties brengen een verhoogde kans op problemen met prestaties, stabiliteit en betrouwbaarheid met zich mee en dat kan weer een negatief effect hebben op de eindgebruikerservaring. Het kan zeer ingewikkeld en tijdrovend zijn om deze problemen vast te stellen en er een oplossing voor te vinden. Met de oplossingscontrolefunctie kunt u een binnen enkele seconden een controle uitvoeren op uw oplossingen waarbij een set regels voor best practices wordt toegepast om snel problematische patronen vast te stellen. Als de controle is voltooid, ontvangt u een gedetailleerd rapport in Power Apps en een e-mailbericht met de vastgestelde problemen, de onderdelen en code waarop de problemen betrekking hebben en koppelingen naar documentatie waarin wordt beschreven hoe u elk probleem kunt oplossen.
Met de oplossingscontrole worden de volgende oplossingsonderdelen geanalyseerd:
- Dataverse aangepaste werkstroomactiviteiten
- Dataverse-webresources (HTML en JavaScript)
- Dataverse-configuraties, zoals SDK-berichtstappen
- Power Automate-stromen (via stroomcontrole)
- Power Fx-expressies (via app-controle)
Notitie
- Oplossingscontrole ondersteunt globale variabelen voor ECMAScript 2015 (ES6) en syntaxis tot en met ECMAScript 2018 (ES9). Wanneer JavaScript wordt gedetecteerd met globale variabelen later dan ES6 of syntaxis later dan ES9, wordt een webprobleem door niet-ondersteunde syntaxis voor de webresource gemeld.
- Het gebruik van oplossingscontrole garandeert niet dat het importeren van een oplossing zal slagen. De statische analysecontroles die aan de hand van de oplossing worden uitgevoerd, kennen de geconfigureerde status van de doelomgeving niet en het succes van de import kan afhankelijk zijn van andere oplossingen of configuraties in de omgeving.
De oplossingscontrole uitvoeren
Aanmelden bij Power Apps.
Selecteer Oplossingen in het linkervenster. Als het item zich niet in het deelvenster van het zijpaneel bevindt, selecteert u …Meer en selecteert u vervolgens het gewenste item.
Naast de onbeheerde oplossing die u wilt analyseren, selecteert u ..., wijst u Oplossingscontrole aan en selecteert u vervolgens Uitvoeren.
De opdrachtknop Oplossingscontrole heeft een laadindicator en u ziet de status Wordt uitgevoerd… in de kolom Oplossingscontrole van de lijst Oplossing.
Notitie
- De controle van de oplossing kan een paar minuten duren om de analyse te voltooien.
- U ontvangt een e-mailbericht en een melding in het gebied Meldingen van de Power Apps-site wanneer de controle is voltooid.
- Geef het rapport weer wanneer de controle is voltooid.
Een controle annuleren
Nadat u een oplossingscontrole in uw omgeving hebt ingediend, kan de controle worden geannuleerd via het statusdeelvenster rechtsboven op de pagina Oplossingen.
Wanneer u een controle annuleert, stopt de oplossingcontrole met uitvoeren en wordt de status van de oplossingcontrole weer op de vorige status ingesteld.
Statussen van Solution Checker
Als u de oplossingscontrole in uw omgeving installeert, wordt de kolom Oplossingscontrole beschikbaar in de lijst Oplossingen. In deze kolom worden de statuswaarden van de oplossingsanalyse voor een oplossing weergegeven.
| Status | Beschrijving |
|---|---|
| Niet uitgevoerd | De oplossing is nooit geanalyseerd. |
| Wordt uitgevoerd | De oplossing wordt geanalyseerd. |
| Kan niet worden voltooid | Oplossingsanalyse is aangevraagd, maar de analyse is niet voltooid. |
| Resultaten vanaf datum en tijd | Oplossingsanalyse is voltooid en de resultaten kunnen worden gedownload. |
| Kan niet worden voltooid. Resultaat vanaf datum en tijd | De laatste analyseaanvraag is niet voltooid. De laatste succesvolle resultaten kunnen worden gedownload. |
| Gecontroleerd door Microsoft | Dit is een door Microsoft beheerde oplossing. Oplossingsanalyse wordt niet toegestaan voor deze oplossingen. |
| Gecontroleerd door Publisher | Dit is een niet door Microsoft beheerde oplossing. Momenteel is er geen oplossingsanalyse beschikbaar voor deze oplossingen. |
Het oplossingscontrolerapport bekijken
Wanneer een oplossingscontrole is voltooid, kunt u het analyserapport in de portal bekijken of het rapport downloaden vanuit uw webbrowser. In de portal hebt u opties om resultaten te sorteren op Probleem, Locatie of op Ernst en gedetailleerde informatie te bekijken over problemen die in uw oplossing zijn aangetroffen.
Selecteer Oplossingen in het linkervenster. Als het item zich niet in het deelvenster van het zijpaneel bevindt, selecteert u …Meer en selecteert u vervolgens het gewenste item.
Naast de onbeheerde oplossing waarbij u het oplossingscontrolerapport wilt bekijken, selecteert u ..., wijst u Oplossingscontrole aan en selecteert u vervolgens Resultaten weergeven.
Selecteer een probleem om de details en richtlijnen voor het oplossen ervan te bekijken.
De resultaten van de oplossingscontrole kunnen ook worden gedownload. Het ZIP-bestand van Solution Checker wordt gedownload naar de map die in uw webbrowser is opgegeven. Het downloadrapport is in de Excel-indeling en bevat verschillende visualisaties en kolommen die u helpen bij het vaststellen van de gevolgen, het type en de locatie van elk probleem dat in uw oplossing is gedetecteerd. Er wordt ook een koppeling naar gedetailleerde richtlijnen voor het oplossen van het probleem verschaft.
- Selecteer Oplossingen in het linkervenster. Als het item zich niet in het deelvenster van het zijpaneel bevindt, selecteert u …Meer en selecteert u vervolgens het gewenste item.
- Naast de onbeheerde oplossing waarnaar u het oplossingscontrolerapport wilt downloaden, selecteert u ..., wijst u Oplossingscontrole aan en selecteert u vervolgens Resultaten downloaden.
- Het ZIP-bestand van Solution Checker wordt gedownload naar de map die in uw webbrowser is opgegeven.
Hier vindt u een overzicht van elke kolom in het rapport.
| Rapportkolom | Beschrijving | Geldt voor onderdeel |
|---|---|---|
| Probleem | De titel van het probleem dat in de oplossing is vastgesteld | Alle |
| Categorie | De categorisering van het geïdentificeerde probleem, zoals Prestaties, Onderhoudbaarheid, Gebruik, Ondersteuning, Ontwerp, Beveiliging, Toegankelijkheid of Upgradegereedheid. | Alle |
| Ernstigheid | Vertegenwoordigt de potentiële impact van het vastgestelde probleem. Beschikbare gevolgtypen zijn Kritiek, Hoog, Normaal, Laag en Informatief. | Alle |
| Richtlijnen | Koppeling naar artikel waarin het probleem, het gevolg en de aanbevolen actie worden beschreven. | Alle |
| Onderdeel | Het oplossingsonderdeel waar het probleem is vastgesteld. | Alle |
| Locatie | De locatie en/of het bronbestand van het onderdeel waar het vastgestelde probleem is opgetreden, zoals de assembly of JavaScript-bestandsnaam. | Alle |
| Regelnr. | De regelnummerverwijzing van het probleem in het betrokken webresourceonderdeel. | Webbronnen |
| Module | Naam van module waarin het probleem dat is vastgesteld in de assembly, is gedetecteerd. | Aangepaste werkstroomactiviteit |
| Type | Het type van het probleem dat in de assembly is vastgesteld. | Aangepaste werkstroomactiviteit |
| Lid | Lid van het probleem dat in de assembly is vastgesteld. | Aangepaste werkstroomactiviteit |
| Verklaring | De code-instructie of configuratie die resulteerde in het probleem. | Alle |
| Reacties | Details over het probleem met oplossingsstappen op hoog niveau. | Alle |
Regels voor oplossingscontrole lokaal uitvoeren
U kunt regels voor oplossingscontrole uitvoeren in uw ontwikkelomgeving om problemen veel eerder op te sporen terwijl u uw oplossingsresources maakt. Dit wordt momenteel ondersteund voor webbronnen (JavaScript en TypeScript). Ga voor meer informatie naar het NPM-pakket @microsoft/eslint-plugin-power-apps .
Voer Oplossingscontrole uit met PowerShell
Er is ook een PowerShell-module beschikbaar die u kunt gebruiken om rechtstreeks met de service te communiceren. De module Microsoft.PowerApps.Checker.PowerShell kan worden gebruikt voor analyse van beheerde en onbeheerde oplossingen voor Power Apps-omgevingen of om de service te automatiseren en te integreren in uw pipelines voor maken en vrijgeven. Meer informatie: Overzicht van Microsoft.PowerApps.Checker.PowerShell
Regels voor best practices gebruikt door oplossingscontrole
De volgende tabel bevat het onderdeeltype, de regelbeschrijving, de ernst en de categorie. Kritieke overtredingen worden geblokkeerd of gewaarschuwd wanneer deze zijn geconfigureerd voor het afdwingen van oplossingscontrole met beheerde omgevingen. Meer informatie: Oplossingscontrole gebruiken in Beheerde omgevingen
| Oplossingsonderdeel | Naam van de regel | Beschrijving van regel | Ernstigheid | Categorie |
|---|---|---|---|---|
| Invoegtoepassing of werkstroomactiviteit | meta-remove-dup-reg | Vermijd dubbele registraties van Dataverse-invoegtoepassingen. | Kritiek | Prestaties |
| Invoegtoepassing of werkstroomactiviteit | meta-avoid-reg-no-attribute | Neem filterattributen op in registraties van Dataverse-invoegtoepassingen. | Gemiddeld | Prestaties |
| Invoegtoepassing of werkstroomactiviteit | meta-avoid-reg-retrieve | Wees voorzichtig met invoegtoepassingen van Dataverse die zijn geregistreerd voor Retrieve- en RetrieveMultiple-berichten. | Gemiddeld | Prestaties |
| Invoegtoepassing of werkstroomactiviteit | meta-remove-inactive | Verwijder inactieve configuraties in Dataverse. | Laag | Onderhoud |
| Invoegtoepassing of werkstroomactiviteit | meta-avoid-crm4-event | Gebruik niet de registratiefase van Microsoft Dynamics CRM 4.0-invoegtoepassingen. | Gemiddeld | Gereed voor upgrade |
| Invoegtoepassing of werkstroomactiviteit | meta-avoid-retrievemultiple-annotation | Vermijd het registreren van een plug-in voor RetrieveMultiple van annotaties. | Hoog | Gebruik |
| Modelgestuurde app | meta-license-sales-entity-operations | De oplossing bevat entiteiten met beperkte SDK-berichten en -bewerkingen waarvoor een geldige Dynamics 365-licentie vereist is. | Laag | Licenties |
| Modelgestuurde app | meta-license-fieldservice-customcontrols | De oplossing bevat aangepaste besturingselementen waarvoor een geldige Dynamics 365 Field Service-licentie vereist is. | Laag | Licenties |
| Modelgestuurde app | meta-license-fieldservice-entity-operations | De oplossing bevat entiteiten met beperkte SDK-berichten en -bewerkingen waarvoor een geldige Dynamics 365 Field Service-licentie vereist is. | Laag | Licenties |
| Webbronnen | use-async | Gebruik HTTP- en HTTPS-resources asynchroon. | Kritiek | Prestaties |
| Webbronnen | avoid-modals | Vermijd het gebruik van modale dialoogvensters. | Hoog | Ondersteuning |
| Webbronnen | avoid-dom-form | Hoog | Ondersteuning | |
| Webbronnen | avoid-dom-form-event | Hoog | Ondersteuning | |
| Webbronnen | avoid-crm2011-service-odata | Richt u niet op het Microsoft Dynamics CRM 2011 OData 2.0-eindpunt | Kritiek | Gereed voor upgrade |
| Webbronnen | avoid-crm2011-service-soap | Richt u niet op de Microsoft Dynamics CRM 2011 SOAP-services. | Kritiek | Gereed voor upgrade |
| Webbronnen | avoid-loadtheme | Gebruik loadTheme Fluent v8 API niet. |
Laag | Ondersteuning |
| Webbronnen | avoid-browser-specific-api | Gebruik geen oude API's of browserplug-ins van Internet Explorer. | Kritiek | Gereed voor upgrade |
| Webbronnen | avoid-unpub-api | Hoog | Ondersteuning | |
| Webbronnen | avoid-window-top | Hoog | Ondersteuning | |
| Webbronnen | avoid-2011-api | Gebruik het afgeschafte Microsoft Dynamics CRM 2011-objectmodel niet. Volg in plaats daarvan de documentatie van Dataverse-web-API. | Hoog | Gereed voor upgrade |
| Webbronnen | use-relative-uri | Gebruik geen absolute Dataverse eindpunt-URL's. | Gemiddeld | Onderhoud |
| Webbronnen | use-cached-webresource | Gemiddeld | Prestaties | |
| Webbronnen | use-client-context | Gebruik clientcontexten. | Gemiddeld | Gereed voor upgrade |
| Webbronnen | use-navigation-api | Gebruik navigatie-API-parameters. | Gemiddeld | Gereed voor upgrade |
| Webbronnen | use-offline | Gemiddeld | Gereed voor upgrade | |
| Webbronnen | do-not-make-parent-assumption | Hoog | Ontwerpen | |
| Webbronnen | use-org-setting | Gebruik organisatie-instellingen. | Gemiddeld | Gereed voor upgrade |
| Webbronnen | use-global-context | Gemiddeld | Gereed voor upgrade | |
| Webbronnen | use-grid-api | Gebruik de raster-API's. | Gemiddeld | Gereed voor upgrade |
| Webbronnen | use-utility-dialogs | Gemiddeld | Gebruik | |
| Webbronnen | avoid-isActivityType | Vervang de Xrm.Utility.isActivityType-methode door de nieuwe Xrm.Utility.gettableMetadata en gebruik deze niet in lintregels. | Gemiddeld | Gereed voor upgrade |
| Webbronnen | meta-avoid-silverlight | Gebruik van Silverlight-webresource is afgeschaft. | Gemiddeld | Gereed voor upgrade |
| Webbronnen | remove-debug-script | Vermijd het opnemen van debug-script in niet-ontwikkelomgevingen. | Gemiddeld | Gebruik |
| Webbronnen | use-strict-mode | Gebruik indien mogelijk een strikte modus. | Gemiddeld | Gebruik |
| Webbronnen | use-strict-equality-operators | Gebruik strikte gelijkheidsoperatoren. | Gemiddeld | Gebruik |
| Webbronnen | avoid-eval | Gebruik de eval-functie of de functionele equivalenten ervan niet. |
Kritiek | Beveiliging |
| Webbronnen | avoid-with | Gebruik niet de operator 'met'. | Hoog | Prestaties |
| Webbronnen | remove-alert | Gebruik de functie alert of gelijksoortige functies niet. | Gemiddeld | Gebruik |
| Webbronnen | remove-console | Vermijd het gebruik van methoden op de console. | Gemiddeld | Gebruik |
| Webbronnen | avoid-ui-refreshribbon | Vermijd het gebruik van refreshRibbon in formulier-onload en EnableRule. | Kritiek | Prestaties |
| Webbronnen | use-getsecurityroleprivilegesinfo | Vermijd userSettings.securityRolePrivileges. Gebruik in plaats daarvan userSettings.getSecurityRolePrivilegesInfo. | Hoog | Prestaties |
| Webbronnen | use-appsidepane-api | Gebruik Xrm.App.sidePanes.createPane in plaats van Xrm.Panels.loadPanel. | Gemiddeld | Gereed voor upgrade |
| Canvas-app | app-formula-issues-high | Ga naar Power Apps-formulereferentie voor meer details. | Kritiek | Ontwerpen |
| Canvas-app | app-formula-issues-medium | Raadpleeg verwijzingen naar Power Apps-formules voor aanvullende details. | Gemiddeld | Ontwerpen |
| Canvas-app | app-formula-issues-low | Raadpleeg verwijzingen naar Power Apps-formules voor aanvullende details. | Laag | Ontwerpen |
| Canvas-app | app-use-delayoutput-text-input | Gebruik in sommige scenario's uitgestelde belasting om de prestaties te verbeteren. | Gemiddeld | Prestaties |
| Canvas-app | app-reduce-screen-controls | Beperk het aantal app-besturingselementen voor verbeterde prestaties. | Gemiddeld | Prestaties |
| Canvas-app | app-include-accessible-label | Gebruik expliciete labels om de toegankelijkheid van apps te verbeteren. | Gemiddeld | Toegankelijkheid |
| Canvas-app | app-include-alternative-input | Zorg ervoor dat alle interactieve elementen toegankelijk zijn voor alternatieve invoer. | Gemiddeld | Toegankelijkheid |
| Canvas-app | app-avoid-autostart | Maak geen gebruik van automatisch starten op spelers binnen een app. | Gemiddeld | Toegankelijkheid |
| Bureaubladstroom | desktopflow-avoid-unsafe-password | Wachtwoorden worden in de flow onveilig beheerd. | Hoog | Beveiliging |
| Bureaubladstroom | desktopflow-avoid-subflow-recursion | Er zijn recursieve aanroepen gedetecteerd tussen substromen, die mogelijk een oneindige lus veroorzaken. | Gemiddeld | Ontwerpen |
| Bureaubladstroom | desktopflow-avoid-infinite-loop | Er is een oneindige lus gedetecteerd in de flow, waardoor deze mogelijk oneindig blijft draaien. | Gemiddeld | Ontwerpen |
| Bureaubladstroom | desktopflow-avoid-incomplete-if-branch | Onvolledige If-actie gedetecteerd: inhoud ontbreekt of bevat alleen acties in de Else-vertakking. | Laag | Ontwerpen |
| Bureaubladstroom | desktopflow-avoid-excessive-nested-ifs | Geneste If-clausules met meer dan vijf niveaus. | Laag | Onderhoud |
| Bureaubladstroom | desktopflow-avoid-empty-on-error-block | De actie "Bij blokfout" is leeg en fouten worden niet afgehandeld. | Laag | Ontwerpen |
| Bureaubladstroom | desktopflow-limit-argument-count | Het totale aantal invoer-/uitvoervariabelen overschrijdt de limiet van 25 variabelen. | Laag | Onderhoud |
| Bureaubladstroom | desktopflow-input-argument-default-value | Invoer-/uitvoervariabelen gebruiken geen standaardwaarden. | Laag | Onderhoud |
| Bureaubladstroom | desktopflow-limit-variable-name-length | Naam van variabele overschrijdt de limiet van 25 tekens. | Laag | Onderhoud |
| Bureaubladstroom | desktopflow-avoid-excessive-wait-actions | Misbruik van wachtacties gedetecteerd, waarbij meer dan 10 wachtacties potentiële knelpunten veroorzaken. | Laag | Prestaties |
| Bureaubladstroom | desktopflow-avoid-immense-wait-duration | Er is een enorme wachttijd gedetecteerd, die de limiet van 600 seconden voor hard gecodeerde wachtacties overschrijdt. | Laag | Prestaties |
Zie ook
Beste praktijken en richtlijnen voor de Dataverse
Aanbevolen procedures en richtlijnen voor modelgestuurde apps
Veelvoorkomende problemen en oplossingen voor Solution Checker