使用解決方案檢查工具驗證您的解決方案

為了滿足複雜的業務需求,製作者最終通常會提供自訂且擴充 Microsoft Dataverse 平台的高度進階解決方案。 進階實作帶來更大風險,效能、穩定性及可靠性問題將應運而生,可能會對使用者體驗造成負面影響。 確定並了解如何解決這些問題可能會很複雜而且耗費時間。 您可以使用解決方案檢查工具功能,根據一組最佳做法規則,對您的解決方案執行各式各樣靜態分析檢查,並快速識別這些問題模式。 檢查完成後,您會收到詳細的報表,列出找到的問題、受影響的元件和程式碼,以及說明如何解決每個問題的文件連結。

解決方案檢查工具會分析下列解決方案元件:

  • Dataverse自訂工作流程活動
  • Dataverse Web 資源 (HTML 和 JavaScript)
  • Dataverse 組態設定,例如 SDK 訊息處理步驟
  • Power Automate 流程 (透過流程檢查工具)
  • Power Fx 運算式 (透過應用程式檢查工具)

解決方案檢查工具會使用可從環境匯出的未受管理的解決方案。

備註

  • 本主題說明如何從 Power Apps 製作者入口網站執行解決方案檢查工具。 PowerShell 模組也適用,您可用來直接與服務互動。 Microsoft.PowerApps.Checker.PowerShell 模組可用於分析 Power Apps 環境的未受管理解決方案,並可用來將服務自動化並整合至您的組建和發行管線中。 其他資訊:Microsoft.PowerApps.Checker.PowerShell 概觀
  • 解決方案檢查工具支援 ECMAScript 2015 (ES6) 和最多 ECMAScript 2018 (ES9) 語法的全域變數。 當解決方案檢查工具使用 ES6 之後的全域語法或比 ES9 更晚的語法來偵測 JavaScript 時,會報告 Web 資源不支援的網頁語法問題。
  • 使用解決方案檢查程式並不能保證解決方案將會匯入成功。 針對解決方案所進行的靜態分析檢查並不知道目標環境的設定狀態,而匯入成功可能要依靠環境中的其他解決方案或設定。

執行解決方案檢查工具

  1. 登入 Power Apps

  2. 在左窗格中,選取解決方案。 If the item isn’t in the side panel pane, select …More and then select the item you want.

  3. 在您要分析的未受管理的解決方案旁邊,選取 ...、指向解決方案檢查工具,然後選取執行

    執行解決方案檢查工具命令。

  4. 解決方案檢查工具指令按鈕具有載入指示器,且您會發現有個正在執行… 狀態 (在解決方案清單的解決方案檢查欄中)。

    解決方案檢查工具狀態。

    請注意以下要點:

    • 解決方案檢查工具可能需要幾分鐘的時間才能完成分析。

    • 檢查完成時,您會收到電子郵件通知,以及 Power Apps 網站的通知區域中的通知。

  5. 完成檢查時,檢視報表

取消檢查

送出您環境的解決方案檢查之後,可以透過解決方案頁面右上方區域的狀態窗格取消檢查。

當您取消檢查時,解決方案檢查會停止執行,而解決方案檢查狀態會回復到先前的狀態。

解決方案檢查工具狀態

當您在環境中安裝解決方案檢查工具時,解決方案清單將會有解決方案檢查欄可用。 此欄會顯示為解決方案的解決方案分析狀態。

狀態 描述
尚未執行 永遠不會分析解決方案。
執行中 正在分析解決方案。
無法完成 已要求解決方案分析,但是分析無法順利完成。
截至日期及時間的結果 解決方案分析已完成,而且結果可供下載。
無法完成。 截至日期及時間的結果 最新的分析要求無法順利完成。 可以下載上次成功的結果。
由 Microsoft 檢查 這是 Microsoft 受管理的解決方案。 不允許對這些解決進行解決方案分析。
由發行者檢查 這是第三方受管理的解決方案。 解決方案分析目前不適用於這些解決方案。

檢閱解決方案檢查工具報表

解決方案檢查完成後,您可以在入口網站中檢視分析報表,或是從網頁瀏覽器下載報表。 在入口網站中,您有個選項可以依問題位置嚴重性分類結果,並檢視您的解決方案中,所偵測出之問題的詳細資訊。

  1. 在左窗格中,選取解決方案。 If the item isn’t in the side panel pane, select …More and then select the item you want.

  2. 在您要檢視解決方案檢查工具報表的未受管理的解決方案旁邊,選取 ...、指向解決方案檢查工具,然後選取檢視結果

  3. 選取問題,以檢視詳細資料及解決方式的指引。

    解決方案檢查工具檢視結果。

解決方案檢查結果也可以供下載。 解決方案檢查工具 zip 檔案會下載到網頁瀏覽器所指定的資料夾。 下載報表採用 Excel 格式,並包含數個協助您找出解決方案中所偵測到每一問題之影響、類型和位置的視覺效果及欄位。 也會提供關於解決這個問題的詳細指引連結。

  1. 在左窗格中,選取解決方案。 If the item isn’t in the side panel pane, select …More and then select the item you want.
  2. 在您要下載解決方案檢查工具報表的未受管理的解決方案旁邊,選取 ...、指向解決方案檢查工具,然後選取下載結果
  3. 解決方案檢查工具 zip 檔案會下載到網頁瀏覽器所指定的資料夾。

以下是報表中每一欄的摘要。

報表資料行 描述 適用於元件
問題 解決方案中找出的問題的標題。 全部
類別 已發現之問題的分類,例如效能可維護性用法支援性設計安全性協助工具升級整備小幫手 所有
嚴重性 表示所找出問題的可能影響。 可用的衝擊類型為危急參考用 所有
指南 詳述問題、影響及建議動作的文章連結。 全部
元件 找出問題所在的解決方案元件。 全部
Location 所找出發生問題的元件位置和/或來源檔案,例如組件或 JavaScript 檔案名稱。 全部
行號 問題在受影響 Web 資源元件中的行號參照。 Web 資源
模組 偵測到組件中有所找出的問題的模組名稱。 自訂工作流程活動
類型 組件中所找出問題的類型。 自訂工作流程活動
成員 組件中所找出問題的成員。 自訂工作流程活動
陳述式 產生問題的程式碼陳述式或組態設定。 全部
註解 關於問題的詳細資料,包括高階解決步驟。 所有

在本機執行方案檢查程式規則

您可以在開發環境中執行解決方案檢查程式規則,以在建立解決方案資源時更快地偵測問題。 這目前支援 Web 資源 (JavaScript 和 TypeScript)。 如需詳細資料,請移至 NPM 套件 @microsoft/eslint-plugin-power-apps

解決方案檢查工具所使用的最佳做法規則

下表列出元件類型、規則描述、嚴重性和類別。 若設定為使用受控環境實施解決方案檢查工具時,嚴重違規會封鎖或警告。 其他資訊:在受管理的環境中使用解決方案檢查工具

解決方案元件 規則名稱 檔案描述 嚴重性 目錄
外掛程式或工作流程活動 meta-remove-dup-reg 避免重複 Dataverse 外掛程式註冊。 重大 績效
外掛程式或工作流程活動 meta-avoid-reg-no-attribute 將篩選屬性與 Dataverse 外掛程式註冊包含在一起。 績效
外掛程式或工作流程活動 meta-avoid-reg-retrieve 對於註冊 Retrieve 和 RetrieveMultiple 訊息的 Dataverse 外掛程式,應謹慎使用。 績效
外掛程式或工作流程活動 meta-remove-inactive 移除 Dataverse 的非使用中設定。 可維護性
外掛程式或工作流程活動 meta-avoid-crm4-event 不要使用 Microsoft Dynamics CRM 4.0 外掛程式註冊階段。 升級整備小幫手
外掛程式或工作流程活動 meta-avoid-retrievemultiple-annotation 避免在註釋的 RetrieveMultiple 中註冊外掛程式。 使用狀況
外掛程式或工作流程活動 meta-license-sales-sdkmessages 解決方案包含需要有效 Dynamics 365 授權的 SDK 訊息和作業。 授權
模型導向應用程式 meta-license-sales-customcontrols 解決方案包含需要有效 Dynamics 365 Sales 授權的自訂控制項。 授權
模型導向應用程式 meta-license-sales-entity-operations 解決方案包含使用受限 SDK 訊息和作業的實體,需要有效的 Dynamics 365 權限。 授權
Web 資源 use-async 以非同步方式與 HTTP 及 HTTPS 資源進行互動。 重大 績效
Web 資源 avoid-modals 避免使用強制回應對話方塊。 支援能力
Web 資源 avoid-dom-form 支援能力
Web 資源 avoid-dom-form-event 支援能力
Web 資源 avoid-crm2011-service-odata 不要以 Microsoft Dynamics CRM 2011 OData 2.0 端點為目標。 重大 升級整備小幫手
Web 資源 avoid-crm2011-service-soap 不要以 Microsoft Dynamics CRM 2011 SOAP 服務為目標。 重大 升級整備小幫手
Web 資源 avoid-loadtheme 請勿使用 loadTheme Fluent v8 API。 支援能力
Web 資源 avoid-browser-specific-api 不要使用 Internet Explorer 舊版 API 或瀏覽器外掛程式。 重大 升級整備小幫手
Web 資源 avoid-unpub-api 支援能力
Web 資源 avoid-window-top 支援能力
Web 資源 avoid-2011-api 不要使用已取代的 Microsoft Dynamics CRM 2011 物件模型。 請改為遵循 Dataverse Web API 文件。 升級整備小幫手
Web 資源 use-relative-uri 不要使用絕對 Dataverse 端點 URL。 可維護性
Web 資源 use-cached-webresource 績效
Web 資源 use-client-context 使用用戶端內容。 升級整備小幫手
Web 資源 use-navigation-api 使用瀏覽 API 參數。 升級整備小幫手
Web 資源 use-offline 升級整備小幫手
Web 資源 do-not-make-parent-assumption 設計
Web 資源 use-org-setting 使用組織設定。 升級整備小幫手
Web 資源 use-global-context 升級整備小幫手
Web 資源 use-grid-api 使用網格 API。 升級整備小幫手
Web 資源 use-utility-dialogs 使用狀況
Web 資源 avoid-isActivityType 以新的 Xrm.Utility.gettableMetadata 來取代 Xrm.Utility.isActivityType 方法,但不要在功能區規則中使用。 升級整備小幫手
Web 資源 meta-avoid-silverlight Silverlight Web 資源使用方式已被取代。 升級整備小幫手
Web 資源 remove-debug-script 避免在非開發環境中包含偵錯指令碼。 使用狀況
Web 資源 use-strict-mode 盡可能使用 strict 模式。 使用狀況
Web 資源 use-strict-equality-operators 使用嚴格等號比較運算子。 使用狀況
Web 資源 avoid-eval 請勿使用「eval」函數或其同等函數。 重大 安全性
Web 資源 避免 - with 不要使用 「with」運算子。 績效
Web 資源 remove-alert 請勿使用「警示」函數或與其功能相同的函數。 使用狀況
Web 資源 remove-console 避免在主控台上使用方法。 使用狀況
Web 資源 avoid-ui-refreshribbon 避免在 onload 和 EnableRule 表單中使用 refreshRibbon。 重大 績效
Web 資源 use-getsecurityroleprivilegesinfo 避免使用 userSettings.securityRolePrivileges。 請改用 userSettings.getSecurityRolePrivilegesInfo。 績效
Web 資源 use-appsidepane-api 使用 Xrm.App.sidePanes.createPane,而不是 Xrm.Panels.loadPanel。 升級整備小幫手
Web 資源 web-sdl-no-cookies HTTP Cookie 是有固有風險和限制的舊版用戶端儲存機制。 請改用 Web 儲存區、IndexedDB 或其他新式方法。 安全性
Web 資源 web-sdl-no-document-domain 寫入文件。必須複查網域屬性,才能避免略過同源檢查。 嚴格禁止使用最上層網域,例如 azurewebsites.net。 安全性
Web 資源 web-sdl-no-document-write 對 document.write 或 document.writeln 的呼叫會在沒有進行任何清理的情況下直接操作 DOM,您應避免這樣做。 請改用 document.createElement() 或類似的方法。 安全性
Web 資源 web-sdl-no-html-method 直接 (例如,在 jQuery 架構中) 呼叫 method html() 通常會在沒有進行任何清理的情況下操作 DOM,您避免這樣做。 請改用 document.createElement() 或類似的方法。 安全性
Web 資源 web-sdl-no-inner-html 對 innerHTML 或 outerHTML 的指派會在沒有進行任何清理的情況下直接操作 DOM,您應避免這樣做。 請改用 document.createElement() 或類似的方法。 安全性
Web 資源 web-sdl-no-insecure-url 不安全的通訊協定 (例如 HTTP 或 FTP) 應取代為其加密對應項 (HTTPS、FTPS),以避免以純文字形式透過不受信任的網路傳送可能的敏感性資料。 安全性
Web 資源 web-sdl-no-msapp-exec-unsafe 對 MSApp.execUnsafeLocalFunction() 的呼叫會略過指令碼插入驗證,您應避免這樣做。 安全性
Web 資源 web-sdl-no-postmessage-star-origin 使用 postMessage 將資料傳送至其他視窗時,為了避免資料洩漏到信任邊界之外,請務必提供特定目標來源 (而非 *)。 安全性
Web 資源 web-sdl-no-winjs-html-unsafe 對 WinJS.Utilities.setInnerHTMLUnsafe() 和類似方法的呼叫不會執行任何輸入驗證,您應避免這樣做。 請改用 WinJS.Utilities.setInnerHTML()。 安全性
畫布應用程式 app-formula-issues-high 如需其他詳細資料,請參閱 Power Apps 公式參照。 重大 設計
畫布應用程式 應用程式公式問題中 如需其他詳細資料,請參閱 Power Apps 公式參照。 設計
畫布應用程式 應用程式公式問題低 如需其他詳細資料,請參閱 Power Apps 公式參照。 設計
畫布應用程式 應用程式使用延遲輸出文字輸入 在部分案例中使用延遲載入以改善效能。 績效
畫布應用程式 應用程式減少畫面控制項 限制應用程式控制項數目以改善效能。 績效
畫布應用程式 應用程式包含協助工具標籤 使用明確標籤以改善應用程式的協助工具。 網頁可及性
畫布應用程式 應用程式包括替代輸入 確保所有互動元素都可存取替代輸入。 網頁可及性
畫布應用程式 應用程式避免自動啟動 避免在應用程式中的播放程式上使用自動啟動。 網頁可及性

另請參閱

Dataverse 的最佳做法和指引
模型導向應用程式的最佳做法和指引
解決方案檢查工具的常見問題和解決方法