Next Topic

Previous Topic

Book Contents

IF-ELSE-STEP 服務台指令

以下是關於服務台程序中使用的 IF-ELSESTEP 語句的摘要。

IF-ELSE 語句

檢查變數

評估給定變數。

測試重複的請求

比較入站電子郵件,以確定它是否是現有工單的重複項。

測試工單的「自訂」欄位

將工單中的自訂欄位與指定的值或變數進行比較。

測試新工單的「內容」值

將工單中欄位的值與指定的值或變數進行比較。

測試回條的「內容」值

將入站電子郵件中欄位的值與指定的值或變數進行比較。

STEP 語句

新增注釋

向正由程序處理的工單新增注釋。

指定工單自訂欄位

為工單中的自訂欄位分配值。

指定工單屬性

為工單中的欄位分配值。

刪除工單

刪除正由程序處理的工單。

執行共用子程序

選擇其他程序。

執行 Shell 指令

在 KServer 上執行 Shell 指令

目前工單事務失敗

對工單所做的變更將儲存到資料庫中。

獲取變數

獲得輸入的值或儲存在 KServer 上的檔案的值。

連結至另一個工單

將其他工單與正處理的工單相關聯。

暫停階段目標

暫停根據階段目標計數所耗費時間的作業。

暫停工單目標

暫停根據工單目標計數所耗費時間的作業。

恢復階段目標

恢復根據階段目標計數所耗費時間的作業。

恢復工單目標

恢復根據工單目標計數所耗費時間的作業。

計劃程序

為指定電腦執行選定的代理程序

發送電子郵件

發送電子郵件給一個或多個收件人。

發送訊息

向使用者的收件箱發送訊息。

發送訊息給池使用者

向池中包括的每個使用者的收件箱發送訊息。

設定升級時間

設定升級工單的時間。

設定目標時間

設定工單或階段計劃完成的時間。

設定工單目標時間

設定整個工單的到期日期。

寫入程序日誌項目

向「系統」>「應用程式記錄」寫入項目。

使用之處

這些 IF-ELSESTEP 語句由以下類型的服務台程序使用。

IF-ELSE 語句

進入或退出階段

工單變更

工單請求去除重複

工單請求映射

工單目標

工單升級

子程序

檢查變數

測試重複的請求

 

 

 

 

 

 

測試工單的「自訂」欄位

 

測試新工單的「內容」值

 

測試回條的「內容」值

 

 

 

 

 

 

STEP 語句

進入或退出階段

工單變更

工單請求去除重複

工單請求映射

工單目標

工單升級

子程序

新增注釋

 

指定工單自訂欄位

 

指定工單屬性

刪除工單

 

執行共用子程序

執行 Shell 指令

目前工單事務失敗

 

 

獲取變數

連結至另一個工單

 

暫停階段目標

 

 

暫停工單目標

 

 

恢復階段目標

 

 

 

恢復工單目標

 

 

計劃程序

發送電子郵件

發送訊息

發送訊息給池使用者

 

設定升級時間

 

設定目標時間

 

設定工單目標時間

 

 

寫入程序日誌項目

IF-ELSE 詳細資訊

檢查變數

#var_name# 格式輸入變數的名稱。該名稱可以是之前在目前程序或父程序中定義的全域變數或程序變數。如果為全域變數,則全域變數的值必須與正在執行的程序相容。請參閱「程序變數」和「使用變數」,以獲得有關變數的詳細資訊。

輸入字串比較運算子。這些相同字串比較選項適用於所有 IF 指令。請參閱「字串比較」和「日期/時間比較」。

然後輸入第二個值與第一個值進行比較。除值外,您還可以輸入格式為 [$objectname$] 的對象變數或格式為 [=var_name=] 的全域變數或程序變數。請參閱「訊息範本」,以獲得對象變數清單。

如果測試結果為 True,則會執行 IF 步驟。如果測試結果為 False,則會執行 ELSE 步驟。

測試重複的請求

此 IF 指令僅適用於工單請求去除重複程序中。

測試工單請求,以查看它是否為任意現有工單的重複項。防止在指定時間限制內,為工單請求建立多個工單。

服務台收到建立工單的請求後,系統會建立工單請求。工單請求基於接收電子郵件或系統事件,例如警報條件。接收電子郵件設定和連結的服務台程序確定工單請求如何處理到工單中、使用哪些服務台建立工單以及是否取消工單請求。

如果符合以下一個或多個條件,則測試結果為 True。

  • 匹配提交者姓名
  • 匹配提交者電子郵件地址
  • 匹配請求主題
  • 匹配來源類型
    • 0 – 計數器
    • 1 - 服務
    • 2 - 進程
    • 3 - SNMP
    • 4 - 提示
    • 5 - 系統檢查
    • 6 - KES
    • 7 - 日誌剖析器
  • 匹配第一個偏好設定欄位。請參考事件日誌提示的事件 ID 和值 ID。
  • 匹配第二個參考欄位。請參考提示日誌類型,即系統檢查或事件日誌提示。事件日誌提示的類別為「 6 = 自訂」日誌類型提示。
    • 1 = Web 伺服器檢查
    • 2 = dns 檢查
    • 4 = 連接埠檢查
    • 5 = ping
    • 6 = 自訂
  • 匹配電腦
  • 匹配電腦組

根據工單的建立日期,限制對最近 <N> 個時段的匹配。

測試工單的「自訂」欄位

以格式 custom_field 輸入自訂欄位的名稱,不包含任何形式的括號字元。

輸入字串比較運算子。這些相同字串比較選項適用於所有 IF 指令。請參閱「字串比較」和「日期/時間比較」。

然後輸入第二個值與第一個值進行比較。除值外,您還可以輸入格式為 [$objectname$] 的對象變數或格式為 [=var_name=] 的全域變數或程序變數。請參閱「訊息範本」,以獲得對象變數清單。請參閱「程序變數」和「使用變數」,以獲得有關變數的詳細資訊。

如果測試結果為 True,則會執行 IF 步驟。如果測試結果為 False,則會執行 ELSE 步驟。

測試新工單的「內容」值

從下拉清單中選擇格式為 objectname 的工單內容,不含任何形式的括號字元。

輸入字串比較運算子。這些相同字串比較選項適用於所有 IF 指令。請參閱「字串比較」和「日期/時間比較」。

然後輸入第二個值與第一個值進行比較。除值外,您還可以輸入格式為 [$objectname$] 的對象變數或格式為 [=var_name=] 的全域變數或程序變數。請參閱「訊息範本」,以獲得對象變數清單。請參閱「程序變數」和「使用變數」,以獲得有關變數的詳細資訊。

如果檢查結果為 True,則會執行 IF 步驟。如果檢查結果為 False,則會執行 ELSE 步驟。

測試回條的「內容」值

此 IF 指令僅適用於工單請求映射程序中。

從下拉清單中選擇格式為 objectname 的工單內容,不含任何形式的括號字元。

輸入字串比較運算子。這些相同字串比較選項適用於所有 IF 指令。請參閱「字串比較」和「日期/時間比較」。

然後輸入第二個值與第一個值進行比較。除值外,您還可以輸入格式為 [$objectname$] 的對象變數或格式為 [=var_name=] 的全域變數或程序變數。請參閱「訊息範本」,以獲得對象變數清單。請參閱「程序變數」和「使用變數」,以獲得有關變數的詳細資訊。

如果測試結果為 True,則會執行 IF 步驟。如果測試結果為 False,則會執行 ELSE 步驟。

SourceType、SourceTag 和 SourceValue 內容

系統事件觸發工單建立並且啟動服務台整合時,系統將填寫SourceTypeSourceTagSourceValue 內容。例如,不同類型的警報條件可以觸發工單建立作業。下表顯示了如何通過各種警報條件填寫 SourceType 和三個 SourceTag 欄位。SourceValue欄 (未顯示在此表格中) 包含與這些 SourceTag 欄位對應的特定值。

SourceType

SourceTag1

SourceTag2

SourceTag3

事件日誌

agentguid

alertid

EventId

計數器

agentguid

monitorobjectid

monitorvalue

代理離線

agentguid

alertid

 

服務

agentguid

monitorobjectid

monitorvalue

新建路徑

agentguid

alertid

 

代理認證無效

agentguid

alertid

 

提示

agentguid

monitorobjectid

 

Win AU 變更

agentguid

alertid

 

RAM 變更

agentguid

alertid

 

磁碟機變更

agentguid

alertid

 

代理在線

agentguid

alertid

 

PCI 卡變更

agentguid

alertid

 

系統檢查

agentguid

alertid

 

字串比較

在 IF 指令中執行的字串比較不區分大小寫。可用測試如下:

  • 存在:如果變數存在變數具有非空值,則為 True。
  • 不存在:如果變數存在變數具有空值,則為 True。
  • 等於:如果變數的值等於測試值,則為 True。
  • 不等於:如果變數的值等於測試值,則為 True。
  • 大於:如果變數的值大於測試值,則為 True。
  • 大於或等於:如果變數的值大於或等於測試值,則為 True。
  • 小於:如果變數的值小於測試值,則為 True。
  • 小於或等於:如果變數的值小於或等於測試值,則為 True。
  • 包含:如果測試值是變數的子字串 (值必須為數字),則為 True。
  • 不包含:如果測試值不是變數的子字串 (值必須為數字),則為 True。

對於測試等於不等於大於大於等於小於小於等於,比較的變數可能是字串、數字、格式為 yyyy/mm/ddyyyy/mm/dd hh:mmyyyy/mm/dd hh:mm:ss 的日期或包含圓點的版本號 (例如1.2.34,5,6,7)。如果指定了日期格式,則可使用 + dd:hh:mm:ss- dd:hh:mm:ss.進行偏移, 僅需要 dd 天; hh 小時、mm 分鐘和 ss 秒可被忽略,並在空缺時假定為零。

日期/時間比較

您可以使用 IF 語句相對於目前時間測試某時間是否為 True。相對時間以 [-][d.]hh:mm:ss 形式指定,其中 d 為天數,hh 為小時數,mm 為分鐘數,ss 為秒數。在前面指定一個 可使系統計算過去的時間。因此,-1:00:00 表示一個小時前,-3.12:45:08 表示 3 天 12 小時 45 分 8 秒前。請注意,天數後面緊跟一個句號而非冒號。 指定 d - 是可選的。這些時間不計入與策略關聯的時數範圍。例如,可以測試 IF 語句以查看工單的建立日期/時間是否早於 3 天前。第一個值為 CreateDateTime,運算子為小於,比較值為 -3.00:00:00

STEP 詳細資訊

新增注釋

向正由程序處理的工單新增注釋。選擇是否隱藏注釋。

選擇注釋範本而非輸入注釋。

注釋文字可以包括格式為 [$objectname$] 的對象變數或格式為 [=var_name=] 的全域變數或程序變數。請參閱「訊息範本」,以獲得對象變數清單。請參閱「程序變數」和「使用變數」,以獲得有關變數的詳細資訊。

指定工單自訂欄位

為工單中的自訂欄位分配值。以格式 custom_field 輸入自訂欄位的名稱,不包含任何形式的括號字元。然後輸入與此自訂欄位允許的可能值範圍匹配的值。可能值的範圍使用「服務台」>「定義」>「內容」>「自訂欄位」標籤指定。

您還可以輸入格式為 [$objectname$] 的對象變數或格式為 [=var_name=] 的全域變數或程序變數。請參閱「訊息範本」,以獲得對象變數清單。請參閱「程序變數」和「使用變數」,以獲得有關變數的詳細資訊。

指定工單屬性

為工單的內容指定值。可以分配的內容集顯示在下拉清單中。提供的值可以是格式為 [=var_name=] 的全域變數名稱或程序變數名稱。請參閱「程序變數」和「使用變數」,以獲得有關變數的詳細資訊。

刪除工單

刪除正由程序處理的工單。

執行共用子程序

導致執行子程序。使用此功能將多個 IF-ELSE 子句結合到一塊。您可以將程序的執行嵌套為 10 個級別。

執行 Shell 指令

在 KServer 上執行 Shell 指令。從 \windows\system32 目錄執行。例如,Shell 指令 dir c:\temp 將從 \windows\systems32 目錄執行目錄指令,但為c:\temp 顯示目錄。執行批處理檔案時,使用該批處理檔案頂部的 cd 指令可以變更目錄,並從該目錄執行所有後續指令。系統提供了單獨欄位將指令行輸出轉向輸出檔案或變數。如果存在輸出檔案,其將被覆蓋。

目前工單事務失敗

如果包括在程序中,則取消對工單的所有變更。取消儲存工單前手動對工單所做的變更,以及執行該步驟前在正處理的程序中所做的工單變更。不取消在執行此步驟前處理的發送電子郵件發送訊息步驟。在執行此步驟後取消程序中的所有步驟

獲取變數

定義新的程序變數,然後為其分配值。指定不含括號的變數名稱,例如:var_name

在後續步驟中,您可以通過在變數名稱周圍新增 [==],在文字欄位中參考此變數,例如:[=var_name=]。請參閱「程序變數」和「使用變數」,以獲得有關變數的詳細資訊。

  • 常數值 - 為變數輸入值。

連結至另一個工單

將正在處理的工單連結到指定的工單 ID 或知識庫文章 ID。

暫停階段目標

暫停根據階段目標計數所耗費時間的作業。目標程序使用「服務台」>「定義」>「處理」>「階段」>「程序」標籤連結到階段

暫停工單目標

暫停根據工單目標計數所耗費時間的作業。工單目標確定整個工單的到期日期。可以使用「定義」>「內容」>「一般」>「程序」標籤將目標連結到服務台。

恢復階段目標

恢復根據階段目標計數所耗費時間的作業。目標程序使用「服務台」>「定義」>「處理」>「階段」>「程序」標籤連結到階段

恢復工單目標

恢復根據工單目標計數所耗費時間的作業。工單目標確定整個工單的到期日期。可以使用「定義」>「內容」>「一般」>「程序」標籤將目標連結到服務台。

計劃程序

為指定電腦執行選定的代理程序。使用 [$FullMachineName$] 指定電腦名稱和電腦組,其中假定電腦與工單關聯。否則,您可以為電腦名稱輸入程序變數,或指定固定的電腦組名稱值。

發送電子郵件

發送電子郵件給一個或多個收件人。指定電子郵件的主題和正文文字。

您可以在「發送電子郵件」指令的「收件人」、「發件人」、「主題」和「正文」欄位中包括對象變數、全域變數和程序變數。在「發送電子郵件」指令中,您可以參考連結到的訊息範本中的對象變數、目標變數和程序變數。請參閱「訊息範本」,以獲得對象變數清單。請參閱「程序變數」和「使用變數」,以獲得有關變數的詳細資訊。

還可以輸入使用者池的名稱。名稱使用逗號或分號隔開。以下優先順序確定了收件人的電子郵件地址。檢查「發送電子郵件」步驟中的「收件人」欄位以查看它是否:

  • 作為使用者名稱存在。如果找到該名稱,並且該使用者存在電子郵件地址,則將使用該電子郵件地址。
  • 符合 SMTP 電子郵件地址格式。例如,user@domain.com。如果名稱與該模式匹配,則該名稱將用於電子郵件地址。如果服務台池名稱符合電子郵件地址,則系統會向該電子郵件地址而不是池中的使用者發送電子郵件。
  • 系統將以服務台池的形式查找該名稱。電子郵件會被發送到與池中每個使用者關聯的電子郵件地址。

發送訊息

向使用者的收件箱發送訊息。

您僅可以在「發送電子郵件」對話方塊的「收件人」欄位中輸入一個使用者名稱。使用「發送訊息給池使用者」向多個使用者發送訊息。

您可以在「發送訊息」指令的「收件人」、「發件人」、「主題」和「正文」欄位中包括對象變數、全域變數和程序變數。在「發送訊息」指令中,您可以參考連結到的訊息範本中的對象變數、目標變數和程序變數。請參閱「訊息範本」,以獲得對象變數清單。請參閱「程序變數」和「使用變數」,以獲得有關變數的詳細資訊。

發送訊息給池使用者

向池中包括的每個使用者的收件箱發送訊息。

您可以在「發送訊息給池使用者」指令的「主題」和「正文」欄位中包括對象變數、全域變數和程序變數。在「發送訊息給池使用者」指令中,您可以參考連結到的訊息範本中的對象變數、目標變數和程序變數。請參閱「訊息範本」,以獲得對象變數清單。請參閱「程序變數」和「使用變數」,以獲得有關變數的詳細資訊。

設定升級時間

設定升級工單的時間。可以使用「服務台」>「定義」>「處理」>「階段」>「程序」標籤覆蓋為階段設定的預設升級時間。

設定目標時間

設定計劃完成階段目標的時間。可以使用「服務台」>「定義」>「處理」>「階段」>「程序」標籤覆蓋為階段設定的預設目標時間。

設定工單目標時間

設定計劃完成工單目標的時間。工單目標確定整個工單的到期日期。可以使用「定義」>「內容」>「一般」>「程序」標籤覆蓋為工單設定的預設目標時間。

寫入程序日誌項目

向「系統」>「應用程式記錄」寫入提供的字串。