Delen via


Gegevens extraheren uit SAP GUI met Power Automate

Wanneer u records in SAP aanmaakt of bijwerkt, worden statusgegevens gegenereerd, waaronder de nieuw gegenereerde record-id's. SAP geeft deze statusinformatie weer in het onderste deel van de SAP-gebruikersinterface.

Hier is een voorbeeldstatusbericht dat SAP weergeeft nadat u een SAP PM-melding hebt gemaakt.

Schermopname van de SAP melding-id die is gegenereerd na het opslaan van een nieuwe record.

Deze statusinformatie kan later nuttig zijn voor de stappen van het automatiseringsproces. Daarom moet u deze statusgegevens extraheren en toewijzen aan variabelen voor downstreamgegevensverwerking.

We hebben meerdere manieren om dit te bereiken, afhankelijk van uw ontwikkelingsaanpak. De twee benaderingen zijn: low-code of pro-code.

Techniek met pro-code

De pro-code-techniek maakt gebruik van VBScript-opdrachten om informatie uit SAP UI-elementen te extraheren.

Om SAP-statusgegevens te extraheren, zoals nieuw aangemaakte inkoopaanvragen of meldingsnummers voor fabrieksonderhoud, hebt u toegang nodig tot het UI-element van de statusbalk.

Hier leest u hoe u toegang krijgt tot het UI-element van de statusbalk.

session.findById("wnd\[0\]/sbar/pane\[0\]").Text

De hele werking wordt besproken. We leggen vast hoe u een SAP PM-melding maakt en de gegenereerde code wijzigt om de nieuw gemaakte id terug te sturen naar Power Automate Desktop.

Als u nog nooit van de PM-melding van SAP hebt gehoord of er geen toegang toe hebt, hoeft u zich geen zorgen te maken, u kunt nog steeds de stappen begrijpen die nodig zijn om dergelijke gegevens voor uw eigen scenario te extraheren.

Dit zijn de stappen:

  1. Bevestig dat de configuratie voor SAP GUI-scripting is voltooid.

  2. Open SAP-aanmelding en selecteer het SAP-systeem waarop u wilt inloggen.

    Sschermafbeelding van SAP Login 760.

  3. Selecteer Lokale lay-out aanpassen (Alt+F12), en selecteer vervolgens Script opnemen en afspelen....

    Schermopname van het SAP Easy Access-systeem.

  4. Selecteer Meer.

  5. Geef onder Opslaan in het bestandspad en de bestandsnaam op waar u de vastgelegde gebruikersinteracties wilt opslaan.

    Schermopname van het opslaan van het opnamebestand in het dialoogvenster Opnemen en afspelen.

  6. Selecteer de knop Script opnemen om het schermopnameproces te starten. Elke interactie die u nu in SAP doet, wordt vastgelegd als herhaalbare VBScript-opdrachten.

    Notitie

    Als u eerder stappen hebt opgenomen en in dit bestand hebt opgeslagen, moet u bevestigen of u het bestand wilt overschrijven.

  7. Voer de transactiecode IW21 in en selecteer vervolgens Enter.

  8. Geef het Meldingstype op en selecteer Enter.

  9. Voer een Korte tekst, Plannergroep, Main WorkCtr in en elk ander veld dat u nodig hebt.

    Schermopname van een voltooid SAP-meldingsrecord dat klaar is om te worden opgeslagen.

  10. Selecteer Opslaan (Ctrl+S) op de werkbalk.

  11. Als u teruggaat naar het oorspronkelijke formulier PM-melding maken, ziet u een nieuw statusbericht in de statusbalk in de linkerbenedenhoek van de gebruikersinterface.

    Schermopname van de SAP melding-id die is gegenereerd na het opslaan van een nieuwe record.

  12. Selecteer Afsluiten (Shift+F3) op de werkbalk en vervolgens opname stoppen.

  13. Meld u optioneel af bij SAP en sluit alle SAP-vensters.

Laten we de gegenereerde VBScript-code eens bekijken:

Schermopname van VBScript gegenereerd tijdens het maken van de SAP-melding.

Screenshot of VBScript generated during SAP Notification creation 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.

Laten we nu de gegenereerde code aanpassen om een stap op te nemen die de nieuwe meldings-id extraheert, bijsnijdt en vervolgens terugstuurt naar de actie VBScript uitvoeren.

Schermopname van aangepast VBScript dat SAP-melding retourneert naar Power Automate voor bureaublad via een variabele.

Schermopname van aangepast VBScript dat SAP-melding retourneert naar Power Automate voor bureaublad via een variabele 39 Dit is de knop Opslaan session findById quot wnd 0 tbar 0 btn 11 quot press 39 Dit is de volledige statusbalktekst die de gegevens bevat die moeten worden geëxtraheerd statusBarMessage session findById quot wnd 0 sbar pane 0 quot text 39 Bijsnijden en verwijderen van tekst rond de nieuwe melding-id notificationID Trim Replace Replace statusBarMessage quot Notification quot quot quot quot saved quot quot quot 39 Dit is de knop Afsluiten session findById quot wnd 0 tbar 0 btn 15 quot press 39 Hiermee schrijft u de nieuw aangemaakte id naar de Run VBScript-uitvoervariabele in Power Automate voor bureaublad WScript Echo notificationID.

Hiermee stelt u de variabele VBScriptOutput van de actie VBScript uitvoeren in op de nieuw gemaakte meldings-id.

Schermopname met een actiedialoogvenster VBScript uitvoeren met gemarkeerd het script dat tekstextractie in de SAP-statusbalk inschakelt.

Als u de inhoud van de VBScriptOutput wilt zien, kunt u een actie voor het weergeven van berichten gebruiken, vergelijkbaar met de uitvoer in de volgende afbeeldingen.

Schermopname die een foutopsporingsbericht toont met VBScriptOutput-inhoud.

Schermopname die een actie voor het weergeven van een bericht en de bijbehorende parameters laat zien.

Techniek met low-code

De methode met weinig code maakt gebruik van acties en aangepaste selectors om nieuw gegenereerde record-id's of andere statusberichten te extraheren die belangrijk zijn voor de latere stroomverwerking.

In de volgende stappen wordt niet in detail ingegaan op het vastleggen of gebruiken van ontwerpen voor handmatige acties om een nieuw SAP PM-meldingsrecord te maken. Bekijk Low-code of No-code RPA met SAP GUI in Power Automate voor bureaublad om uw kennis hierover op te frissen.

Volg deze stappen voor een low-code aanpak:

  1. Gebruik de bureaubladrecorder of het handmatige actieontwerp om alle bedieningselementen vast te leggen die u nodig hebt voor het SAP PM-meldingsproces.

  2. Maak een meldingsrecord en leg de statustekst vast die verschijnt nadat u Opslaan hebt geselecteerd op de werkbalk van het scherm PM-melding maken.

    Schermopname die een voltooid meldingsrecord toont met een gemarkeerde knop Opslaan.

    Nadat het item is opgeslagen, wordt u doorgestuurd naar het vorige scherm waar u een nieuw meldingsnummer in de statusbalktekst zou moeten zien.

  3. Ga nu terug naar Power Automate Desktop, zoek naar een actie met de naam Details van een UI-element in het venster ophalen en voeg het toe aan uw ontwerpcanvas.

  4. Selecteer het vervolgkeuzemenu met UI-elementen en selecteer vervolgens de knop Een nieuw UI-element toevoegen.

    Schermopname van het dialoogvenster De actie Details van een UI-element in het venster ophalen. In het dialoogvenster is het vervolgkeuzemenu van het UI-element uitgevouwen, wachtend op invoer.

  5. Selecteer het venster SAP Easy Access en plaats de muisaanwijzer op de statusbalk tot een rode rand met het label Gui-statusbalk verschijnt. Houd Ctrl ingedrukt terwijl de rand actief is en klik vervolgens om de statusbalk te selecteren.

    Schermopname met een SAP-scherm met een statusbericht met de meldings-id en de Volgsessie in Power Automate Desktop met een geselecteerd besturingselement.

  6. Selecteer Opslaan.

    Schermopname met het actiedialoogvenster Details van het UI-element in het venster ophalen met een geselecteerd UI-element.

  7. Zoek naar de actie Tekst vervangen in het deelvenster Acties en sleep het naar het ontwerpcanvas.

  8. Voer in Tekst om te zoeken Melding in. Voer onder Vervangen door een lege tekenreeks in met de volgende tekens: %''%

    Schermopname met een actiedialoogvenster Tekst vervangen met de opgegeven parameters.

  9. Voeg nog een actie Tekst vervangen toe en wijzig de naam van Variabelen gemaakt in %NotificationId%. Voer in Tekst om te zoeken opslaan in, en onder Vervangen door een lege tekenreeks (%''%).

    Schermopname met nog een actiedialoogvenster Tekst vervangen met de opgegeven parameters.

  10. Zoek naar de actie Tekst bijsnijden in het deelvenster Acties, sleep deze naar het ontwerpcanvas, selecteer %NotificationId% als de waarde Tekst om bij te snijden en wijzig de naam van Variabelen gemaakt in %TrimmedNotificationID%.

    Schermopname met een actiedialoogvenster Tekst bijsnijden met de opgegeven parameters.

  11. Zoek naar de actie Bericht weergeven in het deelvenster Acties en sleep het naar het ontwerpcanvas. Stel Titel berichtvenster en Bericht om weer te geven in naar uw behoeften.

    Schermopname met een actiedialoogvenster Bericht weergeven met de opgegeven parameters.

  12. Voer de automatisering uit die een nieuwe SAP PM-melding maakt en de nieuw gegenereerde meldings-ID extraheert die kan worden weergegeven zoals in de volgende afbeelding.

    Schermopname met een actief Power Automate Desktop-script dat een nieuw gemaakte meldings-id genereert via het bericht.