1. GDPR Compliance #
Desktop flows overholder som udgangspunkt ikke GDPR når de køres Attended eller Unattended, grundet det debugging data der gemmes i skyen. Disse indeholder blandt andet screenshots, og variabel indhold som standard. Nedenfor er beskrevet hvordan man kan gøre det GPDR compliant. Hvis man forsat ønsker noget af dette information til debugging, kan man i stedet ligge det lokalt på maskinen.
Den nemmeste løsning er at lave en On block error i sit Main subflow. Den skal i error handleren køre et subflow, som laver en Take screenshot action, og eventuelt andet debugging man har brug for.
1.1 Screenshots #
En af grundene er at der tages screenshots til debugging, som opbevares uendeligt, og kan indeholde personfølsomme data.
Af hensyn til GDPR, bør man derfor slå screenshots fra til loggen. Dette gøres fra Power Automate, Properties og fjern flueben i Add screenshot to logs som vist. Man kan eventuelt selv lave Error Handling der tager et billede, og gemmer lokalt på maskinen, hvis man forsat ønsker dette.
1.2 Sensitive variabler #
I samme log om processen fejler eller ej, kan man se input og output til enhver action. Disse kan eksempelvis indholde personfølsom data, credentials eller andet man ikke ønsker logget, som så bliver opbevaret uendeligt i skyen. Man kan markere variabler som værende sensitive, og disse vil blive undtaget fra at blive logget. Man klikker blot på ikonet ud fra variabelnavnet.
I debug loggen, vil indholdet af value blive til “<Følsomme værdier>” i stedet.
2. Bugs og lignende #
2.1 Bug Microsoft Edge – KMD Single Sign-On | Eventuelle andre redirect links #
Hos Brønderslev Kommune har vi en SSO løsning, som automatisk logger på blandt andet KMD Opus Rollebaseret Indgang, via et link der redirecter et par gange, og automatisk udfylder login informationer. Microsoft Edge når dog i nogle tilfælde at attache på det første link, og stopper den fra at logge automatisk ind, og kaster en Exception ud på den pågældende Launch Edge action.
En løsning på dette kan se således ud i koden, hvor vi åbner linket, under Exception i første Launch, sætter vi den til at Continue flow run. Vi kan herefter vente et par sekunder, så den er logget ind, og så attache på foregrunds vinduet i Edge.
Det skal noteres at den forsat kan finde på ikke at attache ind i mellem, selvom den står i det rigtige skærmbillede. Det sker dog sjældent, og I sådanne tilfælde kan processen normalt bare startes igen, og så virker det.
2.2 If window contains #
I modsætning til almindelig if actions, så skal der i en if window contains sættes continue flow run til under errror handling. Gøres dette ikke fejler koden, som hvis robotten prøver at klikke på en knap som ikke eksisterer. Noter at det er den eneste if-blok man kan sætte error handling på, resten agere som normalt uden problemer.
Findes knappen ikke springer den til end, og findes knappen så vil den gå ind i if-blokken.
2.3 Håndtering af variable indexing fejl #
Der findes ikke debugging til Set Variable-actions, hvilket gør at processer crasher, hvis man forsøger at sætte en værdi som ikke eksisterer. Dette gælder blandt andet nedstående scenarier:
- en datarækkekolonne med et kolonnenavn/indeks, der ikke eksisterer
- en datatabel med et rækkeindeks, der er uden for rækkevidde, eller et kolonnenavn/indeks, der ikke eksisterer
- en liste med et indeks, der er uden for rækkevidde
- et objekt med en nøgle, der ikke findes i objektet
En løsning er at bruge On block error-actions, og slå Capture unexpected logic errors til. Dette kan fange sådanne fejl.
Yderligere kan man prøve at mitigere problemet, ved først at tjekke om der er data. Et SQL query kommer ud som en datatable, og en extended property i denne er RowsCount. Den kan vi matche på først, og hvis der er mere end 0, kan man så forsøge sig at hive data ud efterfølgende. Har man ikke har dette step, så crasher den ved samlingen af SQLQuery[0][0] hvis der ikke er minimum 1 række tilgængelig (som note kan man heller ikke tjekke om Query er tom/blank, da kolonnerne tæller med, og derfor ikke vil være dette altid selvom rækkerne er 0).
2.4 Cannot create new session to execute unattended run / Der kan ikke oprettes en ny session til udførsel af uovervåget kørsel #
Problemet kan opstå når et desktop flow melder færdig til et cloud flow, men ikke får logget brugeren af. Dette giver så fejlen næste gang et flow skal afvikles på maskinen, da en bruger forsat er logget ind på denne.
Man kan forsøge at logge brugeren af maskinen, og genstarte denne efterfølgende. Samtidigt kan man sætte den i maintenance mode først, og eventuelt fjerne de ting som står i dens kø, indefra https://make.powerautomate.com i sit miljø.
Hvis det forsat ikke virker, er det typisk noget på brugerprofilen. Man kan slette denne helt fra maskinen via nedenstående vejledning, genstarte, og så prøve igen.
Log på computeren som administrator, åbn System og herefter Avancerede systemindstillinger.
Under Avanceret vælg Indstillinger… under Brugerprofiler. Marker den profil der skal slettes og tryk på Slet – OK – OK og log herefter af PC’en, og få brugeren til at logge på igen.
3. Generelt #
3.1 Sæt skærmopløsning 1920×1080 til robot kørsel #
Naviger til mappen – C:\Program Files (x86)\Power Automate Desktop
Åbn UIFlowService.exe.config filen, så der kan ændres i teksten (notepad++ kan anbefales)
Sæt ScreenDefaultResolutionEnabled til true, og ændr eventuelt I Width, Height og Scale hvis disse ikke står som vist nedenfor.
Genstart maskinen, herefter skulle det virke.
3.2 Indstil sprog i Power Automate til engelsk #
I online versionen tryk på tandhjulet øverst i højre hjørne, og herefter Vis alle indstillinger for Power Automate.
I det nye vindue vælg English under visningssprog og herefter United Kingdom under landestandard.
På Windows maskiner, under Sprog tilføj English (United Kingdom), log af og på efterfølgende. Drag and drop denne øverst på listen, sæt Windows sprog til English (United Kingdom) og Regional format til Dansk. Sidstnævnte er i forhold til datoer, hvordan tal skrives (komma på dansk, punktum på engelsk), og hvordan PADs variabler reagerer på dette.
Som eksempel, vil man indberette 206,46 kr til det ene eller andet system, vil PAD sende det som 206.46 kr hvis regional format står til engelsk, da tal-variabler nedarver formattet via Windows sproget. I KMD SAP kan dette ikke indberettes eksempelvis, da det kun tager komma-tal. Man kan godt komme udenom det i koden, ved at lave tallet om til tekst, lave en parse og erstatte punktum med komma. Pointen er at man skal være obs på det, hvis man skifter Windows-sproget.
Alternativt kan man lave en reg-fil som gør dette automatisk, man kan køre på PC’en i stedet. Dette kræver en genstart efterfølgende.
Vær opmærksom på at reg-nøgler kræver man ved hvad man laver, hvis man ønsker at lave en til formålet. Nedenstående er et eksempel.
Copy-pasteable
[HKEY_CURRENT_USER\Control Panel\International\User Profile]
“Languages”=hex(7):65,00,6e,00,2d,00,55,00,53,00,00,00,64,00,61,00,00,00
“ShowAutoCorrection”=dword:00000001
“ShowTextPrediction”=dword:00000001
“ShowCasing”=dword:00000001
“ShowShiftLock”=dword:00000001
“WindowsOverride”=”da”
[HKEY_CURRENT_USER\Control Panel\International\User Profile\da]
“CachedLanguageName”=”@Winlangdb.dll,-1088”
“0406:00000406″=dword:00000001
[HKEY_CURRENT_USER\Control Panel\International\User Profile\en-US]
“CachedLanguageName”=”@Winlangdb.dll,-1121”
“0409:00000406″=dword:00000001