Betingelser og veiskille i prosesser

Betingelser og veiskille i prosesser

Designet til Compose har blitt oppdatert. Siden kan inneholde skjermbilder av det gamle designet, men informasjonen er oppdatert. Vi takker for din tålmodighet mens vi oppdaterer bildene!

English

Hva er en betingelse?

Det er mulig å ha betingelsesaktiviteter i prosesser. Hvis du legger til en Betingelse eller en Multibetingelse til en prosess kan du sende sluttbrukeren til forskjellige hendelsesforløp i en prosess. En Betingelse lar deg sende sluttbrukeren til to forskjellige løp, mens en Multibetingelse lar deg skille prosessen i så mange løp du ønsker.

Betingelsesaktivitet i en prosess

I dette første eksempelet bruker vi aktiviteten Betingelse til å definere et veiskille med to løp i en prosess. Avhengig av svaret vil noen sluttbrukere sendes direkte til endepunktet, mens andre sendes til utfylling av enda et skjema før de når samme endepunkt.

Opprett en prosess med et startpunkt, en skjema-aktivitet, en betingelse, enda en skjema-aktivitet og et endepunkt, slik som vist på bildet under. Hvis du trenger hjelp til å sette opp disse aktivitetene, sjekk ut brukerveiledningen Bygg en prosess.

Først må vi bestemme hvilket svar i det første skjemaet vi skal bruke til å definere betingelsen. Vi gjør dette ved å koble skjemasvaret til en variabel som vi bruker når vi koder en betingelse. Velg betingelsen på lerretet og trykk Skriptvariabler-knappen i Egenskaper-panelet.

I Variabler-menyen, legg til en variabel ved å trykke på Legg til-knappen og gi variabelen et navn.

Typen til variabelen må defineres. Du kan velge hvorvidt variabelen skal knyttes til et spørsmålssvar med en bestemt validering (i vårt tilfelle Tekst), eller et helt skjema. I dette eksempelet velger vi typen spørsmålssvar, men bla helt ned til siste avsnitt på siden for å se et kort eksempelskript med typen skjema. Velg Verdi fra prosess-radioknappen og trykk Bla gjennom for å velge spørsmålet som betingelsen skal omfatte.

Utvid de listede aktivitetene ved å trykke på pilhodene for å se alle spørsmålene i Skjema 1 (eller prosessvariabler hvis du utvider aktiviteten kalt Prosessvariabler). Velg et spørsmål og trykk OK.

En viktig ting å notere seg i eksempelet er at vi har knyttet variabelen til et spørsmål med enkeltvalg (radioknapper/nedtrekksliste) med to alternativer med svarverdier 1 og 2. Se nå på referansen i Verdi-feltet: Form 1.Q3.answer.value. Oversatt betyr dette at variabelen er knyttet til svarverdien (ikke alternativteksten) til spørsmålet med ID Q3 i prosessaktiviteten Form 1. Dette betyr at vi må referere til svarverdien når vi bruker variabelen harDuBarn i betingelsesskriptet. Trykk OK for å lagre innstillingene.

Skriptet må enten være sant eller feil (true/false), så vår betingelse er en påstand (kalt “setning” når man koder):

harDuBarn == "1"

Dette medfører følgende; dersom sluttbrukeren velger alternativet med svarverdi 1 er betingelsen oppfylt (true) og sluttbrukeren sendes en vei i prosessen. Ethvert annet alternativ enn alternativet med svarverdi 1 oppfyller ikke betingelsen (false) og sluttbrukeren sendes den andre veien i prosessen. Viktig: Siden vi validerer variabelen som Tekst må vi putte anførselstegn rundt svarverdien (“1”). Hvis vi hadde valgt valideringen Heltall eller Desimal ville vi kunnet skrive skriptet uten anførselstegn (harDuBarn == 1).

Nå kobler vi koblingene i veiskillet i prosessen til utfallene oppfylt (true) og ikke-oppfylt (false) betingelse. Dersom betingelsen er oppfylt ønsker vi at sluttbrukeren skal fylle ut Skjema 2. Velg koblingen til Skjema 2 og i nedtrekkslisten for Retning, velg 1 - if. Logikken bak alternativene if og else er at hvis (if) betingelsen er oppfylt, så er 1 - if veien videre i prosessen. Hvis ikke (else) er betingelsen ikke oppfylt og da fortsetter prosessen langs 0 - else. Hvis skriptet ikke får til å kjøre eller ikke returnerer en såkalt boolsk verdi (true eller false), så blir betingelsen som standard ikke oppfylt (0 - else). Ved å velge retningen til én kobling bytter den andre koblingen automatisk til den andre retningen.

Husk å lagre kladden. Dermed har du en betingelse og et funksjonelt veiskille i prosessen din!

Multibetingelsesaktivitet i en prosess

Hvis du trenger et veiskille med flere enn to hendelsesforløp kan du bruke en Multibetingelse. I dette eksempelet vil vi bruke aktiviteten Multibetingelse til å bestemme når sluttbrukeren skal sendes til tre ulike løp i prosessen (tre ulike e-postaktiviteter). Metodikken bak å opprette variabler er lik for multi- og vanlige betingelsesaktiviteter, så følg veiledningen i avsnittet over frem til multibetingelsen skal kodes.

Variabelen test er av typen spørsmålssvar knyttet til svarverdien til et spørsmål med enkeltvalg (radioknapp/nedtrekksliste) med spørsmålsID Q4. Spørsmålet har tre alternativer med svarverdiene 1, 2 og 3. Trykk OK.

I Betingelsesaktiviten var if/else-setningen, som det heter i kodeverdenen, implisert og også indikert i Retning-nedtrekkslistene til koblingene (if - 1 og else - 0). Da det er flere enn to utfall, eller løp i prosessen, trenger vi å kode if/else-setningen i Skript-vinduet. Vi skiller mellom de ulike løpene med nummerering som starter med 0. Velg de tre koblingene for å se at de har fått Retning-verdier 0, 1 og 2.

Av den grunn når vi koder påstandene i betingelsene, må vi også returnere retning-numrene for å indikere hvilken vei prosessen skal ta hvis påstanden er sann (true). Koden vil dermed for variabelen som kan ta svarverdiene 1, 2 and 3, se slik ut:

if (test == "1"){ return "0"; }   else if (test == "2"){ return "1"; }   else if (test == "3"){ return "2"; }

Viktig: Trykk Åpne-knappen under Skript-vinduet for å utvide vinduet. Det er lettere å kode når du ser hele skriptet. Her er en slags oversettelse av koden:

  • Hvis sluttbrukeren velger alternativet med svarverdi 1 fortsetter prosessen i koblingen med retning 0.

  • Hvis sluttbrukeren velger alternativet med svarverdi 2 fortsetter prosessen i koblingen med retning 1.

  • Hvis sluttbrukeren velger alternativet med svarverdi 3 fortsetter prosessen i koblingen med retning 2.

Hvis sluttbruker ikke avgir noe svar faller prosessen som standard tilbake på retning 0.

Dobbeltsjekk at retningen til koblingene er korrekte ved å velge koblingene og sjekke Retning-nedtrekkslisten. Lagre kladden og med det har du en velfungerende multibetingelse i prosessen din! Prosessen med dette multibetingelse-eksempelet ligger vedlagt her: Workflow_multi_condition.cng. Prosessen kan importeres til Compose versjon 5.16.0 eller nyere.

Betingelsesskript med skjema som variabeltype

I de to forrige eksemplene knyttet vi kun variablene til spørsmålssvar. Du kan også knytte variablene til et helt skjema og referere til ulike spørsmål i skjema i betingelsesskriptet. I Variabler-menyen til høyre har variabelen orderValue type Skjema og er knyttet til skjemaet-aktiviteten med navnet FlowObject_3. Hvis du ønsker f.eks. å referere til spørsmålet med spørsmålsID Q2, kan du gjøre det med betingelsesskriptet under:

orderValue.Q2.answer.value == "1"

Variabelen orderValue representerer hele skjemaet, så du kan referere til alle spørsmålssvarene i skjemaet gjennom spørsmålsID-en deres.

Du er selvfølgelig ikke begrenset til kun én skriptvariabel, å kun referere til spørsmål med enkeltvalg etc., så sjekk ut veiledningen Betingelser - Kode for å se hvilke muligheter du har i Compose.