创建源消息类
本指南介绍了如何为 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 之间的整数(含 0 和 65535)。数字越小,优先级越高。SPEL_EXPRESSION:用于定义消息类的 SpEL 表达式。例如#root.event['value'] instanceof T(Number)
控制台
打开界面中的 'MESSAGE CLASSES' 部分,以创建源消息类。界面中的相应部分会显示所有可用的消息类的列表:

对于每个消息类,列表中都会显示以下参数:
- Message Class Name:消息类的名称。必须是唯一的。
- Message Class Expression:与 Message Class 关联的实际 SpEL 表达式。
- 优先级:消息类的优先级(数字越小,优先级越高)。
- 已启用:消息类的状态。 已停用的消息类不会纳入提取范围。
- 操作:一个上下文按钮,用于访问所选消息类的查看/修改功能和启用 / 停用功能。
如需添加新的消息类,请点击顶部的“添加新消息类”按钮。系统会显示一个新侧边菜单,其中包含要提供的所有必需的消息类参数:

- 消息类名称:定义消息类的唯一字符串。
- 消息类表达式:指用于定义消息类的 SpEL 表达式。
- 优先级:定义与消息类相关联的优先级。消息类的优先级是 0 到 65535(含)之间的整数。 数字越小,优先级越高。如果某条消息验证了 2 个消息类的表达式,则只会触发优先级值较低的消息类。
如需创建新的消息类,请在“消息类表达式”字段中填写有效的 SpEL 表达式,并设置优先级
点击“创建”按钮以保存更改。如果成功创建新的消息类,系统会显示一条确认消息。
测试源消息类表达式
您可以在创建源消息类之前,先对源消息类表达式进行实验和测试。
REST
POST /configuration/v1/message-classes:test
{
"expression": "SPEL_EXPRESSION",
"testMessage": "TEST_MESSAGE"
}
替换以下内容:
SPEL_EXPRESSION:用于定义消息类的 SpEL 表达式。TEST_MESSAGE:测试源消息对象。
返回对象会告知您所提供的表达式在语法上是否正确,以及对于所提供的消息,该表达式的评估结果是 true 还是 false。
控制台
界面提供了使用测试消息测试新消息类的 SpEL 表达式的选项。
- 在“测试消息”框中填写示例
JSON消息。 - 点击运行测试以运行验证。测试结果为“匹配”或“不匹配”,并简要说明匹配条件。

针对所有有效消息类评估测试消息
您可以评估消息,以确定对于一组有效源消息类,测试消息将属于哪个源消息类。
REST
POST /configuration/v1/message-classes:evaluate
{
"testMessage": "TEST_MESSAGE"
}
替换以下内容:
- 将
TEST_MESSAGE替换为测试源消息对象。
返回对象会告知您所提供的消息匹配了哪个源消息类(如果有)。