Freigeben über


Daten extrahieren aus der SAP-GUI-UI extrahieren mit Power Automate

Wenn Sie Datensätze in SAP anlegen oder aktualisieren, werden Statusinformationen generiert, die die neu generierten Datensatz-IDs enthalten. SAP zeigt diese Statusinformationen im unteren Teil der SAP-UI an.

Hier ist eine Beispiel-Statusmeldung, die SAP anzeigt, nachdem Sie eine SAP-PM-Benachrichtigung erstellt haben.

Screenshot der SAP-Benachrichtigungs-ID, die nach dem Speichern eines neuen Datensatzes generiert wurde.

Diese Statusinformationen können später für die Automatisierungsprozessschritte nützlich sein. Daher sollten Sie diese Statusdaten extrahieren und Variablen für die nachgelagerte Datenverarbeitung zuordnen.

Abhängig von Ihrem Entwicklungsansatz haben wir mehrere Möglichkeiten, dies zu erreichen. Die beiden Ansätze sind Low-Code- oder Pro-Code-Techniken.

Pro-Code-Ansatz

Der Pro-Code-Ansatz verwendet VBScript-Befehle, um Informationen aus SAP-UI-Elementen zu extrahieren.

Um SAP-Statusdaten zu extrahieren, z. B. eine neu angelegte Bestellanforderung oder Instandhaltungsmeldungsnummer, benötigen Sie Zugriff auf das UI-Element Statusleiste.

So greifen Sie auf das UI-Element der Statusleiste zu.

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

Lassen Sie uns die End-to-End-Erfahrung durchgehen. Wir zeichnen auf, wie eine SAP-PM-Benachrichtigung erstellt wird, und ändern den generierten Code, um die neu erstellte ID an Power Automate Desktop zurückzugeben.

Falls Sie noch nie von der PM-Benachrichtigung von SAP gehört haben oder keinen Zugriff darauf haben, machen Sie sich keine Sorgen, Sie werden trotzdem die Schritte verstehen, die zum Extrahieren solcher Daten für Ihr eigenes Szenario erforderlich sind.

Gehen Sie folgendermaßen vor:

  1. Bestätigen Sie, dass alle SAP-GUI-Skriptkonfigurationen abgeschlossen sind.

  2. Öffnen Sie die SAP-Anmeldung, und wählen Sie das SAP-System aus, an dem Sie sich anmelden möchten.

    Screenshot von SAP Login 760.

  3. Wählen Sie Lokales Layout anpassen (ALT+F12) und wählen Sie dann Skript-Aufzeichnung und -Wiedergabe... aus.

    Screenshot des SAP Easy Access-Systems.

  4. Wählen Sie Mehr aus.

  5. Geben Sie unter Speichern unter den Dateipfad und den Dateinamen an, in dem Sie die erfassten Benutzerinteraktionen speichern möchten.

    Screenshot des Speicherns der Aufnahmedatei im Aufnahme- und Wiedergabedialog.

  6. Wählen Sie die Skript aufzeichnen-Schaltfläche aus, um den Bildschirmaufnahmevorgang zu starten. Jede Interaktion, die Sie jetzt in SAP ausführen, wird als wiederholbare VBScript-Befehle erfasst.

    Notiz

    Wenn Sie zuvor Schritte aufgezeichnet und in dieser Datei gespeichert haben, müssen Sie bestätigen, ob Sie die Datei überschreiben möchten.

  7. Geben Sie den Transaktionscode IW21, und wählen Sie dann Eingabe aus.

  8. Stellen Sie den Benachrichtigungstyp bereit, und wählen Sie dann Eingabe aus.

  9. Geben Sie einen Kurzen Text, Planergruppe, Haupt-WorkCtr und jedes andere benötigte Feld ein.

    Screenshot eines abgeschlossenen SAP-Benachrichtigungsdatensatzes, der gespeichert werden kann.

  10. Wählen Sie Speichern (STRG+S) auf der Symbolleiste aus.

  11. Wenn Sie sich wieder im ersten Formular PM-Benachrichtigung erstellen befinden, wird in der Statusleiste in der unteren linken Ecke der Benutzeroberfläche eine neue Statusmeldung angezeigt.

    Screenshot der SAP-Benachrichtigungs-ID, die nach dem Speichern eines neuen Datensatzes generiert wurde.

  12. Wählen Sie Beenden (UMSCHALT+F3) auf der Symbolleiste aus und dann Aufnahme beenden.

  13. Melden Sie sich optional von SAP ab und schließen Sie alle SAP-Fenster.

Lassen Sie uns den generierten VBScript-Code untersuchen:

Screenshot des VBScript-Codes, der während der Erstellung der SAP-Benachrichtigung generiert wurde.

Screenshot des VBScript-Codes, der während der Erstellung der SAP-Benachrichtigung generiert wurde 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.

Passen wir nun den generierten Code so an, dass er einen Schritt enthält, der die neue Benachrichtigungs-ID extrahiert, kürzt und dann an die VBScript ausführen-Aktion zurückgibt.

Screenshot des angepassten VBScript-Codes, der die SAP-Benachrichtigung an Power Automate Desktop über eine Variable zurückgibt.

Screenshot des angepassten VBScript-Codes, der eine SAP-Benachrichtigung an Power Automate für Desktop über eine Variable 39 This is the Save button session findById quot wnd 0 tbar 0 btn 11 quot press 39 This is the full Status Bar text that contain the data to be extracted statusBarMessage session findById quot wnd 0 sbar pane 0 quot text 39 Trimming and removing any text surrounding our new notification Id notificationID Trim Replace Replace statusBarMessage quot Notification quot quot quot quot saved quot quot quot 39 This is the Exit button session findById quot wnd 0 tbar 0 btn 15 quot press 39 This writes the newly created Id to the Run VBScript output variable in Power Automate Desktop WScript Echo notificationID.

Dies setzt die VBScriptOutput-Variable der VBScript ausführen-Aktion auf die neu erstellte Benachrichtigungs-ID.

Screenshot, der ein Aktionsdialogfeld „VBScript ausführen“ mit hervorgehobenem Skript zeigt, das die Textextraktion der SAP-Statusleiste ermöglicht.

Wenn Sie den Inhalt von VBScriptOutput anzeigen möchten, können Sie eine Aktion zum Anzeigen einer Meldung verwenden, ähnlich der Ausgabe in den folgenden Abbildungen.

Screenshot, der eine Debug-Anzeigemeldung mit VBScriptOutput-Inhalten zeigt.

Screenshot, der eine Anzeigenachrichtenaktion und ihre Parameter zeigt.

Low-Code-Ansatz

Der Low-Code-Ansatz verwendet Aktionen und benutzerdefinierte Selektoren, um neu generierte Datensatz-IDs oder andere Statusmeldungen zu extrahieren, die für die nachgelagerte Flussverarbeitung wichtig sind.

In den folgenden Schritten wird nicht näher darauf eingegangen, wie Sie ein manuelles Aktionsdesign aufzeichnen oder verwenden, um einen neuen SAP-PM-Benachrichtigungsdatensatz zu erstellen. Wenn Sie Ihre Kenntnisse zur Vorgehensweise auffrischen möchten, finden Sie weitere Informationen unter Low-Code oder No-Code-RPA mit SAP-GUI in Power Automate für Desktop.

Befolgen Sie diese Schritte für einen Low-Code-Ansatz:

  1. Verwenden Sie den Desktop-Rekorder oder das manuelle Aktionsdesign, um alle Steuerelemente zu erfassen, die Sie für den SAP-PM-Benachrichtigungsprozess benötigen.

  2. Erstellen Sie einen Benachrichtigungsdatensatz und erfassen Sie den Statustext, der angezeigt wird, nachdem Sie Speichern auf der Symbolleiste des PM-Benachrichtigung erstellen-Bildschirms ausgewählt haben.

    Screenshot, der einen abgeschlossenen Benachrichtigungsdatensatz mit einer hervorgehobenen Schaltfläche „Speichern“ zeigt.

    Nachdem das Element gespeichert wurde, werden Sie zum vorherigen Bildschirm weitergeleitet, wo Sie eine neue Benachrichtigungsnummer im Text der Statusleiste sehen sollten.

  3. Gehen Sie jetzt zurück zu Power Automate Desktop, suchen Sie nach einer Aktion namens Details des UI-Elements im Fenster abrufen, und fügen Sie sie Ihrem Erstellungs-Canvas hinzu.

  4. Wählen Sie das Dropdown-Menü für das UI-Element und dann die Neues UI-Element hinzufügen-Schaltfläche aus.

    Screenshot, der Details eines Benutzeroberflächenelements im Fensteraktionsdialog abrufen zeigt. Der Dialog hat das Dropdownmenü des Benutzeroberflächenelement aufgeklappt und wartet auf Eingaben.

  5. Wählen Sie das SAP Easy Access-Fenster aus und bewegen Sie den Mauszeiger über die Statusleiste, bis ein roter Rand mit der Beschriftung GUI-Statusleiste erscheint. Halten Sie bei aktiver Umrandung STRG gedrückt und klicken Sie dann, um die Statusleiste auszuwählen.

    Screenshot, der einen SAP-Bildschirm mit einer Statusmeldung zeigt, die die Benachrichtigungs-ID und die Power Automate Desktop-Verfolgungssitzung mit einem ausgewählten Steuerelement auflistet.

  6. Wählen Sie Speichern aus.

    Screenshot des Aktionsdialogfelds „Details zu einem UI-Element im Fenster abrufen“ mit einem ausgewählten UI-Element.

  7. Suchen Sie nach der Text ersetzen-Aktion im Bereich Aktionen und ziehen Sie sie auf die Design-Canvas.

  8. Geben Sie in Zu suchender Text den Wert Benachrichtigung ein. Geben Sie unter Ersetzen durch eine leere Zeichenfolge ein, indem Sie die folgenden Zeichen eingeben: %''%

    Screenshot, der einen Aktionsdialog zum Ersetzen von Text mit den angegebenen Parametern zeigt.

  9. Fügen Sie eine neue Text ersetzen-Aktion hinzu und benennen Sie die Erzeugte Variablen in %NotificationId% um. Geben Sie unter Zu suchender Text speichern ein und unter Ersetzen durch geben Sie eine leere Zeichenfolge ein (%''%).

    Screenshot, der einen weiteren Aktionsdialog zum Ersetzen von Text mit den angegebenen Parametern zeigt.

  10. Suchen Sie nach der Text zuschneiden-Aktion im Bereich Aktionen und ziehen Sie es auf die Design-Canvas, wählen Sie %NotificationId% als den Wert für Zuzuschneidender Text aus und benennen Sie Erzeugte Variablen in %TrimmedNotificationID% um.

    Screenshot, der einen Aktionsdialog zum Zuschneiden von Text mit den angegebenen Parametern zeigt.

  11. Suchen Sie nach der Nachricht anzeigen-Aktion im Bereich Aktionen und ziehen Sie sie auf die Design-Canvas. Legen Sie Titel des Nachrichtenfelds und Anzuzeigende Nachricht Ihren Bedürfnissen entsprechend fest.

    Screenshot, der einen Aktionsdialog zum Anzeigen einer Nachricht mit den angegebenen Parametern zeigt.

  12. Führen Sie die Automatisierung aus, die eine neue SAP-PM-Benachrichtigung erstellt und deren neu generierte Benachrichtigungs-ID extrahiert, die wie in der folgenden Abbildung dargestellt angezeigt werden kann.

    Screenshot der Ausführung eines Power Automate Desktop-Skripts, das eine neu erstellte Benachrichtigungs-ID per Display-Nachricht ausgibt.