流量檢查器

使用解決方案檢查器中的靜態分析功能來改善您的開發工作流程。 該工具支援機器人流程自動化 (RPA) 的最佳做法,並透過自動評估您的流程來確保最佳效能,從而滿足關鍵流程要求。 設計工具的流程檢查器區段提供靜態分析。 它強制執行關鍵準則並提供即時意見反應和早期程式碼檢查。 它直接整合到您的工作流程中,提高程式碼品質,並為更有效率、更有成效的開發體驗奠定基礎。

規則管理

透過 Power Platform 管理中心的解決方案檢查器,以及 Power Automate 入口網站的流程檢查器設定來定義並管理規則。

擁有適當權限的管理員與使用者可:

  • 啟用或停用規則。
  • 設定嚴重性層級 (錯誤、警告、訊息)。
  • 為支援參數的規則設定自訂值,例如閾值與限制(僅限 Power Automate 入口網站)。
  • 對特定環境或環境群組(僅限 Managed Environments、Power Platform 管理中心)套用規則。

流程檢查器的設定是在環境層級執行,並影響所選環境中所有桌面流程。

在 Power Platform 管理中心設定的解決方案檢查器強制設定,優先於 Power Automate 入口網站的流程檢查器設定。 你無法修改 Power Automate 入口中透過解決方案檢查器強制執行所限制的規則。

系統管理中心中的設定

設定靜態分析規則:

  1. 請前往 Power Platform 系統管理中心。
  2. 選擇管理>環境繼續。
  3. 選擇編輯受控環境。
  4. 在解決方案檢查器強制執行區段,設定應為所選環境排除哪些規則。

Power Automate 入口網站中的設定

若要為環境設定 Flow 檢查器規則:

  1. 請前往 Power Automate 入口網站的桌面流程頁面。

  2. 選擇 流程檢查器。

  3. 在 Flow 檢查器設定 窗格中,設定所需的規則。 對於每條規則,你可以:

    • 啟用或停用該規則。
    • 選擇嚴重程度。
    • 為支援參數的規則指定自訂值。
  4. 選取 [儲存]。

Power Automate 入口網站中靜態分析規則設定的截圖。

設定變更會在環境層級套用,並影響所選環境中的所有桌面流程。 對於已經在設計器中開啟的桌面流程,請重新開啟流程以進行設定變更。

附註

  • Power Platform 管理中心的解決方案檢查器強制設定優先於 Power Automate 入口網站的流程檢查器設定。
  • 如果環境是具有定義設定的環境群組的一部分,則規則設定將被繼承並且不能單獨編輯。 如需進一步了解解決方案檢查器,請參閱解決方案檢查器和受控環境中的解決方案檢查器強制執行。
  • 只有支援參數化的規則才會顯示可配置的值。 根據規則不同,設定值可代表分析時使用的最小或最大閾值。
  • Power Platform 管理員應為需要存取此功能的角色分配適當的分析覆寫權限:
    • prvReadmsdyn_analysisoverride (Analysis Override - Read) 可用來檢視目前的設定。
    • prvWritemsdyn_analysisoverride (Analysis Override - Write) 可用來修改規則設定,包括嚴重性層級、參數值和規則啟用狀態。
    • prvCreatemsdyn_analysisoverride (Analysis Override - Create) 可用來建立新的規則覆寫。

在入口網站中執行靜態分析

若要手動觸發靜態分析:

  1. 前往 Power Automate 入口網站中的解決方案頁面。

  2. 打開解決方案旁邊的操作功能表 (⋯)。

  3. 將滑鼠懸停在解決方案檢查器上。

  4. 選擇下列其中一個選項:

    • 執行:啟動靜態分析。
    • 查看結果:開啟最新的分析報告。
    • 下載結果:匯出報告以供離線審查。

附註

對解決方案中包含的所有桌面流程執行靜態分析。 透過檢查結果中的物件名稱欄來確定哪個桌面流程觸發了特定的規則違規。 此欄顯示對應桌面流程的名稱。

Power Automate 入口網站中解決方案的靜態分析結果的螢幕擷取畫面。

設計工具中的靜態分析

靜態分析自動執行,持續檢查您的程式碼,無需人工干預。 當您在流程中新增、刪除或修改動作時,此功能將會啟動以評估變更並重新整理分析。 這個過程使得開發變得無縫且有效率。 在設計器的右側,您會看到一個專屬的流程檢查器按鈕。 按鈕上的數字顯示桌面流程中的違規總數。 選取按鈕開啟流程檢查器窗格,並查看有關違反的特定規則的詳細見解。

電腦版 Power Automate 設計工具中開啟靜態分析窗格的按鈕的螢幕擷取畫面。

每次分析都會產生一個百分比分數,顯示成功遵循的規則的比例。 分數越高,違規行為越少,程式碼品質越好。

每次流程發生變化時都會重新計算此分數,提供即時意見反應並促進良好的開發實踐。

螢幕擷取畫面顯示了靜態分析分數和任何違反規則的摘要。

如果違反規則,靜態分析報告會顯示清晰的摘要。 它列出了規則名稱以及流程中違反每個規則的動作或變數的數量。 選擇一條規則會醒目顯示相應的動作並提供詳細的錯誤解釋。 對於與變數相關的違規行為,系統會導覽至變數窗格,從而輕鬆進行修正。 流程檢查器窗格包括搜尋功能,可讓您按子流程進行篩選,以便您可以快速找到特定問題。

每個違規行為都會顯示一個帶有詳細資訊的圖塊,包括錯誤的性質、建議的修復方法以及文件連結。 使用規則標頭中的滑桿,在相同違規項目的各次出現之間切換。 該指南可協助開發人員快速有效地解決問題。 流程檢查器的錯誤違規會顯示內嵌指標,並提供含有更多詳細資料的快顯視窗。 警告與錯誤一樣,也會以內嵌方式顯示在設計工作區中。 設計工具會在子流程索引標籤上顯示警告、錯誤等診斷狀態,並提供一個按鈕,讓您前往需要注意的元件。

顯示靜態分析規則詳細資訊的螢幕擷取畫面。

圖例

  1. 特定規則違規事件的發生次數
  2. 瀏覽至違反規則的動作
  3. 文件的連結

靜態分析規則

靜態分析規則是預先定義的準則,有助於確保您的流程安全、可維護且高效能。 每條規則都針對流程設計的特定方面,例如安全性、效能和可維護性,並提供可執行的意見反應以提高流程的品質。 以下是規則清單、規則描述和建議的修復。

不安全的密碼安全性

  • 嚴重程度:警告
  • 類型:安全
  • 錯誤詳細資訊:流程中密碼管理不安全。
  • 描述:此規則檢查桌面流程中密碼管理是否不安全,以確保密碼在執行過程中不會被洩露或誤處理。
  • 建議的修復:確保使用桌面版 Power Automate 的密碼功能適當處理所有與密碼相關的輸入。 使用「直接加密文字輸入」透過基於機器的加密實現最大程度的安全性。 對於在不同機器上使用的流程,選擇「密碼輸入作為變數」,並將相應變數標記為敏感,以增強安全性。 此外,使用與 CyberArk 憑證整合的安全憑證管理功能,如「取得憑證」動作。

兩個子流程之間的遞迴

  • 嚴重程度:警告
  • 類型:設計
  • 錯誤詳細資料:偵測到子流程之間有遞迴呼叫,可能導致無限迴圈。
  • 描述:此規則檢查兩個或多個子流程之間的遞歸叫用,確保流程不會進入無限循環。
  • 建議的修復:刪除子流程之間的任何遞歸呼叫。

變數長度超出限制

  • 嚴重程度:警告
  • 類型:可維護性
  • 錯誤詳細資訊:變數名稱超出40個字元的限制。
  • 描述:此規則驗證流程中定義的每個變數的名稱是否超過指定的字元數。 預設限制為 40 個字元。
  • 建議的修復:重新命名任何超過指定字元限制的變數,以確保其名稱短於 40 個字元。

輸入變數預設值

  • 嚴重程度:警告
  • 類型:可維護性
  • 錯誤詳細資訊:輸入/輸出變數未使用預設值。
  • 描述:此規則驗證輸入/輸出變數是否使用預設值,確保它們針對流程正確設定。
  • 建議的修復:為流程中的所有輸入和輸出變數指派預設值。

輸入和輸出變數數量的閾值

  • 嚴重程度:警告
  • 類型:可維護性
  • 錯誤詳細資訊:輸入/輸出變數總數超出 25 個變數的限制。
  • 描述:此規則驗證流程中的輸入/輸出變數總數是否超過指定的閾值。 限制為 25 個變數。
  • 建議的修復:確保流程中的輸入和輸出變數的數量不超過 25。

區塊發生錯誤時的動作為空白

  • 預設嚴重性:警告
  • 類型:設計
  • 錯誤詳細資訊:「區塊錯誤時」動作為空,不處理錯誤。
  • 描述:此規則檢查流程中的「區塊錯誤時」動作是否已正確設定以處理錯誤,確保錯誤按預期拋出和管理。
  • 建議的修復:若要管理潛在錯誤,請在流程中設定區塊錯誤時動作。

巢狀 If 子句

  • 嚴重程度:警告
  • 類型:可維護性
  • 錯誤詳細資訊:嵌套的 If 子句超過五層。
  • 描述:此規則檢查是否存在超過五層的嵌套 if 陳述式,以確保流程保持可管理和可讀性。
  • 建議的修復:重構流程以將嵌套的 if 陳述式減少到不超過五級。

不完整的 If

  • 嚴重程度:警告
  • 類型:設計
  • 錯誤詳細資訊:偵測到的 If 動作不完整、缺少內容或僅包含 Else 分支中的動作。
  • 描述:此規則可偵測缺少內容或僅包含 Else 分支中的動作的 If 動作,確保條件陳述式得到有效執行。
  • 建議修正方式:逐一檢查流程中的每個「If」條件,確保「If」、「Else if」和「Else」分支都包含有意義的動作。

無限循環

  • 嚴重程度:警告
  • 類型:設計
  • 錯誤詳細資訊:在流程中偵測到無限循環,可能導致其無限期執行。
  • 描述:此規則檢查流程中是否存在任何無限循環,有助於識別和防止流程可能無限執行的情況。
  • 建議的修復:確保每個循環都有明確定義且可實現的終止條件。 此條件可以基於計數器、特定值或任務的完成。 如果循環執行時間超過預期,則新增檢查或故障安全條件來中斷循環。 例如,設定最大迭代次數或加入逾時限制。

濫用等待動作

  • 嚴重程度:警告
  • 類型:執行
  • 錯誤詳細資訊:偵測到等待動作的誤用,超過 10 個等待動作會導致潛在的瓶頸。
  • 描述:此規則檢查流程是否包含過多的等待動作 (超過 10 個),以幫助識別和盡量減少因長時間延遲造成的潛在瓶頸。
  • 建議的修復:檢查流程以識別所有等待動作,並檢查它們是否對於流程的邏輯至關重要。 消除不必要的等待或盡可能合併它們。

大量等待時間

  • 嚴重程度:警告
  • 類型:執行
  • 錯誤的詳細資訊:偵測到過長的等待時間,超過了硬編碼等待動作的 600 秒限制。
  • 描述:此規則檢查流程中的硬編碼等待動作是否超過指定的時間,限制設定為 600 秒。
  • 建議的修復:檢查流程以查閱超過 600 秒限制的等待動作。 檢查這些長時間的等待是否有必要,並將其持續時間調整為流程正常工作所需的最短時間。 如果需要長時間等待,請將其分成較短的間隔,並在它們之間新增檢查或條件。 盡可能用事件驅動的觸發程序來取代長時間等待的動作。

未達成的動作

  • 嚴重程度:警告
  • 類型:可維護性
  • 錯誤詳細資訊:流程中的一個或多個動作無法存取,在任何情況下都不會執行。
  • 描述:此規則檢查流程中邏輯上無法實現的動作。 無法執行的動作可能是由於錯誤的分支、錯誤的條件或斷開的段落造成的,並且可能表明流程的邏輯或結構有缺陷。
  • 建議的修復:檢查流程以尋找未連接到執行路徑的動作。 確保每個動作都可以透過有效的邏輯分支或循環到達。 移除或移動無法存取的操作,以保持流程簡潔且有效率。

不需要副流量

  • 嚴重程度:警告
  • 類型:可維護性
  • 錯誤細節:該規則偵測到一個子流,該子流要麼不包含任何動作,要麼只包含被停用的動作,或包含過少的動作以支持分離。 此類子流可能對流程執行沒有實質貢獻,反而會降低清晰度。
  • 說明:此規則檢查子流是否空或過於微小——通常包含少於5個動作。 雖然子流有助於模組化與重複使用,但缺乏有意義內容或抽象的部分可能表示開發不完整、不必要的碎片化或配置錯誤。 這些模式可能導致混淆並阻礙維護性。
  • 建議的解決方法:檢視已識別的子流,判斷其是否有明確且有價值的用途。 如果不是這樣,可以考慮將其移除,或將其併入相關的邏輯區塊。 如果子流程是要供日後使用,請新增預留位置動作以釐清其用途,避免遭到誤解。

已知限制

  • 僅在受控環境中可用。
  • 規則自訂僅限於啟用或停用規則以及設定嚴重性。

已知問題

  • 檢視規則違反詳細資料後,刪除已複製的動作可能會觸發未處理的錯誤。
  • 在以下動作中使用非敏感密碼變數會導致規則評估期間靜態分析失敗。
    • 顯示輸入對話方塊
    • 顯示選取資料夾對話方塊
    • 顯示自訂表單