Opsætning af Parallelle flows
Med parallelle flows kan du effektivisere processen ved at udføre flere handlinger samtidigt såsom udfyldelser og dataafleveringer. Skræddersy flowet med betingelser for at styre dets retning, og optimer din arbejdsgang med denne ekstra funktion i Flowdesigneren.
Formål:
I denne vejledning finder du et indblik i logikken bag de parallelle flows. Ved udarbejdelse af et parallelt flow kan flowet opbygges og udvikles, så flere handlinger kan ske på samme tid. Handlingerne kan være udfyldelser eller dataafleveringer.
Det er også muligt at sætte betingelser for, hvilke retninger flowet skal tage. Et valg i blanketten kan sende blanketterne ud på en anden vej. Før man arbejder med parallelle flows, er det vigtigt at understrege, at der med frie muligheder også følger uhensigtmæssige måder at opsætte flowet på.
Sidst redigeret: 17/11/2025
Indholdsfortegnelse:
1. Hvorfor anvende parallelle flows?
1.1 Case: invitation til forældre
2. Forudsætning for at bygge et parallelt flow
3. Betingelser i parallelle flows
3.1 Betingelsestyper
4. Fejlbeskeder ved opsætning af parallelle flows
4.1 [Aktivitetsnavn] mangler >skal udføres efter< betingelse
4.2 På aktivitet: [aktivitet y] og [aktivitet z] er det muligt at udfylde samme blanketskabeloner på samme tidspunkt
4.3 Valideringsfejl: Aktiviteten Godkend ligger før et parallelt flow. Det er ikke muligt at have en godkenderaktivitet før flowet skilles ud
4.4 XFlow understøtter ikke godkend aktiviteter i parallelle grene af flowet
5. Opsætning af genveje/Dummies og sammenligninger som altid er sande
5.1 Opsætning af sammenligninger som altid er sande
5.2 Anvendelse af genveje/dummies
1. Hvorfor anvende parallelle flows?
I XFlow kan der være flere årsager til, at man vælger at bygge sit flow parallelt. I visse tilfælde kan den parallelle flowopbygning hjælpe med af effektivisere et flow, fordi det muliggør at flere aktiviteter kan ske på samme tid. I andre tilfælde anvendes parallelle flows, fordi der er behov for at flere scenarier kan udspille sig i samme flow. I disse tilfælde anvendes det parallelle flow til at sikre at flowet, uanset hvad der sker, har en vej fra start- til slutaktiviteten.
Parallelle flows kommer med en række muligheder for at håndtere enormt komplekse arbejdsgange via en struktureret flowstyring. Forud for opsætningen af det parallelle flow er det dog vigtigt, at du har taget stilling til, hvilken problemstilling det parallelle flow skal løse, samt hvordan du ønsker at gøre dette.
I det nedenstående kigger vi på en velkendt case, som belyser et scenarie, hvor det kan være nødvendigt at anvende et parallelt flow.
I denne case har en daginstitution udfyldt en række informationer om et barn. Efter daginstitutionens udfyldelse, skal flowet kunne invitere forældre ind, så de kan godkende daginstitutionens udfyldelse, inden at sagen journaliseres. Vi står dog med en udfordring: Vi ved ikke på forhånd, om der er 1 eller 2 forældremyndighedshavere. Det kræver altså, at vi bygger et flow som sikrer følgende:
Forælder 1 bliver altid inviteret ind (Vi antager at det er en forudsætning for udfyldelse af arbejdsgangen, at der altid er minimum 1 forældermyndighedshaver)
Forælder 2 skal inviteres ind, hvis der er to forældermyndighedshavere
Vi står altså med et flow, som skal kunne fungere fra start til slut, uanset om der er 1 eller 2 forældermyndighedshavere. Måden dette kan gøres på, er ved at lave et flow, hvor forælder 1 altid inviteres ind, men hvor forælder 2 kun inviteres ind i tilfælde af, at der er angivet, at der er to forældermyndighedshavere. Et sådant flow kunne se ud som følger:
1.1 Case: Invitation til forældre
Eksempel på parallelt flow
I ovenstående flow sikrer vi altså, at forældre 1 altid bliver inviteret ind, imens forælder 2 kun inviteres ind i tilfælde af, at vi har sagt ja til, at der er en anden forældermyndighedshaver. Dermed har vi, uanset hvad scenariet er, en vej fra start til slut.
I det følgende kigger vi nærmere på, hvordan det parallelle flow opsættes.
For at kunne opsætte parallelle flows, skal indstillingen for parallelle flows aktiveres. Når funktionen er slået til vil det være muligt at tilføje betingelser til de enkelte aktiviteter, så de har flere end 1. Dette er en grundlæggende forudsætning for at kunne sidestille aktiviteterne i flowet.
2. Forudsætning for at bygge et parallelt flow
Her slår man parallelle flows til:
3. Betingelser i parallelle flows
Når du aktiverer indstillingen Parallelt flow får du mulighed for at tilføje flere betingelser til en aktivitet. Som udgangspunkt vil betingelserne for en aktivitet se ud som følger:
I dette tilfælde kan vi se, at der er mulighed for at tilføje yderligere betingelser, samt tilføje betingelser af 2 forskellige typer.
Betingelser, når parallelt flow ikke er slået til
Her er der kun én betingelse af typen Skal udføres efter. Denne betingelse indikerer i hvilken rækkefølge aktiviteterne skal køre. Når vi ikke har aktiveret parallelt flow, vil alle aktiviteterne i flowet kun have 1 betingelse, som indikerer hvilken aktivitet de skal udføres efter. Når vi derimod aktiverer parallelt flow, får vi mulighed for at tilføje flere betingelser, samt ændre på de betingelser der allerede er opsat:
Betingelser, når parallelt flow er slået til
Der findes to betingelsestyper, som man kan ændre: “Skal udføres efter” og “Udføres efter feltværdi”
3.1 Betingelsestyper
3.1.1 “Skal udføres efter”
Betingelsestypen Skal udføres efter beslutter i hvilken rækkefælge aktiviteter skal køre. I nedenstående tilfælde vil aktiviteterne “Forælder 2” og “Forælder 1” have samme Skal udføres efter betingelse, hvilket for begge aktiviteter vil være “Medarbejder”. Det vil altså sige, at både “forælder 1” og “forælder 2” aktiviteten skal kunne igangsættes efter medarbejder-aktiviteten. Skal udføres efter-betingelsen anvendes dermed til at bestemme, i hvilken rækkefølge vores aktiviteter skal placeres i forhold til hinanden.
3.1.2 “Skal udføres efter feltværdi”
Den anden betingelse, der er mulig at sætte op, er ”Udføres efter feltværdi”. Denne betingelse anvendes kun i et parallelt flow og bruges til at sætte en betingelse for, hvad der skal til for at en aktivitet igangsættes. Når man tilføjer en skal udføres efter feltværdi-betingelse, vil den ligge sig som en blå bjælke over aktiviteten, som fortælle, hvornår aktiviteten vil igangsættes.
I nedenstående eksempel er der skal udføres efter feltværdi-betingelser på både “Forælder 2” og “Forælder 1”. “Forælder 1” har en betingelse som altid er sand, hvilket sikrer at forælder 1 altid bliver igangsat. Forælder 2 har en betingelse som kigger på, om der er sagt ja til at der er en anden forældermyndighed i en af de tidligere udfyldte blanketter. Dermed sikrer vi via Skal udføres efter feltværdi-betingelserne, at de parallelle aktiviteter bliver igangsat på de rigtige tidspunkter - eller slet ikke bliver igangsat, hvis betingelserne ikke er opfyldt.
Betingelser, når parallelt flow er slået til
4. Fejlbeskeder ved opsætning af parallelle flows
Når du opsætter et parallelt flow, vil du opleve at blive mødt af en række forskellige fejlbeskeder eller advarsler. Disse informationer skal sikre, at du er gjort opmærksom på potentielle fejlkilder i opsætningen af dit parallelle flow. I det følgende vil en række af disse fejlbeskeder blive gennemgået, så du ved hvordan du skal håndtere og udbedre disse fejl.
Eksempel på fejlen
I ovenstående eksempel kan vi se, at vi - efter at have flyttet aktiviteten “Forælder 2” op ved siden af “Forælder 1” ved brug af skal udføres efter-betingelsen - har fået en fejl. Hvis vi kigger på den stiplede linje kan vi se, at “Forælder 2” kører korrekt ned i “Slut”, men at der mangler en linje fra “Forælder 1” og til slut. Dette skyldes, at "Slut” fortsat kun har skal udføres efter-betingelsen “Forælder 2”. For at fikse fejlen skal vi altså sikre, at “Slut” både får skal udføres efter-betingelsen “Forælder 2” og “Forælder 1”:
4.1 [Aktivitetsnavn] mangler >skal udføres efter< betingelse
Når du har indsat en ny aktivitet, slået instillingen for parallelt flow til og givet den nye aktivitet samme skal udføres efter-betingelse som den ovenstående aktivitet, så begge aktiviteter sker efter den samme aktivitet, vil flowdesigneren ofte vise fejlen [Aktivitetsnavn] mangler >Skal udføres efter< betingelse. Denne fejl opstår, fordi aktiviteten efter de parallelle aktiviteter ikke kan nås af begge aktiviteterne.
Slutaktiviteten, når flowet giver en fejl
Slutaktiviteten, når betingelserne er korrekt opsat
4.2 På aktivitet: [aktivitet y] og [aktivitet z] er det muligt at udfylde samme blanketskabeloner på samme tidspunkt
Når der tilføjes nye aktiviteter som stilles op parallelt, kan du ske at møde fejlen På aktiviteterne: [aktivitet y] og [aktivitet z] er det muligt at udfylde samme blanketskabeloner på samme tidspunkt. Når du oplever denne fejl skyldes det, at det i det parallelle flow vil være muligt for to parter at udfylde den samme blanket på samme tidspunkt, hvilket ikke er tilladt i XFlow.
Et konkret eksempel kunne være ovenstående case, hvor 2 forældre potentielt skal udfylde 2 identiske blanketter på baggrund af medarbejderens udfyldelse om barnet. Til trods for at den blanket som skal udfyldes af forælder 1 og forælder 2 vil være identisk i sit indhold, er det nødvendigt at de får hver deres blanket at udfylde.
Det er derfor en vigtig huskeregel, at parter der skal udfylde på samme tid skal have hver deres blanketter at udfylde. Parter kan dog godt få vist de samme, tidligere udfyldte blanketter som read-only.
I den fejlende version vil både forælder 1 og forælder 2 have denne opsætning, hvor medarbejderens udfyldelse er readonly og der så er en fælles blanket til begge forældres udfyldelse
I en opsætning som ikke vil fejle, har hver forælder fået hver sin blanket. I praksis vil disse blanketter være identiske i deres indhold, men vi sikrer at begge forældre har hver deres blanket at udfylde
4.3: Valideringsfejl: Aktiviteten Godkend ligger før et parallelt flow. Det er ikke muligt at have en godkenderaktivitet før flowet skilles ud
I XFlow er det ikke muligt at have en godkenderaktivitet lige før parallelle aktiviteter. Hvis vi fortsætter på det ovenstående eksempel, hvor en medarbejder udfylder og vi derefter forestiller os, at en leder skal godkende før forældrene blev inviteret ind i flowet, så vil vi ikke kunne lægge dette som en godkenderaktivitet lige inden forældrenes parallelle udfyldelse:
Hvis man ønsker at fjerne denne fejl, vil det kræve at vi indsætter en aktivitet imellem “Leder godkendelse” og de parallelle aktiviteter. Dette kunne f.eks. være en dataaflevering med en bekræftelse på godkendelsen til lederen:
4.4: XFlow understøtter ikke Godkend-aktiviteter i parallelle grene af flowet
I XFlow er det ikke muligt at have en Godkend-aktivitet liggende parallelt ved siden af en anden aktivitet. Det vil sige, at man fra en parallel aktivitet ikke kan afvise tilbage til en foregående aktivitet.
5. Opsætning af genveje/Dummies og sammenligninger som altid er sande
Når vi opsætter parallelle flows i XFlow, bliver vi somme tider nødt til at lave nogle mindre workarounds for at få flowet til at forløbe som vi ønsker. I det følgende vil det blive beskrevet, hvornår vi skal bruge disse workarounds, samt hvordan man vil kunne sætte dem op.
Når vi opsætter disse workarounds er det i særlig grad vigtigt at vi foretager tests af flowet, så vi er sikre på at alt forløber som det skal.
5.1: Opsætning af sammenligninger som altid er sande
I XFlow vil det somme tider være nødvendigt at opsætte sammenligningsværdier, som altid er sande og som efterfølgende kan bruges som betingelser for, hvornår en aktivitet i et flow skal køre. Et eksempel kunne være i den allerede viste case, hvor 1 forælder (Forælder 1) altid skal inviteres, imens forældre 2 kun skal inviteres ind, hvis det er angivet at der er en anden forældermyndighedshaver.
Grunden til, at det i disse tilfælde er nødvendigt at lave denne sammenligning er, at der altid skal være skal udføres efter betingelser på alle aktiviteter der ligger parallelt, når der tilføjes en betingelse til én af aktiviteterne.
Lad os tage udgangspunkt i eksemplet med forælder 1 og 2:
Eksempel, hvor forælder 1 altid skal inviteres ind, imens forælder 2 kun skal inviteres ind hvis der er 2 forældermyndighedshavere
I ovenstående eksempel ønsker vi, at forælder 2 kun skal inviteres ind, hvis medarbejderen har svaret “Ja” til at der er to forældermyndighedshavere. For at sikre dette, sætter vi først en betingelse på aktiviteten “Forælder 2”. Herefter kan det synes intuitivt at undlade betingelsen for forælder 1, fordi man ønsker at forælder 1 altid skal inviteres ind. Dette kan vi dog ikke gøre i XFlow.
Grunden til dette er, at der altid skal betingelser på begge aktiviteter, hvis der først er sat en betingelse på 1 af aktiviteterne. Derfor vil vi i denne sammenhæng skulle lave en sammenligning som altid er sand med henblik på at sikre, at “Forælder 1” altid bliver inviteret ind.
Du kan lave en sammenligning som altid er sand på følgende måde:
Step 1: Opret et skjult facitfelt i en af dine blanketskabeloner med standardværdien 1.
Det er i princippet ligegyldigt hvor dette facitfelt placeres, da det er skjult og dermed ikke returnerer en synlig værdi
Step 2: Opret en sammenligning, som kigger på om dit skjulte facitfelt er = 1
Formålet med dette sammenligningsfelt er udelukkende at returnere en sand værdi. Der skal derfor ikke sættes noget ind under sandt felter. Fordi sammenligningen returnerer en sand værdi hvis facitfeltet er =1 og vi har sat facitfeltet til at holde standardværdien 1, vil sammenligningen altid være sand.
Sammenligning som kigger om værdien i facitfeltet er = 1 (det er den altid)
Step 3: Tilføj betingelsen til aktiviteten som altid skal køre som udføres efter feltværdi-betingelse
Anvend sammenligningen som altid returnerer en sand værdi som Skal udføres efter feltværdi-betingelse i dit flow for at sikre, at den pågældende aktivitet altid igangsættes
Du har nu sikret, at aktiviteten “Forælder 1” altid igangsættes!
Der kan være andre tilfælde, hvor det kan give mening at lave en sammenligning som altid er sand og bruge den som betingelse i dit flow. Dette kan bl.a. være i tilfælde, hvor vi har brug for at lave en Genvej igennem flowet, så vi sikrer, at flowet altid kan komme fra start til slut, uanset hvad udfaldet er. Dette vender vi tilbage til senere.
5.2: Anvendelse af genveje/dummies
I nogle tilfælde har vi behov for at kunne opsætte et flow, hvor det både skal være muligt at invitere flere parter ind OG sende flowet direkte til slut, baseret på et valg i udfyldelsen. Et sådan scenarie kunne eksempelvis være:
En medarbejder udfylder en arbejdsgang. Hvis vedkommende selv er leder, skal udfyldelsen bare sendes direkte til slut, så sagen kan blive journaliseret. Hvis medarbejderen derimod ikke er leder skal en leder ind og udfylde en del af arbejdsgangen inden arbejdsgangen bliver sendt til slut.
I denne case har vi altså brug for to veje i vores flow:
På den ene side skal vi kunne sende flowet forbi en leder i tilfælde af at det er en medarbejder der har udfyldt.
På den anden side skal vi kunne sende flowet direkte til slut, hvis det er lederen selv der har startet arbejdsgangen
For at imødekomme dette har vi brug for et parallelt flow med en Genvej, som sikrer at flowet kan sendes direkte til afslutning i tilfælde, hvor lederen ikke skal involveres. Denne Genvej opsætter vi på følgende måde:
Step 1: Opret en mail afsender dataaflevering som aldrig sendes afsted
Opsæt en dataaflevering af typen Mail afsender. Denne sættes under lederens trin:
Indstillinger på den genvejsdataafleveringen som sikre, at dataafleveringen aldrig sendes afsted.
Step 2: Placer dataafleveringen parallelt ved siden af leders trin
Vi skal nu placere genvejen ved siden af lederens trin for at sikre at flowet enten sendes til lederen eller igennem den tomme genvejsdataaflevering og ned i slut-aktiviteten. Dette gør vi ved at aktivere parallelt flow og gøre skal udføres efter-betingelsen til den samme som for “Leder”-aktiviteten.
tilføj dataafleveringen til flowet
Gå ind i indstillerne for dataafleveringen. Her sættes dataaflevering aktiv til fast værdi og fluebenet fjernes. Dette vil sige, at dataafleveringen aldrig vil blive igangsat. Indsæt nu en tilfældig beskedskabelon og udfyld en fast mailadresse.
Ryk “Genvej” op ved siden af leder-aktiviteten ved at give den samme “skal udføres efter”-aktivitet - I dette tilfælde “Udfylder”-aktiviteten, som ligger i start
Step 3: Tilføj Skal udføres efter feltværdi-betingelser på de parallelle aktiviteter
Det sidste vi mangler er nu at opsætte skal udføres efter feltværdi-betingelser for begge de parallelle aktiviteter, så det fremgår i flowet, hvornår hvilken aktivitet skal igangsættes. I dette tilfælde ligger der et Ja/nej-spørgsmål i udfylderens del (start-aktiviteten), hvor der vælges, om vedkommende er leder eller ej. Hvis der svares “ja”, skal flowet sendes ned i genvejen og videre ned i slut. Hvis der svares “Nej” skal flowet sendes til udfyldelse ved en leder, inden den går i slut:
Tilføj skal udføres efter betingelser til de to parallelle aktiviteter for at sikre, at flowet løber den rigtige vej - Enten forbi lederen eller direkte i slut
Du har nu oprettet en arbejdsgang med et parallelt flow, som både kan gå direkte i slut og som kan sendes forbi en anden part til efterudfyldelse.
Sæt standardværdien i facitfeltet til 1 og skjul facitfeltet
Sammenligning som altid er sandt sat på aktiviteten