1. Introduktion #
XFlow er web baseret software, som bruges til at lave digitale blanketter, og arbejdsgange til disse. Softwaren er i konstant udvikling, og der kommer nye features løbende. XFlow har en fremragende support side, hvor man kan finde dokumentation og vejledning til stort set alt. Af denne årsag bliver ting ikke beskrevet dybdegående i denne vejledning. Der vil dog findes et hurtigt overblik over de store ting, og et par tips og tricks til at udnytte noget funktionalitet.
Det hurtige overblik:
- Blanketskabeloner – Oprettes via en formular, hvor der findes en god samling elementer hertil.
- Arbejdsgangsskabeloner – Opret et flow, der styrer hvordan skabeloner bruges. Heri kan man have dataafleveringer, og godkendelsestrin, som en del af flowet.
- API adgang
- Integrationer til andet software heriblandt – Acadre, SBSYS, Navision, Prisme, Pensopay m.m.
- Mulighed for betaling ved blanketudfyldelse via Pensopay
Navn | Note | Link |
XFlow | XFlows hovedside | https://xflow.dk/ |
XFlow Support | Release notes, manualer, erfa materiale, webinarer m.m. | https://support.xflow.dk/ |
Pensopay | Xflow har en integration til Pensopay, som gør det muligt at modtage betaling via blanketter | https://pensopay.com/ |
1.1 GDPR #
Da der kan være personfølsomme oplysninger i blanketter, er disse omfattet af GDPR. I arbejdsgangen under Indstillinger og Generelt, kan man indstille hvornår blanketter skal slettes fra XFlow. Af samme årsag bør man overveje arbejdsgange med journalisering, som en del af det at lave blanketter. RPA-robotter kan eventuelt gøre dette automatisk via dataafleveringer, som kan sendes til robotternes postkasser med PDF vedhæftet.
2. Generelt #
2.1 Kort fortalt #
Hvis man har behov for at slette test-blanketter, kan man dette fra Brugerdelen, ved søge denne frem og trykke Slet blanket, såfremt man har rettighederne til det. Herfra kan man også hente blanketten som PDF, og eventuelle filer der er vedhæftet på den.
I meget sjældne tilfælde, af den ene eller anden årsag, så får PDF blanketten dette indhold i en dataaflevering. Jeg formoder det er servicen som omdanner blanketten til pdf, som er ude af drift i disse tilfælde. Man kan altid søge en blanket frem, og hente en ny pdf, hvis uheldet er ude. Bruger man blanketter i RPA, kan det være en idé at bygge error handling ind på dette.
2.2 Flettefelt #
Flettefelter kan bruges til at indsætte værdier (system, felt, fast), i eksempelvis mailskabeloner ved dataafleveringer. Det er nemmest at gøre, hvis man har både mailskabelonen og arbejdsgangen åbent samtidigt.
I mailskabelonen udfylder man som normalt, og indsætter felterne hvor de skal være. De står som [MailDatabehandlerFletteFeltX] på billedet.
I arbejdsgangen under dataafleveringen udfyldes hvilken værdi der hører til hvilket felt. I dette tilfælde tager vi feltværdier fra elementer i blanketskabeloner, som er en del af arbejdsgangen. FletteFelt1 er [MailDatabehandlerFletteFelt1] i mailskabelonen.
Resultatet fra dette eksempel ser således ud i mailen.
For at gøre det mere overskueligt, kan man reservere nogle flettefelter specifikt til det samme altid. Det kan gøre det mere overskueligt, og lettere at læse/forstå på tværs af mange skabeloner.
Flettefelt | Til |
1 | Emnefelt i mail |
2 | Godkender (fra godkender aktivitet) |
3 | Leder |
4 | Person (Alt andet end en godkender/leder, og kun udfylder såfremt de faste felter ikke dækker behovet) |
5 | Udfyldt på vegne af (hvis ikke blanketten handler om opstarter) |
6 | Fagsystem |
7 | Besked i indhold* |
8 | Reserveret til fremtidig brug |
9 | Reserveret til fremtidig brug |
10 | Reserveret til fremtidig brug |
2.3 JSON-fil til RPA #
JSON bliver bygget ud fra de blanketter som er en del af en arbejdsgang.
Normalt vil man læse indholdet af JSON-filen, og herefter konvertere den til et custom object, da robotten bedre kan arbejde med dette. Under blanketter findes de udfyldte blanketter med værdier.
Man skal være obs på at de kommer i omvendt rækkefølge af udfyldelsen.
Hver enkelt blanket har dette overordnet omkring sig.
Elementerne kommer i samme rækkefølge som i blanketskabelonen.
Feltnavnet på elementet er identifier i JSON-filen, og values er hvad der er udfyldt. Hvis man har et element, som kan have underelementer (children), så vil de også fremgå.
Markeret i grøn vil være den udfyldte af de to valgmuligheder i eksemplet. I lilla er der en container, som indeholder de nye elementer. Denne kan man ikke selv navngive og er autogenereret. Dennes children, markeret i blå, indeholder de faktiske elementer som er vist. Yderligere kan man have flere elementer som har underelementer, man så kan navigere videre ned i.
Ud fra JSON filen kan man også iterere delblanketterne, hvis man eksempelvis har sat en tringuide op. Det kan eksempelvis se ud som nedstående, der differentiere mellem to blanketter (en til bestilling som har en tringuide og en til ændringer som ikke har), som modtages i en fællespostkasse.
3. Blanketskabeloner #
3.1 Kort fortalt #
Blanketskabeloner bygges ved at drag-and-drop felter ind på Indhold. Hver enkelt felt har standard muligheder såsom påkrævet, infotekst, og feltnavn. Sidstnævnte er især vigtig, hvis man ønsker at lave flettefelter eller bruge JSON-filer i sin dataaflevering. Det gør det væsentligt nemmere, at finde hvad man søger efter ved at navngive noget sigende.
Yderligere kan man under Preview se hvordan blanketten ser ud, og udfylde / teste om den virker efter hensigten.
3.2 Facit-felt #
Facit-felter bruges til at lave simple udregninger i blanketten. Vær opmærksom på, hvis man deler sine blanketter op i dele, og samler i en tringuide, så virker udregninger forsat. Et facit-felt kan bestå af beregningsnøgle (det kan tænkes som en liste med værdier) og beregningsfacitnøgle som bruges i samarbejde med en beregningsoperator til udregninger.
En beregningsnøgle kan tænkes som en liste, som har tal og decimaler i sig.
Når en udregning skal laves, sætter vi beregningsnøglen ind som en beregningsfacitnøgle med en given beregningsoperator. Herefter ligges alle tal sammen fra listen med denne operator. Man skal af den årsag være særligt opmærksom på, at splitte sine udregninger op i flere beregningsnøgler, hvis der skal bruges forskellige beregningsoperatorer.
Det kan eventuelt se således ud, hvor man under Generelt har mulighed for, at sætte en standardværdi i feltet.
Hvis man ville udregne mødediæter for medarbejdere, skal bruge det beløb de får udbetalt per møde, samt antallet af møder de er til. Herunder er der bygget en blanket til eksemplet. Vi laver en beregningsnøgle, som hedder DIÆT, og samler beløbet samt antal møder i.
For at finde totalantallet af møder, er vi dog nødt til at lave en mellemregning der finder disse. Vi har i tabellen lavet en beregningsnøgle som hedder ANTAL_DIÆT. For at regne denne sammen, kan den sættes ind, som en bereningsfacitnøgle med en + operator. Herefter får vi totalantallet, og den kan vi så gemme i beregningsnøglen DIÆT.
Bereningsnøglen DIÆT indeholder nu to værdier – Beløbet og totalantallet af møder. Disse kan ganges sammen efterfølgende for at få totalbeløbet. Da dette er et slutresultat, behøver ikke gemme værdien i en beregningsnøgle. Skulle man bruge beløbet videre til andre udregninger, skal denne dog gemmes forsat.
3.3 Multivælger- og Sammenligningsfelt #
Der kan være tilfælde hvor en multivælger har mange valg, hvor nogle valg skal vise samme elementer efterfølgende. Det kan både være for radioknapper såvel som afkrydsningsfelter. For at gøre vedligehold nemmere, og ikke skulle copy-paste en masse, kan man bruge sammenligningsfelter. Dette kan også gøre det nemmere for RPA-robotter senere, hvis de skal læse en JSON-fil, så man kan spare på koden til logik.
Et sammenligningsfelt kan eksempelvis se således ud, hvor vi indsætter elementerne under Sandt felter.
Selve Opsætning kan se således ud, hvor vi ud fra valget i multivælgeren viser elementerne.
3.4 Sammenligningsfelt i delblanketter spredt på aktiviteter #
Sammenligningsfelter virker som udgangspunkt ikke direkte mellem delblanketter, som bliver spredt over flere aktiviteter. Et eksempel herunder er start aktiviteten hvor vi udfører Del 1, og Udfylder aktiviteten hvor vi udfylder del 2. Man kan ikke sammenligne felter i Del 2 fra Del 1 uden at den giver en falsk værdi altid. Man kan dog bruge en delblanket, hvor man yderligere sætter sammenligningsfelter op, som vises (ikke fysisk, de ligger bagi koden) på begge aktiviteter under et vilkårligt trin. Yderligere skal sammenligningsblanketten altid stå til Vises i begge aktiviteter (det er muligt at sætte Readonly til i Udfyld trinnet i dette eksempel, da sammenligningen sker med et felt fra Del 1).
Herunder indholdet af sammenligningsblanketten. Vær opmærksom på at vi kun kan føle på sandt / falsk værdier i del 2, og i tilfælde med multivælgere er nødt til at lave en per mulighed, såfremt der senere skal vises elementer specifikt til disse punkter.
4. Arbejdsgangsskabeloner #
4.1 Kort fortalt #
I Flowdesigner kan man opbygge selve flowet med aktiviteter (Udfyld, godkend, dataaflevering). Som notits vil der altid være en Start (udfyld) og Slut (dataaflevering) aktivitet. I godkender trinnet kan man også vælge hvad der skal ske, hvis en blanket bliver afvist. Eksempelvis som nedenstående, hvor den ryger tilbage til udfylder trinnet.
4.2 Tringuide #
En tringuide kan bruges, hvis man laver delblanketter i stedet for en stor. Dette gør det mere overskueligt for udfylder, og giver mulighed for at lave stopklodser tidligt, såfremt nogle ting mangler eller ikke er udfyldt korrekt.
Under Flowdesigner klik på den aktivitet som skal have en tringuide, og herefter under Indstillinger aktiver Tringuide og klik på denne.
Herfra kan man enten lave et trin per blanketskabelon eller selv oprette. Efterfølgende tilknytter man trin på hver enkelt blanketskabelon (viser dem som er tilknyttet arbejdsgangen i forvejen).
Yderligere ved at klikke på blyanten ud for trinnet vælge om, der skal være en betingelse for, at et trin bliver vist. Dette er ud fra valg i felter Ja/Nej, Multivælger, og Sammenligning.
4.3 Dataaflevering vedhæft filer #
I dataafleveringer kan man vedhæfte filer, eksempelvis i Mail afsender. Heri kan man vedhæfte en pdf af den udfyldte skabelon, eventuelle uploade dokumenter fra blanketten, og en JSON-fil at blanketten (bruges primært til RPA-formål).
5. Beskedskabeloner #
Beskedskabeloner kan oprettes under Organisation – Beskedskabeloner.
5.1 Infomailskabelon til aktivitet #
Af hensyn til borgere som kan være fritaget fra digital post, har vi valgt ikke at bruge infomail, da disse så vil fejle og stoppe en arbejdsgang, da infomail ikke kan slås til på en slutaktivitet. Det er derfor mindre problematisk hvis en dataaflevering fejler i sin slutaktivet, da resten af arbejdsgagen er lavet i det tilfælde.
Vær opmærksom på at infomail sendes til den beskedkanal man har valgt under Organisation – Indstillinger – Besked.
Der findes tre muligheder
- E-mail som kun virker såfremt man registrere emails på interne og eksterne brugere.
- Digital Post bruges kun til regionerne.
- Post til ServicePlatformen tilsvarer digital post i kommunerne.
I arbejdsskabelonen under Flowdesigner – Indstillinger – Infomail kan man sætte automatiske mails op, som sendes efter aktiviteten afsluttes.
Selve vinduet der skal udfyldes ser således ud.
Herunder er eksempler på standard mailafleveringer.
5.2 Mailaflevering #
En mailaflevering kan sættes op som en dataaflevering aktivitet eller som standard altid i Slut aktiviteten. Tryk på Tilføj dataaflevering og vælg fra Mail afsender. Hvis der skal sendes til e-Boks kan man bruge en Digitalpost afsender i stedet. Det næste trin vil være meget ens.
Åbn Mail afsender, og herefter kan man udfylde MailTemplate med den skabelon man ønsker at bruge. Yderligere kan man vedhæfte filer, eksempel en PDF af blanketten.
Hvis man mail eksempelvis kun skal sendes, hvis der er krydset noget af i blanketten, kan man lave DatabehandlerAktiv om til en felt-værdi, og pege på den valgmulighed som skal trigger den.