Axivox Przewodnik użytkownika
Powrót do strony

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ściajedno na zadeklarowany przypadek, plus Domyślny
Etykieta wyjściawartość przypadku, poprzedzona ~, gdy zaznaczono Regex
PolaWyrażenie do sprawdzenia, a następnie tabela Wartość przypadku z polem wyboru Regex
Domyślne porównaniedokładna równość, z uwzględnieniem wielkości liter i spacji
Liczba przypadkówbez 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:

ZapisCo oznacza
^początek wartości
$koniec wartości
\dcyfra
[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ć

PoleCzego się oczekujeJeśli zostawisz puste
Wyrażenie do sprawdzeniazmienna, na przykład {{jezyk}}, albo tekst, który ją zawieratestowana wartość jest pusta, i tylko pusty przypadek albo Domyślny może zostać wybrany
Wartość przypadkuoczekiwana wartość, albo wzorzec, jeśli zaznaczono Regexbez Regex przypadek pasuje tylko do wartości samej w sobie pustej; z Regex pasuje do wszystkiego i przechwytuje wszystkie połączenia
Regexzaznaczone, wartość staje się wzorcemporó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

  1. Umieść moduł Switch / Case i połącz poprzedni węzeł z jego wejściem.
  2. Otwórz go i uzupełnij Wyrażenie do sprawdzenia, kopiując zmienną z panelu Dostępne zmienne, zamiast wpisywać ją ręcznie.
  3. Kliknij Dodaj i wpisz Wartość przypadku. Powtórz dla każdej wartości, którą chcesz rozróżnić.
  4. Zaznacz Regex wyłącznie na liniach, gdzie opisujesz kształt, a nie konkretną wartość.
  5. Uporządkuj swoje przypadki od najbardziej precyzyjnego do najbardziej ogólnego: wygrywa pierwszy pasujący.
  6. Kliknij Zapisz. Moduł wyświetla teraz jedno wyjście na przypadek, plus Domyślny.
  7. 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.
  8. Umieść moduł Debugowanie tuż przed, z komunikatem zawierającym testowaną zmienną. Odczytasz rzeczywiście porównywaną wartość.
  9. Kliknij Zapisz, a następnie Zastosuj zmiany w górnym pasku.
  10. 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