Դիտել հիմնական բովանդակությունը

Узел switch

Узел switch предназначен для маршрутизации сообщений в зависимости от их содержимого, структуры или других условий. Это мощный инструмент для создания условной логики в потоках.


Настройки узла switch

IMG2

1. Name

Դաշտ անունը նշելու համար узла։
Անունը երևում է աշխատանքային տարածքում և օգնում է հեշտությամբ ճանաչել узла։
Եթե թողնեք դատարկ, узла կոչվելու է inject.

Օրինակ:

  • Узла անունը: check status

2. Property

Նշում է, թե որ msg հաղորդագրության օբյեկտի հատկությունը կօգտագործվի պայմանները ստուգելու համար։

Օրինակ:

  • msg.payload
  • msg.topic
  • msg.device.temperature

Նաեւ աջակցվում են միջավայրի հատկությունները (flow, global) և JSONata արտահայտությունները (սկսվում են $):


3. Check

  • Առաջին համապատասխանության ստուգում (Default):
    Հաղորդագրությունը ուղարկվում է միայն առաջին ելքին, որը բավարարում է պայմանին։
  • Բոլոր համապատասխանությունների ստուգում:
    Հաղորդագրությունը կարող է ուղարկվել մի քանի ելք, եթե համապատասխանում է մի քանի պայմանների։

3. Rules

Նշում են երթուղային տրամաբանությունը։ Յուրաքանչյուր պայման կապված է узла-ի ելքերից մեկի հետ։ Հաղորդագրությունը կուղարկվի առաջին համապատասխան ելքին։

Հասանելի պայմանների տեսակները:

  • ==: Ստուգում է արժեքի հավասարությունը։
  • !=: Ստուգում է անհավասարությունը։
  • <: Ստուգում է, թե արժեքը փոքր է։
  • <=: Ստուգում է, թե արժեքը փոքր կամ հավասար է։
  • >: Ստուգում է, թե արժեքը մեծ է։
  • >=: Ստուգում է, թե արժեքը մեծ կամ հավասար է։
  • has key: Ստուգում է, թե օբյեկտը պարունակում է նշված բանալին։
  • between: Ստուգում է, թե արժեքը գտնվում է նշված միջակայքում (ներառյալ)։
  • contains: Ստուգում է, թե տողը կամ զանգվածը պարունակում է նշված արժեքը։
  • matches regex: Ստուգում է, թե տողը համապատասխանում է կանոնավոր արտահայտությանը։
  • equals true: Ստուգում է, թե արժեքը հավասար է true։
  • equals false: Ստուգում է, թե արժեքը հավասար է false։
  • equals null: Ստուգում է, թե արժեքը հավասար է null։
  • not equals null: Ստուգում է, թե արժեքը չի հավասար null։
  • is of type: Ստուգում է, թե արժեքը համապատասխանում է նշված տիպին (օրինակ, string, number, boolean
  • empty: Ստուգում է, թե տողը, զանգվածը կամ օբյեկտը դատարկ է։
  • not empty: Ստուգում է, թե տողը, զանգվածը կամ օբյեկտը դատարկ չէ։
  • else: Կատարվում է, եթե ոչ մի այլ պայման չի կատարվել։

Օրինակ:

  • msg.payload is greater than 50

Վходные данные

Узел ընդունում է msg օբյեկտ։
Որոնք են ստուգվելու հատկությունները, նշվում է Property դաշտում։


Выходные данные

Узел ուղարկում է msg հաղորդագրությունը այն ելքին, որը համապատասխանում է նշված պայմանին։
Եթե հաղորդագրությունը չի համապատասխանում ոչ մի պայմանին, այն չի ուղարկվում ելքներին։


Примеры использования

Пример 1: Фильтрация температурных данных

Задача:
Տվյալները բաժանել երեք կատեգորիայի՝ ցածր, նորմալ և բարձր ջերմաստիճան։

Պտուղ:

[inject] ---> [function] ---> [switch] ---> [debug (low temp)]
| [debug (normal temp)]
| [debug (high temp)]

Настройки узла switch:

  • Property: msg.payload
  • Պայմաններ:
    1. is less than 10 → Ելք 1
    2. is between 10 and 30 → Ելք 2
    3. is greater than 30 → Ելք 3

Результат:
Ջերմաստիճանները կուղարկվեն ըստ իրենց արժեքի։