Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Řešení se používají k distribuci objektů Power Platform, jako jsou aplikace, tabulky, toky, webové prostředky a moduly plug-in. Tento článek představuje funkci kontroly řešení, což je výkonný nástroj, který provádí komplexní statickou analýzu objektů řešení podle sady pravidel osvědčených postupů. Pomocí kontroly řešení můžete rychle identifikovat problematické vzory ve vašich komponentách a získat podrobné zprávy, které zvýrazňují problémy, ovlivněné komponenty a poskytují odkazy na dokumentaci o tom, jak jednotlivé problémy vyřešit. Tím zajistíte, že vaše řešení budou optimalizována z hlediska výkonu, stability a spolehlivosti.
Kontrola řešení pracuje s nespravovanými řešeními, které lze exportovat z prostředí.
Kontrolu řešení můžete spustit buď z Power Apps (make.powerapps.com), nebo pomocí PowerShell.
Jak vám kontrola řešení pomůže
Pro zajištění komplexních obchodních požadavků mohou tvůrci skončit u vysoce pokročilých řešení, která přizpůsobují a rozšiřují platformu Power Platform. Při pokročilých implementacích dochází ke zvýšenému riziku, kdy se zavedou problémy s výkonem, stabilitou a spolehlivostí, což může negativně ovlivnit zážitky uživatelů. Identifikace a porozumění řešení těchto problémů může být komplikované a časově náročné. Pomocí funkce kontroly řešení můžete provést kontrolu během několika sekund na řešení, které používá soubor pravidel osvědčených postupů a rychle identifikovat problematické vzorce. Po dokončení kontroly obdržíte podrobnou sestavu v Power Apps a také v e-mailové zprávě, která obsahuje seznam zjištěných problémů, ovlivněných komponent a kódů a odkazy na dokumentaci, která popisuje, jak vyřešit každý problém.
Kontrola řešení analyzuje tyto součásti řešení:
- Vlastní aktivity pracovních postupů služby Dataverse
- Webové prostředky (HTML a JavaScript) služby Dataverse
- Konfigurace služby Dataverse, například kroky zprávy SDK
- Toky Power Automate (prostřednictvím kontroly toku)
- Výrazy Power Fx (prostřednictvím kontroly aplikací)
Poznámka:
- Nástroj pro kontrolu řešení podporuje globální proměnné pro ECMAScript 2015 (ES6) a až do syntaxe ECMAScript 2018 (ES9). Pokud je JavaScript detekován pomocí globálních proměnných pozdějších než ES6 nebo syntaxe pozdější než ES9, je hlášen problém nepodporované webové syntaxe pro webový prostředek.
- Kontrola řešení nezaručuje, že import řešení bude úspěšný. Kontroly statické analýzy řešení neznají nakonfigurovaný stav cílového prostředí a úspěch importu může záviset na jiných řešeních nebo konfiguracích v prostředí.
Spuštění kontroly řešení
Přihlaste se ke službě Power Apps.
V levém podokně vyberte Řešení. Pokud se položka nenachází v bočním podokně, vyberte možnost …Více a poté vyberte požadovanou položku.
Vedle nespravovaného řešení, které chcete analyzovat, vyberte ..., přejděte na Kontrola řešenía potom vyberte Spustit.
Příkazové tlačítko Kontrola řešení má indikátor načítání a všimnete si, že je Stav Spuštěno… ve sloupci Kontrola řešení v seznamu Řešení.
Poznámka:
- Kontrola řešení může trvat několik minut, než je dokončena analýza.
- Po dokončení kontroly obdržíte e-mailové oznámení a oznámení v oblasti Oznámení webu Power Apps.
- Zobrazte sestavu po dokončení kontroly.
Zrušení kontroly
Po odeslání kontroly řešení ve vašem prostředí, lze kontrolu zrušit prostřednictvím podokna stavu v pravém horním rohu stránky Řešení.
Při zrušení kontroly se kontrola řešení zastaví a stav kontroly řešení se vrátí do předchozího stavu.
Stavy kontroly řešení
Při instalaci kontroly řešení ve vašem prostředí bude k dispozici sloupec Kontrola řešení v seznamu Řešení. Tento sloupec zobrazí stavy analýzy řešení.
| Kraj | Popis |
|---|---|
| Nebyl spuštěn | Řešení nebylo nikdy analyzováno. |
| Spuštěno | Řešení se analyzuje. |
| Nelze dokončit | Analýza řešení byla požadována, ale nebyla úspěšně dokončena. |
| Výsledky od data a času | Analýza řešení byla dokončena a výsledky jsou k dispozici ke stažení. |
| Nelze dokončit. Výsledek od data a času | Požadavek na nejnovější analýzu nebyl úspěšně dokončen. Poslední úspěšné výsledky si můžete stáhnout. |
| Zkontrolováno společností Microsoft | Toto je spravované řešení společnosti Microsoft. Analýza řešení není povolena u těchto řešení. |
| Zkontrolováno vydavatelem | Toto je spravované řešení jiné než Microsoft. Analýza řešení v současné době není k dispozici pro tato řešení. |
Revize sestavy kontroly řešení
Po dokončení kontroly řešení si můžete zobrazit analytickou zprávu na portálu nebo si ji stáhnout z webového prohlížeče. Na portálu máte možnosti řadit výsledky podle problému, umístění nebo závažnosti a zobrazit podrobné informace o problémech zjištěných ve vašem řešení.
V levém podokně vyberte Řešení. Pokud se položka nenachází v bočním podokně, vyberte možnost …Více a poté vyberte požadovanou položku.
Vedle nespravovaného řešení, kde chcete zobrazit sestavu kontroly řešení, vyberte ..., přejděte na Kontrola řešení a pak zvolte Zobrazit výsledky.
Chcete-li zobrazit informace a pokyny k řešení, vyberte příslušný problém.
Výsledky kontroly řešení jsou také k dispozici ke stažení. Soubor ZIP kontroly řešení je stažen do složky určené vaším webovým prohlížečem. Sestava ke stažení je ve formátu Excel a obsahuje několik vizualizací a sloupců, které vám pomohou identifikovat dopad, typ a místo jednotlivých problémů zjištěných ve vašem řešení. K dispozici je také odkaz na podrobné pokyny o tom, jak problém vyřešit.
- V levém podokně vyberte Řešení. Pokud se položka nenachází v bočním podokně, vyberte možnost …Více a poté vyberte požadovanou položku.
- Vedle nespravovaného řešení, kam chcete stáhnout sestavu kontroly řešení, vyberte ..., přejděte na Kontrola řešení a pak zvolte Stáhnout výsledky.
- Soubor ZIP kontroly řešení je stažen do složky určené vaším webovým prohlížečem.
Zde je souhrn všech sloupců v sestavě.
| Sloupec sestavy | Popis | Vztahuje se na komponentu |
|---|---|---|
| Problém | Název problému identifikovaného v řešení. | Vše |
| Kategorie | Kategorizace zjištěného problému, například Výkon, Udržovatelnost, Využití, Podpora, Design, Zabezpečení, Přístupnost nebo Připravenost na upgrade. | Vše |
| Závažnost | Představuje potenciální dopad identifikovaného problému. Dostupné dopady jsou Kritický, Vysoký, Střední, Nízký a Informační. | Vše |
| Pokyny | Odkaz na článek s podrobným popisem problému, dopadu a doporučené akce. | Vše |
| Součást | Komponenta řešení, kde byl problém identifikován. | Vše |
| Location | Místo anebo zdrojový soubor komponenty, kde došlo k zjištěnému problému, například sestavení nebo název souboru JavaScript. | Vše |
| Číslo řádku | Odkaz na číslo řádku problému v ovlivněné komponentě webového prostředku. | Webové prostředky |
| Modul | Název modulu, kde byl zjištěn problém identifikovaný v sestavení. | Vlastní aktivita pracovního postupu |
| Typ | Typ problému identifikovaného v sestavení. | Vlastní aktivita pracovního postupu |
| Člen | Člen problému identifikovaného v sestavení. | Vlastní aktivita pracovního postupu |
| Příkaz | Příkaz kódu nebo konfigurace, které vedly k problému. | Vše |
| Komentáře | Podrobnosti o problému zahrnující základní kroky řešení. | Vše |
Místní spouštění pravidel kontroly řešení
Ve svém vývojovém prostředí můžete spustit pravidla kontroly řešení, abyste zjistili problémy mnohem dříve, než vytvoříte prostředky řešení. Toto chování je v současné době podporováno u webových zdrojů (JavaScript a TypeScript). Další podrobnosti najdete v balíčku NPM @microsoft/eslint-plugin-power-apps.
Spuštění kontroly řešeními pomocí PowerShell
K dispozici je modul PowerShell, pomocí kterého můžete přímo komunikovat se službou. Modul Microsoft.PowerApps.Checker.PowerShell lze použít k analýze nespravovaných řešení pro podporované verze prostředí Power Apps v místních a online prostředích nebo pro automatizaci a integraci služby do kanálu sestavení a vydání. Více informací: Microsoft.PowerApps.Checker.PowerShell – přehled
Pravidla osvědčených postupů používaná kontrolou řešení
Následující tabulka uvádí typ komponenty, popis pravidla, závažnost a kategorii. Kritická porušení jsou blokována nebo varována při konfiguraci pro vynucení kontroly řešení se spravovanými prostředími. Další informace: Použití kontroly řešení ve spravovaných prostředích
| Komponenta řešení | Název pravidla | Popis pravidla | Závažnost | Kategorie |
|---|---|---|---|---|
| Modul plug-in nebo aktivita pracovního postupu | meta-remove-dup-reg | Vyhněte se duplicitním registracím modulů plug-in Dataverse. | Kritický | Výkon |
| Modul plug-in nebo aktivita pracovního postupu | meta-avoid-reg-no-attribute | Zahrňte atributy filtrování s registracemi modulu plug-in Dataverse. | střední | Výkon |
| Modul plug-in nebo aktivita pracovního postupu | meta-avoid-reg-retrieve | Postupujte opatrně u modulů plug-in Dataverse registrovaných pro zprávy Retrieve a RetrieveMultiple. | střední | Výkon |
| Modul plug-in nebo aktivita pracovního postupu | meta-remove-inactive | Neaktivní konfigurace kanálů v Dataverse. | Nejnižší | Udržovatelnost |
| Modul plug-in nebo aktivita pracovního postupu | meta-avoid-crm4-event | Nepoužívejte fázi registrace modulu plug-in Microsoft Dynamics CRM 4.0. | střední | Připravenost upgradu |
| Modul plug-in nebo aktivita pracovního postupu | meta-avoid-retrievemultiple-annotation | Vyhněte se registraci modulu plug-in v RetrieveMultiple anotace. | Vysoká | Využití |
| Modelem řízená aplikace | meta-license-sales-entity-operations | Řešení obsahuje entity s omezenými zprávami a operacemi SDK, které vyžadují platnou licenci Dynamics 365. | Nejnižší | Licencování |
| Modelem řízená aplikace | meta-license-fieldservice-customcontrols | Řešení obsahuje vlastní ovládací prvky, které vyžadují platnou licenci Dynamics 365 Field Service. | Nejnižší | Licencování |
| Modelem řízená aplikace | meta-license-fieldservice-entity-operations | Řešení obsahuje entity s omezenými zprávami SDK a operacemi, které vyžadují platnou licenci Dynamics 365 Field Service. | Nejnižší | Licencování |
| Webové zdroje | use-async | Pracujte s prostředky HTTP a HTTPS asynchronně. | Kritický | Výkon |
| Webové zdroje | avoid-modals | Vyhněte se použití modálních dialogových oken. | Vysoká | Podpora |
| Webové zdroje | avoid-dom-form | Vysoká | Podpora | |
| Webové zdroje | avoid-dom-form-event | Vysoká | Podpora | |
| Webové zdroje | avoid-crm2011-service-odata | Necilte na koncový bod Microsoft Dynamics CRM 2011 OData 2.0. | Kritický | Připravenost upgradu |
| Webové zdroje | avoid-crm2011-service-soap | Necilte na služby Microsoft Dynamics CRM 2011 SOAP. | Kritický | Připravenost upgradu |
| Webové zdroje | avoid-loadtheme | Nepoužívejte loadTheme Fluent v8 API. |
Nejnižší | Podpora |
| Webové zdroje | avoid-browser-specific-api | Nepoužívejte starší rozhraní API aplikace Internet Explorer nebo moduly plug-in prohlížeče. | Kritický | Připravenost upgradu |
| Webové zdroje | avoid-unpub-api | Vysoká | Podpora | |
| Webové zdroje | avoid-window-top | Vysoká | Podpora | |
| Webové zdroje | avoid-2011-api | Nepoužívejte zastaralý objektový model Microsoft Dynamics CRM 2011. Místo toho se řiďte dokumentací Dataverse Web API. | Vysoká | Připravenost upgradu |
| Webové zdroje | use-relative-uri | Nepoužívejte absolutní adresy URL koncového bodu Dataverse. | střední | Udržovatelnost |
| Webové zdroje | use-cached-webresource | střední | Výkon | |
| Webové zdroje | use-client-context | Používejte kontexty klienta. | střední | Připravenost upgradu |
| Webové zdroje | use-navigation-api | Umožňuje používat parametry rozhraní API. | střední | Připravenost upgradu |
| Webové zdroje | use-offline | střední | Připravenost upgradu | |
| Webové zdroje | do-not-make-parent-assumption | Vysoká | Návrh | |
| Webové zdroje | use-org-setting | Používejte nastavení organizace. | střední | Připravenost upgradu |
| Webové zdroje | use-global-context | střední | Připravenost upgradu | |
| Webové zdroje | use-grid-api | Používejte API rozhraní mřížek. | střední | Připravenost upgradu |
| Webové zdroje | use-utility-dialogs | střední | Využití | |
| Webové zdroje | avoid-isActivityType | Nahraďte metodu Xrm.Utility.isActivityType novou metodou Xrm.Utility.gettableMetadata a nepoužívejte pravidla pásu karet. | střední | Připravenost upgradu |
| Webové zdroje | meta-avoid-silverlight | Použití webového zdroje Silverlight je zastaralé. | střední | Připravenost upgradu |
| Webové zdroje | remove-debug-script | Vyhněte se ladění skriptů v prostředích, která nejsou určena pro vývoj. | střední | Využití |
| Webové zdroje | use-strict-mode | Pokud je to možné, používejte striktní režim. | střední | Využití |
| Webové zdroje | use-strict-equality-operators | Používejte striktní operátory rovnosti. | střední | Využití |
| Webové zdroje | avoid-eval | Nepoužívejte funkci eval nebo její funkční ekvivalenty. |
Kritický | Zabezpečení |
| Webové zdroje | avoid-with | Nepoužívejte s operátorem „with“. | Vysoká | Výkon |
| Webové zdroje | remove-alert | Nepoužívejte funkci alert ani její funkční ekvivalenty. | střední | Využití |
| Webové zdroje | remove-console | Nepoužívejte metody na konzolu. | střední | Využití |
| Webové zdroje | avoid-ui-refreshribbon | Nepoužívejte refreshRibbon ve formuláři onload a EnableRule. | Kritický | Výkon |
| Webové zdroje | use-getsecurityroleprivilegesinfo | Nepoužívejte userSettings.securityRolePrivileges. Místo toho použijte userSettings.getSecurityRolePrivilegesInfo. | Vysoká | Výkon |
| Webové zdroje | use-appsidepane-api | Místo Xrm.Panels.loadPanel použijte Xrm.App.sidePanes.createPane. | střední | Připravenost upgradu |
| Webové zdroje | web-sdl-no-cookies | Soubory cookie protokolu HTTP jsou starý mechanismus ukládání na straně klienta s inherentními riziky a omezeními. Místo nich použijte Web Storage, IndexedDB nebo jiné moderní metody. | střední | Zabezpečení |
| Webové zdroje | web-sdl-no-document-domain | Zápisy do vlastnosti document.domain musí být zkontrolovány, aby se zabránilo obcházení kontrol stejného původu. Používání domén nejvyšší úrovně, jako je azurewebsites.net, je přísně zakázáno. | střední | Zabezpečení |
| Webové zdroje | web-sdl-no-document-write | Volání do document.write nebo document.writeln manipulují s modelem DOM přímo bez jakékoli sanitizace a je třeba se jim vyhnout. Místo toho použijte metodu document.createElement() nebo podobnou. | střední | Zabezpečení |
| Webové zdroje | web-sdl-no-html-method | Přímá volání metody html() často (například v rámci jQuery) manipulují s DOM bez jakékoli sanitizace a je třeba se jim vyhnout. Místo toho použijte metodu document.createElement() nebo podobnou. | střední | Zabezpečení |
| Webové zdroje | web-sdl-no-inner-html | Přiřazení k vlastnostem innerHTML nebo outerHTML manipulují s modelem DOM přímo bez jakékoli sanitizace a je třeba se jim vyhnout. Místo toho použijte metodu document.createElement() nebo podobnou. | střední | Zabezpečení |
| Webové zdroje | web-sdl-no-insecure-url | Nezabezpečené protokoly, jako je HTTP nebo FTP, by měly být nahrazeny jejich šifrovanými protějšky (HTTPS, FTPS), aby se zabránilo odesílání potenciálně citlivých dat přes nedůvěryhodné sítě ve formátu prostého textu. | střední | Zabezpečení |
| Webové zdroje | web-sdl-no-msapp-exec-unsafe | Volání MSApp.execUnsafeLocalFunction() obcházejí ověřování vkládání skriptu a je třeba se jim vyhnout. | střední | Zabezpečení |
| Webové zdroje | web-sdl-no-postmessage-star-origin | Při odesílání dat do jiných oken pomocí postMessage vždy poskytněte konkrétní cílový zdroj, ne *. Zabráníte tak úniku dat mimo hranice důvěryhodnosti. | střední | Zabezpečení |
| Webové zdroje | web-sdl-no-winjs-html-unsafe | Volání WinJS.Utilities.setInnerHTMLUnsafe() a podobné metody neprovádějí žádné ověřování vstupu a je třeba se jim vyhnout. Místo toho použijte WinJS.Utilities.setInnerHTML(). | střední | Zabezpečení |
| Aplikace plátna | app-formula-issues-high | Další informace viz reference ke vzorcům Power Apps. | Kritický | Návrh |
| Aplikace plátna | app-formula-issues-medium | Další informace viz reference ke vzorcům Power Apps. | střední | Návrh |
| Aplikace plátna | app-formula-issues-low | Další informace viz reference ke vzorcům Power Apps. | Nejnižší | Návrh |
| Aplikace plátna | app-use-delayoutput-text-input | Ke zlepšení výkonu použijte v některých scénářích zpožděné načtení. | střední | Výkon |
| Aplikace plátna | app-reduce-screen-controls | Chcete-li zlepšit výkon, omezte počet ovládacích prvků aplikace. | střední | Výkon |
| Aplikace plátna | app-include-accessible-label | Ke zlepšení přístupnosti aplikací použijte explicitní popisky. | střední | Přístupnost |
| Aplikace plátna | app-include-alternative-input | Zajistěte, aby všechny interaktivní prvky byly přístupné alternativním vstupům. | střední | Přístupnost |
| Aplikace plátna | app-avoid-autostart | Nepoužívejte automatické spuštění u hráčů v aplikaci. | střední | Přístupnost |
| Desktopový tok | desktopflow-avoid-unsafe-password | Hesla jsou v toku spravována nezabezpečeně. | Vysoká | Zabezpečení |
| Desktopový tok | desktopflow-avoid-subflow-recursion | Zjištěna rekurzivní volání mezi dílčími toky, což může způsobit nekonečnou smyčku. | střední | Návrh |
| Desktopový tok | desktopflow-avoid-infinite-loop | V toku byla zjištěna nekonečná smyčka, která může způsobit jeho nekonečné spouštění. | střední | Návrh |
| Desktopový tok | desktopflow-avoid-incomplete-if-branch | Zjištěna neúplná akce If, která nemá obsah nebo obsahuje pouze akce ve větvi Else. | Nejnižší | Návrh |
| Desktopový tok | desktopflow-avoid-excessive-nested-ifs | Vnořené klauzule If přesahují pět úrovní. | Nejnižší | Udržovatelnost |
| Desktopový tok | desktopflow-avoid-empty-on-error-block | Akce „Chyba bloku“ je prázdná a nezpracovává chyby. | Nejnižší | Návrh |
| Desktopový tok | desktopflow-limit-argument-count | Celkový počet vstupních/výstupních proměnných překračuje limit 25 proměnných. | Nejnižší | Udržovatelnost |
| Desktopový tok | desktopflow-input-argument-default-value | Vstupní/výstupní proměnné nepoužívají výchozí hodnoty. | Nejnižší | Udržovatelnost |
| Desktopový tok | desktopflow-limit-variable-name-length | Název proměnné překračuje limit 25 znaků. | Nejnižší | Udržovatelnost |
| Desktopový tok | desktopflow-avoid-excessive-wait-actions | Zjištěno nesprávné použití čekacích akcí, kdy více než 10 čekacích akcí způsobuje potenciální problémová místa. | Nejnižší | Výkon |
| Desktopový tok | desktopflow-avoid-immense-wait-duration | Byla zjištěna obrovská čekací doba, která překračuje limit 600 sekund pro pevně zakódované akce čekání. | Nejnižší | Výkon |
Viz také
Doporučené postupy a pokyny pro Dataverse
Doporučené postupy a pokyny pro aplikace řízené podle modelu
Běžné problémy a řešení pro kontrolu řešení