根据配置将入站消息的来源实体更换为另一实体。来源实体可更换为:
- Customer — 当前来源实体的客户。
- Tenant — 当前来源实体的租户。
- Related entity — 与当前来源实体相关的实体。
- Alarm originator — 告警的来源实体(若当前来源实体为告警)。
- Entity by name pattern — 通过配置的名称模式在数据库中查找的实体。
配置
字段说明
- New originator — 指定将哪个实体设为出站消息的新来源实体。可为:
- Customer — 分配给当前来源实体的客户。
- Tenant — 拥有当前来源实体的租户。
- Related entity — 与当前来源实体相关的实体,使用配置的关系查询解析。
- Alarm originator — 产生告警的实体;仅当当前来源实体为
ALARM时可用。 - Entity by name pattern — 通过Type和配置的Name pattern在数据库中查找的实体。
若 New originator 配置为 Related entity,需指定关系查询以解析新来源实体:
- Direction — 指定相对于当前来源实体的关系方向(From originator 或 To originator)。
- Max relation level — 要追踪的嵌套关系的最大层级。未指定时无层级限制。
- Fetch last level relation only — 启用后仅考虑Max relation level层级的关系,其余丢弃。禁用时考虑所有层级找到的实体。该字段仅在 Max relation level 设为非1时显示。
- Relation filters — 找到的关系必须满足的过滤器列表。
- Relation type — 找到的关系必须具有此类型。
- Entity type — 相关实体必须匹配的实体类型集合。
若 New originator 配置为 Entity by name pattern,需指定以下字段以查找新来源实体:
- Type — 要查找的实体类型。可为:Device、Asset、Entity View、User 或 Edge。
- Name pattern — 要查找的实体的名称模式。例如
MyDevice,或使用模板${deviceName}。
JSON Schema
消息处理逻辑
- 根据配置尝试查找新来源实体
- 若找到,将消息来源实体更换为新实体,并经
Success路由消息。 - 若未找到,经
Failure路由消息。
- 若找到,将消息来源实体更换为新实体,并经
输出连接
Success:- 找到并更换新来源实体时。
Failure:- 未找到新来源实体时。
- 消息处理过程中发生意外错误时。
示例
示例1 — 将来源实体更换为客户
入站消息
来源实体为资产。
节点配置
1
2
3
{
"originatorSource": "CUSTOMER"
}
系统状态
来源资产分配给ID为 781a4826-8334-11f0-8de9-0242ac120002 的客户。
出站消息
来源实体为ID 781a4826-8334-11f0-8de9-0242ac120002 的 CUSTOMER。
输出连接: Success。
说明: 因入站消息来源实体(资产)分配给客户,找到客户并将来源实体更换为该客户。
示例2 — 将来源实体更换为租户
入站消息
任意消息。
节点配置
1
2
3
{
"originatorSource": "TENANT"
}
系统状态
处理在ID为 a8b88d08-8339-11f0-8de9-0242ac120002 的租户下进行。
出站消息
与入站消息相同,但来源实体为ID a8b88d08-8339-11f0-8de9-0242ac120002 的 TENANT。
输出连接: Success。
说明: 消息处理始终在某个租户下进行,因此总能找到租户,来源实体更换为该租户。
示例3 — 将来源实体更换为相关实体
入站消息
来源实体为名为 Parent Asset 的资产。
节点配置
1
2
3
4
5
6
7
8
9
10
11
12
13
{
"originatorSource": "RELATED",
"relationsQuery": {
"direction": "FROM",
"maxLevel": 1,
"filters": [
{
"relationType": "Contains",
"entityTypes": []
}
]
}
}
系统状态
系统具有以下关系:
Level 1: Parent Asset – Contains –> Child Device
Level 2: Child Device – Contains –> Grandchild Device
出站消息
与入站消息相同,但来源实体更换为 Child Asset。
输出连接: Success。
说明: 节点从 Parent Asset 开始查找相关实体。在level 1找到 Child Device。因 maxLevel 为1,查找止于此,Child Device 成为新来源实体。Level 2的 Grandchild Device 被忽略。
示例4 — 将来源实体更换为告警来源实体
入站消息
来源实体为 ALARM。
节点配置
1
2
3
{
"originatorSource": "ALARM_ORIGINATOR"
}
系统状态
入站告警的来源实体为ID c4d81246-8341-11f0-8de9-0242ac120002 的设备。
出站消息
与入站消息相同,但来源实体为ID c4d81246-8341-11f0-8de9-0242ac120002 的 DEVICE。
输出连接: Success。
说明: 入站消息来源实体为告警。节点成功识别创建告警的实体(设备)并将其设为出站消息的新来源实体。
示例5 — 按名称模式将来源实体更换为指定实体
入站消息
Metadata:
1
2
3
{
"sensorName": "Sensor-T1000"
}
节点配置
1
2
3
4
5
{
"originatorSource": "ENTITY",
"entityType": "DEVICE",
"entityNamePattern": "${sensorName}"
}
系统状态
存在名为 Sensor-T1000、ID为 e6f15598-8345-11f0-8de9-0242ac120002 的设备。
出站消息
来源实体为ID e6f15598-8345-11f0-8de9-0242ac120002 的 DEVICE。
输出连接: Success。
说明: 节点通过用消息metadata中的值替换,解析名称模式 ${sensorName},得到名称 Sensor-T1000。随后找到具有该名称的设备并成功更换来源实体。