Switch / Case
Kieruje połączenie według wartości zmiennej. Każdy zadeklarowany przypadek tworzy własne wyjście, przez dokładne dopasowanie albo według wzorca, a Domyślny zbiera resztę.
W skrócie
| Wyjścia | jedno na zadeklarowany przypadek, plus Domyślny |
| Etykieta wyjścia | wartość przypadku, poprzedzona ~, gdy zaznaczono Regex |
| Pola | Wyrażenie do sprawdzenia, a następnie tabela Wartość przypadku z polem wyboru Regex |
| Domyślne porównanie | dokładna równość, z uwzględnieniem wielkości liter i spacji |
| Liczba przypadków | bez ograniczeń |
| Kolejność | wygrywa pierwszy pasujący przypadek; kolejne nie są sprawdzane |
Tekst pomocy wyświetlany w oknie to: „Każdy przypadek tworzy wyjście; „Domyślny” jest brany, jeśli żaden przypadek nie pasuje. Zaznacz „Regex”, aby traktować wartość jako wyrażenie regularne (np. ^\+251, ^0[1-9][0-9]{7}$). W przeciwnym razie: dokładna równość.”
Jak to działa
Moduł najpierw oblicza wyrażenie do sprawdzenia, zazwyczaj zmienną zapisaną jako {{moja_zmienna}}. Otrzymuje więc tekst, ten, który niesie zmienna w chwili przejścia połączenia.
Następnie przegląda twoje przypadki od góry do dołu i zatrzymuje się na pierwszym pasującym. Jeśli żaden nie pasuje, bierze Domyślny.
Dokładna równość
Bez pola Regex przypadek pasuje, gdy wartość jest ściśle identyczna: Premium i premium to dwie różne wartości, a jedna zbędna spacja wystarczy, by porównanie się nie powiodło.
Wzorzec, czyli wyrażenie regularne
Wyrażenie regularne to opis kształtu, a nie wartość. Zamiast wymieniać tysiące numerów zaczynających się od 02, opisujesz „zaczyna się od 02, potem cyfry”.
Kilka znaków wystarcza, aby pokryć niemal wszystkie potrzeby:
| Zapis | Co oznacza |
|---|---|
^ | początek wartości |
$ | koniec wartości |
\d | cyfra |
[0-9] | cyfra, inny zapis |
[1-9] | cyfra od 1 do 9 |
+ | poprzedni znak, raz lub więcej razy |
* | poprzedni znak, zero razy lub więcej |
{7} | poprzedni znak, dokładnie siedem razy |
Dwa przykłady z interfejsu czyta się tak: ^\+251 pasuje do każdej wartości zaczynającej się od +251, a ^0[1-9][0-9]{7}$ do wartości dziewięciocyfrowej, zaczynającej się od zera, po którym następuje cyfra od 1 do 9.
Zapisz wzorzec sam w sobie, bez otaczania go ukośnikami. ^02 jest poprawne, /^02/ niczemu nie będzie odpowiadać.
Co należy uzupełnić
| Pole | Czego się oczekuje | Jeśli zostawisz puste |
|---|---|---|
| Wyrażenie do sprawdzenia | zmienna, na przykład {{jezyk}}, albo tekst, który ją zawiera | testowana wartość jest pusta, i tylko pusty przypadek albo Domyślny może zostać wybrany |
| Wartość przypadku | oczekiwana wartość, albo wzorzec, jeśli zaznaczono Regex | bez Regex przypadek pasuje tylko do wartości samej w sobie pustej; z Regex pasuje do wszystkiego i przechwytuje wszystkie połączenia |
| Regex | zaznaczone, wartość staje się wzorcem | porównanie przez dokładną równość |
Przycisk Dodaj tworzy linię przypadku, Usuń usuwa tę ze swojej linii. Zapisz zamyka okno, a wyjścia modułu natychmiast zmieniają etykiety.
Jak to zrobić krok po kroku
- Umieść moduł Switch / Case i połącz poprzedni węzeł z jego wejściem.
- Otwórz go i uzupełnij Wyrażenie do sprawdzenia, kopiując zmienną z panelu Dostępne zmienne, zamiast wpisywać ją ręcznie.
- Kliknij Dodaj i wpisz Wartość przypadku. Powtórz dla każdej wartości, którą chcesz rozróżnić.
- Zaznacz Regex wyłącznie na liniach, gdzie opisujesz kształt, a nie konkretną wartość.
- Uporządkuj swoje przypadki od najbardziej precyzyjnego do najbardziej ogólnego: wygrywa pierwszy pasujący.
- Kliknij Zapisz. Moduł wyświetla teraz jedno wyjście na przypadek, plus Domyślny.
- Połącz każde wyjście z jego celem, łącznie z Domyślny: zajęte wyjście, które nigdzie nie prowadzi, rozłącza połączenie.
- Umieść moduł Debugowanie tuż przed, z komunikatem zawierającym testowaną zmienną. Odczytasz rzeczywiście porównywaną wartość.
- Kliknij Zapisz, a następnie Zastosuj zmiany w górnym pasku.
- Zadzwoń pod swój numer, wywołując po kolei każdy przypadek, i sprawdź, czy połączenie trafia tam, gdzie się tego spodziewasz.
Jeśli coś nie działa
Wszystkie połączenia trafiają do Domyślny. Odczytaj najpierw rzeczywiście testowaną wartość, za pomocą Debugowania umieszczonego tuż przed. Dziewięć razy na dziesięć jest pusta, ponieważ połączenie nie przeszło przez moduł ustawiający tę zmienną, albo ponieważ nazwa wpisana w nawiasach klamrowych nie odpowiada.
Moja wartość jest poprawna, ale przypadek nie zostaje wybrany. Porównanie jest dokładne: Premium to nie premium, a spacja na końcu wartości też się liczy. Zaznacz Regex i opisz kształt, na przykład ^[Pp]remium$.
Mój wzorzec nigdy nie pasuje. Zapisz go bez otaczających ukośników: ^02\d+, a nie /^02\d+/. Sprawdź następnie, czy źle sformułowany wzorzec nie umyka twojej uwadze: nigdy nie pasuje i nie wyświetla żadnego błędu.
Zawsze wygrywa ten sam przypadek, choć dwa mogłyby pasować. To oczekiwane zachowanie. Przesuń najbardziej precyzyjny przypadek nad bardziej ogólny, albo zawęź wzorzec tego bardziej ogólnego.
Połączenie zostaje przerwane, mimo że przypadek dobrze pasuje. Wyjście tego przypadku nie jest z niczym połączone. Sprawdź każde wyjście modułu, łącznie z Domyślny, po dodaniu lub usunięciu przypadku: wyjścia są wtedy renumerowane.
Jak powstaje plan połączeń, wyjaśnione na obrazach
Zobacz stronę Plany numeracji