Switch


Switch 节点根据所配置的 case 值将消息路由到不同节点,case 值由它们相应的标签来表示。

节点类型

Logic。

输入和输出能力

该节点具有 1 个入口点和多个出口点。输入和输出都是 JSON 格式。Switch 节点带有默认标签 Others;如果输入不满足任何具有特定标签的出口分支,规则将会遵循该默认标签。有关标签的更多信息,参见“节点属性”部分。


由于该节点不会修改输入消息,因此其输出与输入相同。

注解

你需要使用 “Others” 标签配置一个出口点。

节点属性

../../../_images/switch.png


名称

该节点的名称。


Case

Case 是为节点把消息分支到不同的路由而指定的条件,每个 case 代表一个分支。使用表达式指定条件,然后为案例输入相应的标签。

  • 条件

    条件的值仅支持数字和字符串,例如 ${msg.key}>=7${metadata.topic}='yourTopic',其中数字支持 >、<、>=、<=、=、<> 和 != 运算符,而字符串支持 <> 和 = 运算符。Metadata 中的 不区分大小写, 需要区分大小写。

  • 标签

    在将连接器从 Switch 节点的出口点拖到下一个节点的入口点时,需要选择表示规则分支条件的标签,而连接器将会带有标签名称。每个标签只能使用一次,即每个条件只能用于一个分支。


    Switch 节点带有默认标签 Others;如果输入不满足任何具有特定标签的出口分支,规则将会遵循该默认标签。


若有多个 case,则在规则运行时,将会按照从上到下的评估顺序。例如,如果输入消息满足多个 case 条件,则与该条件匹配的最上面的 case 将会是规则所遵循的分支。


描述

该节点的描述。

使用限制

  • 最大 case 数:5

示例

输入示例

{
    "externalId":"Inverter",
    "timestamp":24214324324,
    "measurepoints":{
        "speed":32,
        "heat":40
    }
}

输出示例

输出消息与输入消息相同。

{
    "externalId":"Inverter",
    "timestamp":24214324324,
    "measurepoints":{
        "speed":32,
        "heat":40
    }
}