switch
düyü
switch
düyüsü mesajların məzmununa, strukturuna və ya digər şərtlərə əsasən yönləndirilməsi üçün nəzərdə tutulmuşdur. Bu, axınlarda şərti məntiq yaratmaq üçün güclü bir alətdir.
switch
düyüsünün parametrləri
1. Ad
Düyünün adını göstərmək üçün sahə.
Ad iş sahəsində görünür və düyünü asanlıqla tanımağa kömək edir.
Boş qoyulsa, düyü inject
adlanacaq.
Nümunə:
- Düyünün adı:
check status
2. Xüsusiyyət
Hangi msg
mesaj obyektinin xüsusiyyətinin şərtləri yoxlanılacağını göstərir.
Nümunə:
msg.payload
msg.topic
msg.device.temperature
Həmçinin mühit xüsusiyyətləri (flow
, global
) və JSONata ifadələri ( $
ilə başlayır) də dəstəklənir.
3. Yoxlama
- İlk uyğunluğa qədər yoxlama (Default):
Mesaj yalnız şərtə uyğun olan ilk çıxışa göndərilir. - Bütün uyğunluqları yoxlama:
Mesaj bir neçə şərtə uyğun gəlirsə, bir neçə çıxışa göndərilə bilər.
3. Qaydalar
Yönləndirmə məntiqini müəyyən edir. Hər bir şərt düyünün çıxışlarından birinə bağlanır. Mesaj ilk uyğun çıxışa göndəriləcək.
Mövcud şərt tipləri:
==
: Dəyərin bərabərliyini yoxlayır.!=
: Bərabərsizliyi yoxlayır.<
: Dəyərin kiçik olub-olmadığını yoxlayır.<=
: Dəyərin kiçik və ya bərabər olub-olmadığını yoxlayır.>
: Dəyərin böyük olub-olmadığını yoxlayır.>=
: Dəyərin böyük və ya bərabər olub-olmadığını yoxlayır.has key
: Obyektin göstərilən açarı ehtiva edib-etmədiyini yoxlayır.between
: Dəyərin göstərilən aralıqda (daxil olmaqla) olub-olmadığını yoxlayır.contains
: Sətirin və ya massivinin göstərilən dəyəri ehtiva edib-etmədiyini yoxlayır.matches regex
: Sətirin müntəzəm ifadəyə uyğun olub-olmadığını yoxlayır.equals true
: Dəyərintrue
-ya bərabər olub-olmadığını yoxlayır.equals false
: Dəyərinfalse
-ya bərabər olub-olmadığını yoxlayır.equals null
: Dəyərinnull
-a bərabər olub-olmadığını yoxlayır.not equals null
: Dəyərinnull
-a bərabər olmadığını yoxlayır.is of type
: Dəyərin göstərilən tipə (məsələn,string
,number
,boolean
) uyğun olub-olmadığını yoxlayır.empty
: Sətirin, massivinin və ya obyektinin boş olub-olmadığını yoxlayır.not empty
: Sətirin, massivinin və ya obyektinin boş olmadığını yoxlayır.else
: Əgər digər şərtlərdən heç biri yerinə yetməzsə, icra olunur.
Nümunə:
msg.payload
50
-dən böyükdür
Giriş məlumatları
Düyü msg
obyektini qəbul edir.
Hansı xüsusiyyətlərin yoxlanılacağı Xüsusiyyət sahəsində müəyyən edilir.
Çıxış məlumatları
Düyü msg
mesajını müəyyən edilmiş şərtə uyğun olan çıxışa göndərir.
Əgər mesaj heç bir şərtə uyğun gəlmirsə, o, çıxışlara göndərilmir.
İstifadə nümunələri
Nümunə 1: Temperatur məlumatlarının filtrlenməsi
Tapşırıq:
Məlumatları üç kateqoriyaya ayırmaq: aşağı, normal və yüksək temperatur.
Axın:
[inject] ---> [function] ---> [switch] ---> [debug (low temp)]
| [debug (normal temp)]
| [debug (high temp)]
switch
düyüsünün parametrləri:
- Xüsusiyyət:
msg.payload
- Şərtlər:
is less than 10
→ Çıxış 1is between 10 and 30
→ Çıxış 2is greater than 30
→ Çıxış 3
Nəticə:
Temperaturlar dəyərlərinə əsasən yönləndiriləcək.