[本文章是發行前版本文件,且隨時可能變更。]
使用解決方案檢查器中的靜態分析功能來改善您的開發工作流程。 該工具支援機器人流程自動化 (RPA) 的最佳做法,並透過自動評估您的流程來確保最佳效能,從而滿足關鍵流程要求。 設計工具的流程檢查器區段提供靜態分析。 它強制執行關鍵準則並提供即時意見反應和早期程式碼檢查。 它直接整合到您的工作流程中,提高程式碼品質,並為更有效率、更有成效的開發體驗奠定基礎。
重要
- 這是預覽功能。
- 預覽功能不供生產時使用,而且可能功能受限。 這些功能應受補充使用規定規範,並且是在正式發行前先行推出,讓客戶可以搶先體驗並提供意見反應。
規則管理
規則透過 Power Platform 系統管理中心的解決方案檢查器定義和管理。 管理員可以:
- 啟用或停用規則。
- 設定嚴重性層級 (錯誤、警告、訊息)。
- 將規則套用至特定環境或環境群組 (僅限受控環境)。
系統管理中心中的設定
設定靜態分析規則:
- 請前往 Power Platform 系統管理中心。
- 選擇管理>環境繼續。
- 選擇編輯受控環境。
- 在解決方案檢查器強制執行區段,設定應為所選環境排除哪些規則。
注意
- 如果環境是具有定義設定的環境群組的一部分,則規則設定將被繼承並且不能單獨編輯。 如需進一步了解解決方案檢查器,請參閱解決方案檢查器和受控環境中的解決方案檢查器強制執行。
- Power Platform 管理員應為需要存取該功能的任何角色指派以下權限:
prvReadmsdyn_analysisoverride
(自訂名稱為「分析覆寫 (讀取)」)。
在入口網站中執行靜態分析
若要手動觸發靜態分析:
前往 Power Automate 入口網站中的解決方案頁面。
打開解決方案旁邊的操作功能表 (⋯)。
將滑鼠懸停在解決方案檢查器上。
選擇下列其中一個選項:
- 執行:啟動靜態分析。
- 查看結果:開啟最新的分析報告。
- 下載結果:匯出報告以供離線審查。
注意
對解決方案中包含的所有桌面流程執行靜態分析。 透過檢查結果中的物件名稱欄來確定哪個桌面流程觸發了特定的規則違規。 此欄顯示對應桌面流程的名稱。
設計工具中的靜態分析
靜態分析自動執行,持續檢查您的程式碼,無需人工干預。 當您在流程中新增、刪除或修改動作時,此功能將會啟動以評估變更並重新整理分析。 這個過程使得開發變得無縫且有效率。
每次分析都會產生一個百分比分數,顯示成功遵循的規則的比例。 分數越高,違規行為越少,程式碼品質越好。
每次流程發生變化時都會重新計算此分數,提供即時意見反應並促進良好的開發實踐。
如果違反規則,靜態分析報告會顯示清晰的摘要。 它列出了規則名稱以及流程中違反每個規則的動作或變數的數量。 選擇一條規則會醒目顯示相應的動作並提供詳細的錯誤解釋。 對於與變數相關的違規行為,系統會導覽至變數窗格,從而輕鬆進行修正。
每個違規行為都會顯示一個帶有詳細資訊的圖塊,包括錯誤的性質、建議的修復方法以及文件連結。 使用規則標題中的滑桿在相同違規行為的發生之間導覽。 該指南可協助開發人員快速有效地解決問題。
靜態分析規則
靜態分析規則是預先定義的準則,有助於確保您的流程安全、可維護且高效能。 每條規則都針對流程設計的特定方面,例如安全性、效能和可維護性,並提供可執行的意見反應以提高流程的品質。 以下是規則清單、規則描述和建議的修復。
不安全的密碼安全性
- 嚴重程度:警告
- 類型:安全
- 錯誤詳細資訊:流程中密碼管理不安全。
- 描述:此規則檢查桌面流程中密碼管理是否不安全,以確保密碼在執行過程中不會被洩露或誤處理。
- 建議的修復:確保使用桌面版 Power Automate 的密碼功能適當處理所有與密碼相關的輸入。 使用「直接加密文字輸入」透過基於機器的加密實現最大程度的安全性。 對於在不同機器上使用的流程,選擇「密碼輸入作為變數」,並將相應變數標記為敏感,以增強安全性。 此外,使用與 CyberArk 憑證整合的安全憑證管理功能,如「取得憑證」動作。
兩個子流程之間的遞迴
- 嚴重程度:警告
- 類型:執行
- 錯誤詳細資訊:在子流程之間偵測到遞歸叫用,可能會導致無限循環。
- 描述:此規則檢查兩個或多個子流程之間的遞歸叫用,確保流程不會進入無限循環。
- 建議的修復:刪除子流程之間的任何遞歸呼叫。
超出變數長度
- 嚴重程度:警告
- 類型:可維護性
- 錯誤詳細資訊:變數名稱超出25個字元的限制。
- 描述:此規則驗證流程中定義的每個變數的名稱是否超過指定的字元數。 預設限制為 25 個字元。
- 建議的修復:重新命名任何超過指定字元限制的變數,以確保其名稱短於 25 個字元。
輸入變數預設值
- 嚴重程度:警告
- 類型:可維護性
- 錯誤詳細資訊:輸入/輸出變數未使用預設值。
- 描述:此規則驗證輸入/輸出變數是否使用預設值,確保它們針對流程正確設定。
- 建議的修復:為流程中的所有輸入和輸出變數指派預設值。
輸入和輸出變數數量的閾值
- 嚴重程度:警告
- 類型:可維護性
- 錯誤詳細資訊:輸入/輸出變數總數超出 25 個變數的限制。
- 描述:此規則驗證流程中的輸入/輸出變數總數是否超過指定的閾值。 限制為 25 個變數。
- 建議的修復:確保流程中的輸入和輸出變數的數量不超過 25。
區塊錯誤時清空動作
- 預設嚴重性:警告
- 類型:可維護性
- 錯誤詳細資訊:「區塊錯誤時」動作為空,不處理錯誤。
- 描述:此規則檢查流程中的「區塊錯誤時」動作是否已正確設定以處理錯誤,確保錯誤按預期拋出和管理。
- 建議的修復:若要管理潛在錯誤,請在流程中設定區塊錯誤時動作。
嵌套 if 子句
- 嚴重程度:警告
- 類型:可維護性
- 錯誤詳細資訊:嵌套的 If 子句超過五層。
- 描述:此規則檢查是否存在超過五層的嵌套 if 陳述式,以確保流程保持可管理和可讀性。
- 建議的修復:重構流程以將嵌套的 if 陳述式減少到不超過五級。
不完整的 if 陳述式
- 嚴重程度:警告
- 類型:可維護性
- 錯誤詳細資訊:偵測到的 If 動作不完整、缺少內容或僅包含 Else 分支中的動作。
- 描述:此規則可偵測缺少內容或僅包含 Else 分支中的動作的 If 動作,確保條件陳述式得到有效執行。
- 建議的修復:遍歷流程並檢查每個「If」條件,以確保它在「If」、「Else if」和「Else」分支中都包含有意義的動作。
無限循環
- 嚴重程度:警告
- 類型:執行
- 錯誤詳細資訊:在流程中偵測到無限循環,可能導致其無限期執行。
- 描述:此規則檢查流程中是否存在任何無限循環,有助於識別和防止流程可能無限執行的情況。
- 建議的修復:確保每個循環都有明確定義且可實現的終止條件。 此條件可以基於計數器、特定值或任務的完成。 如果循環執行時間超過預期,則新增檢查或故障安全條件來中斷循環。 例如,設定最大迭代次數或包含逾時。
濫用等待動作
- 嚴重程度:警告
- 類型:執行
- 錯誤詳細資訊:偵測到等待動作的誤用,超過 10 個等待動作會導致潛在的瓶頸。
- 描述:此規則檢查流程是否包含過多的等待動作 (超過 10 個),以幫助識別和盡量減少因長時間延遲造成的潛在瓶頸。
- 建議的修復:檢查流程以識別所有等待動作,並檢查它們是否對於流程的邏輯至關重要。 消除不必要的等待或盡可能合併它們。
大量等待時間
- 嚴重程度:警告
- 類型:執行
- 錯誤的詳細資訊:偵測到過長的等待時間,超過了硬編碼等待動作的 600 秒限制。
- 描述:此規則檢查流程中的硬編碼等待動作是否超過指定的時間,限制設定為 600 秒。
- 建議的修復:檢查流程以查閱超過 600 秒限制的等待動作。 檢查這些長時間的等待是否有必要,並將其持續時間調整為流程正常工作所需的最短時間。 如果需要長時間等待,請將其分成較短的間隔,並在它們之間新增檢查或條件。 盡可能用事件驅動的觸發程序來取代長時間等待的動作。
已知限制
- 僅在受控環境中可用。
- 規則自訂僅限於啟用或停用規則以及設定嚴重性。
已知問題
- 查看規則違反詳細資訊後刪除複製的動作可能會觸發未處理的錯誤。
- 在以下動作中使用非敏感密碼變數會導致規則評估期間靜態分析失敗。
- 顯示輸入對話方塊
- 顯示選取資料夾對話方塊
- 顯示自訂表單