Switch / Case
Stuurt de oproep door op basis van de waarde van een variabele. Elk gedeclareerd geval creëert zijn eigen uitgang, via exacte gelijkheid of volgens een patroon, en Standaard vangt de rest op.
In het kort
| Uitgangen | één per gedeclareerd geval, plus Standaard |
| Label van een uitgang | de waarde van het geval, voorafgegaan door ~ wanneer Regex is aangevinkt |
| Velden | Te testen expressie, dan een tabel Waarde van het geval met een vakje Regex |
| Standaardvergelijking | exacte gelijkheid, hoofdletters en spaties inbegrepen |
| Aantal gevallen | onbeperkt |
| Volgorde | het eerste geval dat overeenkomt, wint; de volgende worden niet geëvalueerd |
De hulptekst die in het venster wordt getoond, is: « Elk geval creëert een uitgang; « Standaard » wordt genomen als geen enkel geval overeenkomt. Vink « Regex » aan om de waarde als een reguliere expressie te behandelen (bv. ^\+251, ^0[1-9][0-9]{7}$). Anders, exacte gelijkheid. »
Hoe het werkt
De module berekent eerst de te testen expressie, doorgaans een variabele geschreven als {{mijn_variabele}}. Hij verkrijgt zo een tekst, die welke de variabele draagt op het moment dat de oproep passeert.
Hij doorloopt vervolgens uw gevallen van boven naar onder en stopt bij het eerste dat overeenkomt. Als er geen enkel overeenkomt, neemt hij Standaard.
Exacte gelijkheid
Zonder het vakje Regex komt een geval overeen wanneer de waarde strikt identiek is: Premium en premium zijn twee verschillende waarden, en één spatie te veel volstaat om de vergelijking te doen mislukken.
Patroon, of reguliere expressie
Een reguliere expressie is een beschrijving van een vorm eerder dan een waarde. In plaats van de duizenden nummers op te sommen die met 02 beginnen, beschrijft u « begint met 02, gevolgd door cijfers ».
Enkele tekens volstaan om bijna alle behoeften te dekken:
| Schrijfwijze | Wat ze betekent |
|---|---|
^ | het begin van de waarde |
$ | het einde van de waarde |
\d | een cijfer |
[0-9] | een cijfer, andere schrijfwijze |
[1-9] | een cijfer van 1 tot 9 |
+ | het voorgaande teken, één keer of meer |
* | het voorgaande teken, nul keer of meer |
{7} | het voorgaande teken, exact zeven keer |
De twee voorbeelden van de interface lezen als volgt: ^\+251 komt overeen met elke waarde die met +251 begint, en ^0[1-9][0-9]{7}$ met een waarde van negen cijfers die begint met een nul gevolgd door een cijfer van 1 tot 9.
Schrijf het patroon alleen, zonder het tussen slashes te plaatsen. ^02 is correct, /^02/ zal met niets overeenkomen.
Wat u moet invullen
| Veld | Wat wordt verwacht | Als u het leeg laat |
|---|---|---|
| Te testen expressie | een variabele, bijvoorbeeld {{taal}}, of een tekst die er een bevat | de geteste waarde is leeg, en enkel een leeg geval of Standaard kan worden gekozen |
| Waarde van het geval | de verwachte waarde, of het patroon als Regex is aangevinkt | zonder Regex komt het geval enkel overeen met een zelf lege waarde; met Regex komt het overeen met alles en vangt het alle oproepen op |
| Regex | aangevinkt, wordt de waarde een patroon | vergelijking via exacte gelijkheid |
De knop Toevoegen maakt een rij voor een geval aan, Verwijderen verwijdert die van de rij. Opslaan sluit het venster, en de uitgangen van de module krijgen meteen nieuwe labels.
Stap voor stap
- Plaats de module Switch / Case en verbind de vorige node met haar ingang.
- Open hem en vul de Te testen expressie in, door de variabele te kopiëren vanuit het paneel Beschikbare variabelen in plaats van ze over te typen.
- Klik op Toevoegen en voer de Waarde van het geval in. Herhaal dit voor elke waarde die u wilt onderscheiden.
- Vink Regex enkel aan op de rijen waar u een vorm beschrijft, en geen precieze waarde.
- Rangschik uw gevallen van het meest specifieke naar het meest algemene: het eerste dat overeenkomt, wint.
- Klik op Opslaan. De module toont nu één uitgang per geval, plus Standaard.
- Verbind elke uitgang met zijn bestemming, Standaard inbegrepen: een gebruikte uitgang die nergens naartoe leidt, hangt de oproep op.
- Plaats net ervoor een module Debug, met de geteste variabele als bericht. U leest dan de waarde die werkelijk wordt vergeleken.
- Klik op Opslaan, en dan op Wijzigingen toepassen in de bovenste balk.
- Bel uw nummer en veroorzaak telkens een van de gevallen, en controleer dat de oproep wel degelijk vertrekt waar u het verwacht.
Als het niet werkt
Alle oproepen vertrekken naar Standaard. Lees eerst de werkelijk geteste waarde, met een Debug die er net voor staat. Negen keer op tien is ze leeg, omdat de module die de variabele instelt niet is doorlopen, of omdat de naam tussen de accolades niet overeenkomt.
Mijn waarde klopt, maar het geval wordt niet genomen. De vergelijking is exact: Premium is niet premium, en een spatie aan het einde van de waarde telt mee. Vink Regex aan en beschrijf de vorm, bijvoorbeeld ^[Pp]remium$.
Mijn patroon komt nooit overeen. Schrijf het zonder slashes eromheen: ^02\d+ en niet /^02\d+/. Controleer vervolgens dat een verkeerd gevormd patroon niet onopgemerkt blijft: het komt nooit overeen en toont geen enkele fout.
Het is altijd hetzelfde geval dat wint, terwijl er twee zouden kunnen overeenkomen. Dit is het verwachte gedrag. Plaats het meest specifieke geval boven het meest algemene, of beperk het patroon van het meest algemene.
De oproep wordt verbroken terwijl een geval wel degelijk overeenkomt. De uitgang van dat geval is nergens mee verbonden. Controleer elke uitgang van de module, Standaard inbegrepen, na het toevoegen of verwijderen van een geval: de uitgangen worden opnieuw genummerd.
Hoe het belplan wordt opgebouwd, uitgelegd in beelden
Bekijk de pagina Belplannen