建立來源訊息類別

本指南說明如何為 Manufacturing Data Engine (MDE) 建立來源訊息類別。

來源訊息類別建模

應定義來源訊息類別,擷取共用相同結構的一組來源訊息。

設計來源訊息類別時,越具體明確,在 Whistle 指令碼中處理不同來源訊息之間的結構定義差異時,就越不需要條件陳述式。不過,建立更具體的來源訊息類別會導致需要更多剖析器。

因此,建立來源訊息類別模型時,一方面要讓來源訊息類別具有統一的訊息結構定義,另一方面則要考量您需要管理的剖析器數量,並在這兩者之間取得適當的平衡。

建立來源訊息類別

本節說明如何使用 API 呼叫或控制台介面,建立來源訊息類別。

REST

POST /configuration/v1/message-classes

{
  "name": "MESSAGE_CLASS_NAME",
  "MESSAGE_CLASS_NAME": "PRIORITY",
  "expression": "SPEL_EXPRESSION"
}

更改下列內容:

  • MESSAGE_CLASS_NAME:要建立的訊息類別名稱。
  • PRIORITY:訊息類別的優先順序。訊息類別的優先順序是介於 0 至 65535 之間的整數 (含首尾)。整數值越小,代表優先順序越高。
  • SPEL_EXPRESSION:定義訊息類別的 SpEL 運算式。例如 #root.event['value'] instanceof T(Number)

控制台

  1. 開啟 UI 的「MESSAGE CLASSES」(訊息類別) 區段,建立「Source Message Class」(來源訊息類別)。使用者介面的這個部分會顯示所有可用的訊息類別清單:

    訊息類別 - 列出訊息

    清單中會顯示每個訊息類別的下列參數:

    • 訊息類別名稱:訊息類別的名稱。不得重複。
    • 訊息類別運算式:與訊息類別相關聯的實際 SpEL 運算式。
    • 優先順序:訊息類別的優先順序 (數字越小代表優先順序越高)。
    • 已啟用:訊息類別的狀態。 系統不會擷取已停用的訊息類別。
    • 動作:提供存取「查看/編輯」功能和「啟用 / 停用」功能的脈絡按鈕,適用於所選訊息類別。
  2. 如要新增訊息類別,請按一下頂端的「新增訊息類別」按鈕。系統會顯示新的側邊選單,其中包含所有必須提供的訊息類別參數:

    訊息類別 - 建立新訊息類別

    • 訊息類別名稱:定義訊息類別的專屬字串。
    • 訊息類別運算式:指定義訊息類別的 SpEL 運算式。
    • 優先順序:定義與訊息類別相關聯的優先順序。訊息類別的優先順序是介於 0 至 65535 之間的整數 (含首尾)。整數值越小,代表優先順序越高。如果訊息驗證 2 個訊息類別的運算式,系統只會觸發優先順序值較低的訊息類別。
  3. 如要建立新的「訊息類別」,請在「訊息類別運算式」欄位中填入有效的 SpEL 運算式,並設定優先順序

  4. 按一下「建立」按鈕儲存變更。如果成功建立新的訊息類別,系統會顯示確認訊息。

測試來源訊息類別運算式

建立來源訊息類別前,您可以先實驗及測試來源訊息類別運算式。

REST

POST /configuration/v1/message-classes:test

{
  "expression": "SPEL_EXPRESSION",
  "testMessage": "TEST_MESSAGE"
}

更改下列內容:

  • SPEL_EXPRESSION:定義訊息類別的 SpEL 運算式。
  • TEST_MESSAGE:測試來源訊息物件。

傳回物件會告知您提供的運算式是否符合語法,以及是否會針對提供的訊息評估為 true 的 false。

控制台

使用者介面提供選項,可使用測試訊息測試新 Message 類別的 SpEL 運算式。

  1. 在「測試訊息」方塊中填入範例 JSON 訊息。
  2. 按一下「執行測試」執行驗證。測試結果為「相符」或「不相符」,並簡要說明相符條件。

訊息類別 - 測試訊息類別

根據所有有效訊息類別評估測試訊息

您可以評估訊息,判斷一組有效來源訊息類別的測試訊息會屬於哪個來源訊息類別。

REST

POST /configuration/v1/message-classes:evaluate

{
  "testMessage": "TEST_MESSAGE"
}

更改下列內容:

  • TEST_MESSAGE,其中包含測試來源訊息物件。

傳回的物件會告知您提供的訊息是否與任何來源訊息類別相符。