1. Introduktion #
Vejledningen tager udgangspunkt i KMD SAP, dog vil meget af denne viden kunne bruges generelt til at arbejde med SAP-applikationer.
Grundet mængden af genvejstaster, er det nemmest at navigere rundt i SAP via Send Key-actions. Det er dog muligt at lave controls som virker.
Navn | Note | Link |
SAP | Generelt hjælp | https://help.sap.com/docs/ |
SAP | Language codes | https://help.sap.com/docs/translation-hub/sap-translation-hub/supported-language-codes |
2. Opmærksomhedspunkter når der arbejdes i SAP #
2.1 Registreringsnøgler til layout #
Hvorimod man kan arbejde med CPR, er det bedst at arbejde med medarbejdernummer. Dette da system bagi, vælger et vilkårligt medarbejdernummer såfremt et CPR returnere flere. Yderligere er det påkrævet, at filer til personalemappen eksempelvis, reelt ligger på den stilling som dokumenterne drejer sig om. Det er sjældent at medarbejdere har mere end et, dog er det ikke ualmindeligt som SOSU, da eksempelvis.
Det kan være en fordel at køre et powershell script i hver kørsel, der sætter alle registreringsnøgler, så det altid er ens for robotterne. Yderligere slår den til at SAP skal bruge Windows-vinduer, når der skal vælges filer til upload. Dette da SAP ellers 50/50 vælger imellem sin native og windows vindue til dette formål, hvilket er umuligt at kode udenom ellers. Når SAP opdateres nulstiller den typisk disse indstillinger, som ellers manuelt skal sættes op igen ved hver robot, såfremt man ikke kører scriptet.
“# Sætter SAP-indstillinger i registeringsdatabasen (Scripting).
REG ADD ‘HKCU\SOFTWARE\SAP\SAPGUI Front\SAP Frontend Server\Security’ /f /v UserScripting /t REG_DWORD /d 1 | Out-Null
REG ADD ‘HKCU\SOFTWARE\SAP\SAPGUI Front\SAP Frontend Server\Security’ /f /v WarnOnAttach /t REG_DWORD /d 0 | Out-Null
REG ADD ‘HKCU\SOFTWARE\SAP\SAPGUI Front\SAP Frontend Server\Security’ /f /v WarnOnConnection /t REG_DWORD /d 0 | Out-Null
REG ADD ‘HKCU\SOFTWARE\SAP\SAPGUI Front\SAP Frontend Server\Scripting’ /f /v ShowNativeWinDlgs /t REG_DWORD /d 1 | Out-Null
REG ADD ‘HKCU\SOFTWARE\SAP\General\Appearance’ /f /v SelectedTheme /t REG_DWORD /d 1 | Out-Null
REG ADD ‘HKCU\SOFTWARE\SAP\General\Appearance’ /f /v SelectedFallbackTheme /t REG_DWORD /d 1 | Out-Null
REG ADD ‘HKCU\SOFTWARE\SAP\General\Appearance’ /f /v CorbuIcon /t REG_DWORD /d 1 | Out-Null”
Næsten alt er slået til i selectors som udgangspunkt. Man kan dog slå det meste fra, og bruge den sidste med et langt ID. Den nedarver nemlig hele stien, og derfor er der ikke behov for mellemleddene. Den første er sidste element i rækken, som nedarver meget fra de tidligere. De to sidste elementer er unique identifier på den knap vi reelt leder efter.
2.2 Send keys navigering #
Benytter man sig af Send Keys, skal man være opmærksom på at nogle controls på siden, kan skifte mellem Enabled og Disabled, hvilket eksempelvis kan ændre på mængden af Tabulator tryk man eventuelt skal bruge. En løsning på dette er at bruge en Get Details of Element in Window, og under Advanced, tjekke på Enabled. Det giver en variabel med true og false, man så kan bygge en if-statement op med.
2.3 Indstillinger så robotten kan køre #
For at benytte RPA i SAP, skal disse indstillinger som minimum indstilles, se eventuelt 1.1. for et powershell-script som gør det samme:
2.4 Skift til medarbejdernummer søgning #
Vær opmærksom på at man forsat kan søge efter CPR efter skiftet ved at skrive = foran et cpr i søgefeltet, selvom SAP står til medarbejdernummer. Eksempelvis =0101011122. Første gang man benytter denne funktionalitet, skal man vælge en filtrering. Se bunden af vejledning for yderligere information.
Naviger ind til System – Brugerdefinitioner – Egne data
Under Parametre find HR_CCURE_PIDSL skriv – og herefter tryk på F11 for at lukke vinduet.
Første gang man bruger denne funktionalitet, bliver man bedt om at begrænse værdiområdet via en popup. Man kan vælge forskellige visninger, et eksempel er Person-ID, hvor man kan se vedkommendes medarbejdernumre og navn. Vælg fanen øverst, skriv et vilkårlig CPR ind og tryk på fluebenet.
Søgning vil vise dette fremover når man sætter =<personnummer> i søgefeltet, indtil der eventuelt sættes en anden filtrering op.
3. Upload filer til Personalemappen Skabelon #
Det er muligt at lave en dynamisk skabelon til at uploade filer til personalemappen. Heri kan man lave sin standard kode, debugging m.m. Det meste kode til formålet er 100% det samme hver gang, måske foruden hvor man får data fra. Det vil være i personalemappen, at man skal lave to dynamiske selectors der vælger mappen, og menupunktet. Disse kan være forskellige, alt efter hvad der skal uploades. Vær opmærksom på, at det tager lang tid(op til 30 sekunder) for en robot at klikke på disse to af uforklarlige årsager.
Selector til mappe per juni 2024 (Fravær/nærvar på billedet):
Tree[Id=”wnd[0]/usr/cntlCLFRM_CONTAINER/shellcont/shell/shellcont[0]/shell/shellcont/shell/shellcont[2]/shell/shellcont[1]/shell”] TreeItem[Name=”%SAPMappe%“]
Selector til underpunkt (Ferie/andet fravær på billedet):
Tree[Id=”wnd[0]/usr/cntlCLFRM_CONTAINER/shellcont/shell/shellcont[0]/shell/shellcont/shell/shellcont[2]/shell/shellcont[1]/shell”] TreeItem[Name=”%SAPMappe%”] > TreeItem[Name=”%SAPMappePunkt%“]
Fra koden hvor der kan tilføjes ekstra cases.
Fra min dokumentation af koden:
Koden er delt op i følgende subflows:
Main: Dette er hovedfunktionen, der orkestrerer hele processen. Herfra kaldes andre funktioner i rækkefølge, for at håndtere forskellige dele af arbejdsgangen.
00.10 Initialize: Forbereder miljøet ved at opsætte nødvendige variabler, mapper og logdetaljer. Heri findes variabler til debugging og logning til SQL, som skal overskrides til nyt brug.
99.99 Exit: Håndterer oprydningen og logningen i slutningen af processen, herunder afsendelse af fejlrapporter, hvis det er nødvendigt.
Global Error Handler: Giver en mekanisme til at fange og logge fejl, der opstår under udførelsen af automatiseringen, som ville stoppe processen helt fra at afvikle. Dette sikrer, at eventuelle problemer registreres, og en fejlmeddelelse sendes til udvikler.
10.10 – Hent mail: Sat op til at hente alle mails og vedhæftninger fra <postkasse> som kommer fra XFlow.
10.20 – Log på SAP: Logger på SAP og åbner PA30 menuen.
20.10 – Loop: Kører hvert nedenstående subflow i rækkefølge.
20.20 – Hvilken blanket: Ud fra en Switch er der opsat cases til hver blanket om hvad der skal gøres. Heri udfyldes variablerne så de passer, da disse er det eneste der skifter i processen. Yderligere er der en default case, som springer til næste mail, såfremt den ikke rammer de prædefinerede.
20.30 – Lav variabler fra data: Som standard hentes CPR fra XFlow blanketten, og bruges efterfølgende til at slå medarbejdernummer/datoer op i Løn-tabellen. Såfremt der er flere medarbejdernumre, sendes en mail til procesejer om manuel behandling.
20.40 – Upload fil til personalemappe: Uploader filen til den valgte personalemappe. Skriver eventuelt til procesejer omkring manuel behandling, såfremt vedkommende den slår op er slettet.
20.50 – Afslut behandling: Flytter mailen til givne sti i postkassen Behandlet.