流程控制條件
在這個部分中:
關於流程控制條件
流程控制條件群組包含下列條件:
條件 | 說明 | 電腦觸發程序 | 使用者觸發程序 |
---|---|---|---|
If 條件 (以及 Else If 條件) | 可在 If Else 群組中建立條件的容器,讓您可在大部分的程式語言中找到標準的 If/Else If/Else 邏輯以啟用進階流程控制 | 是 | 是 |
計數器 | 此條件可控制在單一工作階段中執行或評估子動作和條件的次數。使用計數器欄位來選取需要的次數;其中可新增的最小值是 1,沒有最大值的限制。 | 是 | 是 |
If 條件
If 條件可建立一個邏輯容器,您可以在其中依序設定及評估一組條件。當符合其中一個條件時,系統會執行任何相關聯的條件和動作,並停止群組的評估。最後,您可以設定若不符合任何條件時要套用的預設動作。
該條件是使用運算式建立器所建立,其依預設會包含一個 If 條件和一個 Else 區段。您可以視需要新增選用的 Else If 條件。
請注意,在 Environment Manager 2020.3 版中,系統會針對使用 If/Else 群組的情況,簡化用來管理節點逾時行為的規則。目前,任何在 ‘If’ 或 ‘Else’ 分支中指定的延遲或自訂動作逾時值都會影響節點逾時值。
建議您務必先檢閱任何指定的延遲。
建立 If 條件
-
在「原則組態」導覽樹狀目錄中,建立新節點或選取要新增條件的現有節點。
您不能在可重複使用條件中建立 If 條件。
-
在「條件」功能區上,選取流程控制 > If 條件。
運算式建立器會在「If 條件」對話方塊中顯示。
在建立 If 和 Else if 容器時會使用運算式建立器,以設定評估使用者或端點時所依據的條件。
條件和可重複使用條件會新增至運算式建立器,並使用與任何節點中的條件相同的對話方塊和相同方式進行設定。您可以在運算式建立器中新增任何數量的條件,以及套用至任何其他節點條件的相同 AND 和 OR 規則。一般規則也適用於可套用哪些觸發程序條件。例如,您無法在「電腦啟動」觸發程序中建立使用者條件。
- 選取條件或可重複使用條件下拉式功能表,並選擇要新增至運算式建立器的必要條件。
- 視需要選取條件的失敗時停止子節點和已啟用核取方塊。至少要啟用一項條件。
- 重複步驟 3 至 4 以新增更多條件。
- 在運算式建立器中輸入說明。此文字用於命名組態中的第一個 (If) 條件,而且為必要項目。
- 輸入 If 群組說明。此文字用於命名組態中的條件群組。
-
按一下確定。
會在所選節點中建立 If Else 群組。群組會依運算式建立器中的設定包含 If 條件,並自動建立 Else 區段。
- 自適當的索引標籤選取 If 條件並且新增必要的動作與條件。可以在相同層級新增多個動作與條件或根據需要套疊至盡可能多的層級。
- 選取 Else 區段並且新增必要的動作與條件。可以在相同層級新增多個動作與條件或根據需要套疊至盡可能多的層級,或者可以將區段保留空白。如果 Else 區段保留空白,同時不符合任何 If 和 Else If 條件,則完成群組的處理時不會執行任何動作。
-
視需要為新增的動作和條件選取失敗時停止子節點和已啟用核取方塊。
無法剪下、複製、貼上 If 條件和 Else 區段。但是對於其中的條件與動作,可以如同正常處理動作和條件一樣剪下、複製、貼上,。
下面的組態顯示包含一個 If 條件以及一個 Else 區段的預設 If Else 群組:
在觸發程序被觸發後,會以如下方式評估群組:
- 符合 If 條件 - 執行相關動作,並且此群組處理的評估會停止。
- 不符合 If 條件 - 忽略動作並且執行 Else 動作。
- 動作與 Else 區段沒有關聯 - 不對整個群組執行動作。
如欲新增額外的評估層級,可以將進一步的條件新增至 If 條件以及 Else 區段:
在觸發程序被觸發後,會以如下方式評估群組:
- 符合 If 條件 - 評估子條件。如果符合此條件,會執行相關動作,而群組處理會停止。如果不符合子條件,將會評估 Else 區段。
- 符合 Else 子條件 - 執行相關動作,而處理會停止。
- 不符合 Else 子條件 - 不對整個群組執行任何動作。
建立 Else If 條件
Else If 條件是選用的 If 條件,可以新增在 If 條件和 Else 區段之間。Else If 條件的運作方式與 If 條件的運作方式完全相同,可以套用任何數目的條件與動作。
- 選取 If 或現有 Else If 條件。
- 在「條件」功能區中,選取流程控制 > Else If 條件。
- 按一下條件或可重複使用的條件下拉式清單,然後選取所需的條件。可視需要向運算式建立器加入任何所需數量的條件。
- 輸入說明。此文字是用於命名群組中的 Else If 運算式,必須填寫。
-
按一下確定。
Else If 條件已建立。
-
選取 If 條件並且從「動作」索引標籤新增必要的動作。可視需要新增多個動作。
可以在組態的相同層級中新增多個 Else If 條件。如需新增更多 Else If 條件,請重複上述流程。
Else If 條件的運作方式和 If 條件相同;如果符合條件,則執行相關動作,同時群組的評估會停止;如果不符合條件,則忽略動作並且評估下一個 Else If 條件或 Else 區段。
可以剪下、複製與貼上 Else If 條件以及其中的動作和條件。
下面的範例群組會在登入時評估使用者群組,並且在 C 磁碟機上建立相關的資料夾。
當「管理員」使用者群組中的使用者登入託管端點時,會發生以下評估:
-
使用者是否為使用者群組的成員?否。
不套用相關動作而是評估下一個條件。
-
使用者是否為「管理員」群組的成員?是。
執行與該條件相關的動作;在使用者的 C 磁碟機上建立名為 Administrators 的資料夾。由於已經符合條件,不對此群組進行進一步的評估。
當「開發人員」使用者群組中的使用者登入託管端點時,會發生以下評估:
-
使用者是否為使用者群組的成員?否。
不套用相關動作而是評估下一個條件。
-
使用者是否為「管理員」群組的成員?否。
不套用相關動作而是評估下一個條件。
-
使用者是否為「進階使用者」群組的成員?否。
不套用相關動作而是評估下一個條件。
-
使用者不是條件中指定的任何使用者群組的成員。
根據預設套用 Else 動作並且在使用者的 C 磁碟機上建立名為 Guests 的資料夾。
失敗時停止子節點和 If 條件
失敗時停止子節點選項可阻止失敗的動作繼續執行任何相依的子動作或條件。一般失敗時停止子節點行為適用於 If 條件內的動作和條件。但是,無法在群組層級套用失敗時停止子節點,也無法將其套用至以下任何項目:
- If 條件
- Else if 條件
- Else 區段
無法為這些條件和容器選取「失敗時停止子節點」核取方塊。
刪除 If 條件
下列刪除規則適用於 If 條件:
- 無法自群組刪除 If 條件
- 無法自群組刪除 Else 區段
- 可以刪除 Else If 條件,使用 Ctrl 或 Shift 選取時可以刪除多個 Else If 條件如果 If 條件或 Else 區段包括在選取項目中,則刪除操作將不起作用
計數器
計數器條件允許子動作及條件在單一工作階段內執行指定的次數。例如,可將動作設定為僅在工作階段內某一應用程式前三次使用時執行。超過三次後應用程式如果再次執行,則動作不會執行。
當單一觸發程序內存在多個計數器條件時,階層結構內最上層的條件會凌駕於任何子條件之上。
在下列範例中,所有動作均依第一個條件的定義只執行一次。而每個工作階段執行兩次的子條件則會被忽略。
「流程控制」取代了 8.0 控制台內的「執行一次」條件,而且可透過將計數器設定為 1 的方式進行複製。從 8.0 升級時,所有「執行一次」條件均會自動升級為「流程控制」條件。
建立計數器條件
- 在「原則組態」導覽窗格中,選取節點或建立新節點。
- 計數器條件可新增至所有觸發程序中,但下列情況除外,因為這些條件僅會在每個使用者工作階段或端點啟動時執行一次:
- 電腦啟動
- 電腦關機
- 使用者登入
- 使用者登出
- 在工作區域內,選取一個動作或條件。
- 在「條件」功能區中,選取流程控制 > 計數器,然後選取子條件與動作要執行的次數。可新增的最小值是 1,沒有最大值的限制。
- 按一下確定。