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.
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:
Bestätigen Sie, dass alle SAP-GUI-Skriptkonfigurationen abgeschlossen sind.
Öffnen Sie die SAP-Anmeldung, und wählen Sie das SAP-System aus, an dem Sie sich anmelden möchten.
Wählen Sie Lokales Layout anpassen (ALT+F12) und wählen Sie dann Skript-Aufzeichnung und -Wiedergabe... aus.
Wählen Sie Mehr aus.
Geben Sie unter Speichern unter den Dateipfad und den Dateinamen an, in dem Sie die erfassten Benutzerinteraktionen speichern möchten.
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.
Geben Sie den Transaktionscode IW21, und wählen Sie dann Eingabe aus.
Stellen Sie den Benachrichtigungstyp bereit, und wählen Sie dann Eingabe aus.
Geben Sie einen Kurzen Text, Planergruppe, Haupt-WorkCtr und jedes andere benötigte Feld ein.
Wählen Sie Speichern (STRG+S) auf der Symbolleiste aus.
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.
Wählen Sie Beenden (UMSCHALT+F3) auf der Symbolleiste aus und dann Aufnahme beenden.
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 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 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.
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.
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:
Verwenden Sie den Desktop-Rekorder oder das manuelle Aktionsdesign, um alle Steuerelemente zu erfassen, die Sie für den SAP-PM-Benachrichtigungsprozess benötigen.
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.
Nachdem das Element gespeichert wurde, werden Sie zum vorherigen Bildschirm weitergeleitet, wo Sie eine neue Benachrichtigungsnummer im Text der Statusleiste sehen sollten.
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.
Wählen Sie das Dropdown-Menü für das UI-Element und dann die Neues UI-Element hinzufügen-Schaltfläche aus.
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.
Wählen Sie Speichern aus.
Suchen Sie nach der Text ersetzen-Aktion im Bereich Aktionen und ziehen Sie sie auf die Design-Canvas.
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: %''%
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 (%''%).
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.
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.
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.