მთავარ შინაარსზე გადახტომა

Узел 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 არის მეტი ვიდრე 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

Результат:
ტემპერატურები მარშრუტიზირდება მათი მნიშვნელობის მიხედვით.