Udtrække data fra SAP GUI-brugergrænsefladen med Power Automate
Når du opretter eller opdaterer poster i SAP, genereres der statusoplysninger, som inkluderer de netop genererede post-id'er. SAP viser disse statusoplysninger nederst på SAP-brugergrænsefladen.
Her er et eksempel på en statusmeddelelse, som SAP viser, når du har oprettet SAP PM-meddelelsen.
Disse statusoplysninger kan være nyttige i forbindelse med trin i automatiseringsprocessen senere. Du skal derfor udtrække og tildele disse statusdata til variabler til downstream-databehandling.
Det kan du gøre på flere måder, afhængigt af din udviklingsstrategi. De to fremgangsmåder er teknikker med lav kode eller pro-kode.
Fremgangsmåde med pro-kode
Ved hjælp af pro-kode-fremgangsmåden bruges VBScript-kommandoer til at udtrække oplysninger fra SAP-elementer på brugergrænsefladen.
Hvis du vil udtrække SAP-statusdata, for eksempel en nyoprettet indkøbsrekvisition eller numre på beskeder om vedligeholdelse af fabrikken, skal du have adgang til brugergrænsefladeelementet på statuslinjen.
Sådan får du adgang til brugergrænsefladeelementet på statuslinjen.
session.findById("wnd\[0\]/sbar/pane\[0\]").Text
Lad os gennemgå hele oplevelsen. Vi optager, hvordan du opretter en SAP PM-meddelelse og ændrer den kode, der er genereret, så det nyoprettede id returneres til Power Automate Desktop.
Hvis du aldrig tidligere har hørt om SAP's PM-meddelelse, eller hvis du ikke har adgang til den, kan du tage det helt roligt. Du kan stadig forstå de trin, der skal udføres for at udtrække disse data til dit eget scenarie.
Her er trinnene:
Bekræft, at alle SAP GUI-scriptkonfigurationer er udført.
Åbn SAP-logon, og vælg det SAP-system, du vil logge på.
Vælg Tilpas lokalt layout (Alt+F12), og vælg derefter Optagelse og afspilning af script...
Vælg Flere.
Angiv den filsti og det filnavn, hvor de hentede brugerinteraktioner skal gemmes, under Gem til.
Vælg knappen Optag script for at starte processen til optagelse af skærmbilleder. Alle interaktioner, du nu udfører i SAP, registreres som VBScript-kommandoer, der kan gentages.
Bemærk
Hvis du har registreret trin og gemt i denne fil før, skal du bekræfte, om du vil overskrive filen.
Angiv transaktionskoden IW21, og vælg derefter Enter.
Angiv Meddelelsestype, og vælg derefter Enter.
Udfyld Kort tekst, Planner-gruppe, Primær WorkCtr og andre felter, du skal bruge.
Vælg Gem (Ctrl+S) på værktøjslinjen.
Når du er tilbage i Opret PM-meddelelseførste formular kan du se en ny statusmeddelelse på statuslinjen i nederste venstre hjørne af brugergrænsefladen.
Vælg Afslut (Skift+F3) på værktøjslinjen, og stop derefter optagelsen.
Du kan også logge af SAP og lukke alle SAP-vinduer.
Lad os undersøge den genererede VBScript-kode:
Skærmbillede af VBScript, der er genereret under oprettelse SAP-meddelelsen If Not IsObject application Then Set SapGuiAuto GetObject quot SAPGUI quot Set application SapGuiAuto GetScriptingEngine End If If Not IsObject connection Then Set connection application Children 0 End If If Not IsObject session Then Set session connection Children 0 End If If IsObject WScript Then WScript ConnectObject session quot on quot WScript ConnectObject application quot on quot End If session findById quot wnd 0 quot maximize session findById quot wnd 0 tbar 0 okcd quot text quot IW21 quot session findById quot wnd 0 quot sendVKey 0 session findById quot wnd 0 usr ctxtRIWO00 QMART quot text quot M2 quot session findById quot wnd 0 usr ctxtRIWO00 QMART quot caretPosition 2 session findById quot wnd 0 quot sendVKey 0 session findById quot wnd 0 usr subSCREE shortened command quot text quot My Notification Short Text quot session findById quot wnd 0 usr tabsTAB_ shortened command quot text quot 010 quot session findById quot wnd 0 usr tabsTAB_ shortened command quot text quot 0001 quot session findById quot wnd 0 usr tabsTAB_ shortened command quot text quot MAIN quot session findById quot wnd 0 usr tabsTAB_ shortened command quot setFocus session findById quot wnd 0 usr tabsTAB_ shortened command quot caretPosition 4 session findById quot wnd 0 tbar 0 btn 11 quot press session findById quot wnd 0 tbar 0 btn 15 quot press.
Nu vil vi justere den genererede kode, så den inkluderer et trin, der udtrækker, tilpasser og derefter returnerer det nye meddelelses-id til handlingen Kør VBScript.
Skærmbillede af justeret VBScript, der returnerer SAP-meddelelsen til Power Automate Desktop via en variabel 39 Dette er knappen Gem session findById quot wnd 0 tbar 0 btn 11 quot press 39 Dette er hele statuslinjeteksten, der indeholder de data, der skal udtrækkes statusBarMessage session findById quot wnd 0 sbar pane 0 quot text 39 Trimming og fjernelse af eventuel tekst omkring vores nye meddelelses-id notificationID Trim Replace Replace statusBarMessage quot Notification quot quot quot quot saved quot quot quot 39 Dette er knappen Afslut session findById quot wnd 0 tbar 0 btn 15 quot press 39 Dette skriver det nyoprettede id til outputvariablen Kør VBScript i Power Automate Desktop WScript Echo notificationID.
Derved angives variablen VBScriptOutput for handlingen Kør VBScript til det nyoprettede meddelelses-id.
Hvis du vil se indholdet af VBScriptOutput, kan du bruge en handling til visning af meddelelser på samme måde som outputtet på følgende billeder.
Fremgangsmåde med lav kode
I fremgangsmåden med lav kode bruges der handlinger og brugerdefinerede vælgere til at udtrække nyoprettede post-id'er eller andre statusmeddelelser, der er vigtige for downstream-flowbehandling.
I de følgende trin går vi ikke i detaljer med, hvordan du registrerer eller bruger design af manuelle handlinger til at oprette en ny SAP PM-meddelelsespost. Gennemse lav kode eller RPA uden kode med SAP GUI i Power Automate Desktop, hvis du har brug for at få genopfrisket, hvordan du gør det.
Følg disse trin for at benytte en fremgangsmåde med lav kode:
Brug optageren til skrivebordet eller design af manuelle handlinger til at registrere alle de kontrolelementer, du skal bruge til SAP PM-meddelelsesprocessen.
Opret en meddelelsespost, og hent den statustekst, der vises, når du har valgt Gem på værktøjslinjen i skærmbilledet Opret PM-meddelelse.
Når elementet er gemt, bliver du omdirigeret til det forrige skærmbillede, hvor du bør se et nyt meddelelsesnummer i statuslinjens tekst.
Gå nu tilbage til Power Automate Desktop, søg efter en handling med navnet Hent detaljer om brugergrænsefladeelement i vindue, og føj det til dit oprettelseslærred.
Vælg rullemenuen med brugergrænsefladeelementer, og vælg derefter knappen Tilføj et nyt brugergrænsefladeelement.
Vælg vinduet SAP Easy Access, og hold musen over statuslinjen, indtil der vises en rød ramme kaldet GUI-statuslinje. Mens rammen er aktiv, skal du holde Ctrl nede og derefter klikke for at vælge statuslinjen.
Vælg Gem.
Søg efter handlingen Erstat tekst i ruden Handlinger, og træk den til designlærredet.
Skriv Meddelelse i Tekst, der skal søges efter. Angiv en tom streng under Erstat med ved at skrive følgende tegn: %''%
Tilføj endnu en handling af typen Erstat tekst, og omdøb de producerede variabler til %NotificationId%. Skriv Gem i Tekst, der skal søges efter, og angiv en tom streng (%''%) under Erstat med.
Søg efter handlingen Trim tekst i ruden Handlinger, træk den til designlærredet, vælg %NotificationId% som værdi for Tekst, der skal trimmes, og omdøb Variabler produceret til %TrimmedNotificationID%.
Søg efter handlingen Vis meddelelse i ruden Handlinger, og træk den til designlærredet. Angiv Meddelelsesbokstitel og Meddelelse, der skal vises, som du ønsker det.
Kør den automatisering, der opretter en ny SAP PM-meddelelse og udtrækker dens nyoprettede meddelelses-id, som kan vises som på følgende billede.