WHEN – AND – OR – THEN – ELSE i flows forklaret

Hvis man ikke har haft med et programmeringssprog at gøre før, så kan man godt blive lidt forvirret over hvad der aktiverer et flowkort.

Jeg vil i denne artikel beskrive, hvordan tankegangen skal være når du designer dine flows og samtidig give eksempler på hvad der er korrekt og forkert.

Hvis du ikke har fundet ud af hvor OR og ELSE er gemt henne, så læs denne artikel: DE SKJULTE OR OG ELSE I FLOWS

WHEN

Den betingelse du vælger her er det som ene og alene starter flowet. Betingelsen skal ALTID være opfyldt – er den ikke det, så bliver der ikke kigget på resten af flowet!
Flowet kan godt blive stoppet af andre betingelser i AND og OR, men det kommer først i spil om lidt.

Betingelsen kan f.eks. være noget direkte, som at nogen trykker på tænd knappen på en kontakt, en dør bliver åbnet eller en motion sensor registrerer bevægelse.
Men det kan også være noget indirekte, som f.eks. at temperaturen har ændret sig eller en lampe er blevet tændt.

Det er altså noget der har ændret sig, som får det hele til at begynde.

AND

Når betingelsen i WHEN er opfyldt, så bliver der kigget på AND afsnittet. Der behøver ikke at være noget i AND, WHEN kan godt stå alene!

Her kan du vælge betingelser, som allerede er sket og ikke imens de sker.
Det betyder at hvis du i WHEN har valgt som betingelse, at nogen trykker på en knap, så kan du ikke i AND vælge, at nogen samtidig skal åbne et vindue. Det bliver i stedet til, at NÅR nogen trykker på en knap OG vinduet (allerede) er åben .

Den betingelse du vælger i AND skal også være opfyldt, efter at betingelsen i WHEN er opfyldt, for at resten af flowet bliver udført. Med mindre at der er noget i OR eller ELSE også. Men mere om det i de respektive afsnit.

Du kan vælge lidt mere specifikke betingelser i AND end under WHEN. Et eksempel er, at du i WHEN kan vælge at reagere på en temperatur ændring, men du kan ikke vælge et specifikt temperaturinterval.
Det kan du til gengæld i AND. Her kan du med den indbygget logic funktion f.eks. sætte som betingelse, at temperaturen skal være over 6 grader.
Samlet set betyder det, at temperaturen skal have ændret sig OG temperaturen skal være over 6 grader for at der bliver kigget videre i flow-kortet.
Bemærk at flowet i dette eksempel bliver udført hver eneste gang at temperaturen ændrer sig og temperaturen er over 6 grader.

OR

Som tidligere nævnt, så skal WHEN altid være opfyldt! Og er der nogle AND betingelser, så bliver der også kigget på dem.
Men hvis WHEN er opfyldt og AND ikke er, så bliver der kigget på OR, for at se om betingelserne så kan opfyldes, så vi kan komme videre.

Der kan vælges præcist de samme betingelser som i AND.
OR kan naturligvis ikke eksisterer uden der står noget i AND.

Et eksempel på brugen af OR kunne i forlængelse af temperatur eksemplet i AND afsnittet kunne være: NÅR temperaturen har ændret sig OG temperaturen er over 6 grader ELLER temperaturen er under 3 grader SÅ.
De betingelser vil udføre resten af flowet når temperaturen ligger udenfor 3-6 grader, og kunne være brugbart til at overvåge temperaturen i et køleskab og komme med en advarsel hvis noget er helt galt.

THEN

Det er her vi bestemmer hvad der skal ske, hvis betingelserne i WHEN og evt. AND eller OR er opfyldt.

I forlængelse af temperatur eksemplet, så kunne det være at vi sender en push besked på telefonen hos en eller flere af husets beboere, som advarer om problemer i køleskabet.
Skal det være endnu bedre, så sender vi temperaturen med i beskeden.

ELSE

Der er mange der bliver forvirret af ELSE. ELSE er IKKE det modsatte af hvad der står i WHEN!

Så hvis betingelsen i WHEN er, at en dør bliver åbnet, så er ELSE ikke til hvis en dør bliver lukket – eller en dør ikke bliver åbnet.
Igen så bliver der slet ikke kigget på ELSE hvis WHEN ikke er opfyldt!

ELSE er derimod modsvaret på AND og OR! Hvis betingelserne i enten AND eller OR er opfyldt, så bliver THEN udført.
Men kan hverken AND eller OR opfyldes, så bliver tingene i ELSE udført.

Det kræver vist et eksempel! Vi har vores temperatur eksempel, som tidligere reagerede ved ændringer under 3 grader og over 6 grader.
Er temperaturen derimod mellem 3 og 6 grader, så sker der ikke noget.
Det er her at ELSE træder ind. Modsvaret på AND og OR. ELSE vil blive udført når temperaturen ændres og er fra og med 3 grader og til og med 6 grader.
Så her kunne vi sende en push besked til husets beboere om, at temperaturen i køleskabet er helt i orden.

Bemærk: Igen så bliver dette eksempel udført hver eneste gang at temperaturen ændrer sig og betingelserne enten er opfyldt (THEN) eller ikke opfyldt (ELSE). I praksis skal der bygges en yes/no variable ind i flowet, som holder styr på, om der allerede er sendt en besked om, at alt er godt eller skidt i køleskabet.