Wyodrębnianie danych z graficznego interfejsu użytkownika systemu Power Automate
Podczas tworzenia lub aktualizacji rekordów w systemie SAP generowane są informacje o statusie, które zawierają nowo wygenerowane identyfikatory rekordów. SAP wyświetla te informacje o statusie w dolnej części interfejsu SAP UI.
Oto przykładowy komunikat o stanie, który jest wyświetlany po utworzeniu powiadomienia o godzinie 12:00.
Ta informacja o statusie może być przydatna dla późniejszych kroków procesu automatyzacji. Dlatego należy wyodrębnić i przypisać te dane stanu do zmiennych w celu dalszego przetwarzania danych.
Mamy wiele sposobów, aby to osiągnąć, w zależności od Twojego podejścia do rozwoju. Dwa podejścia to podejście o niskiej zawartości kodu lub dużej zawartości kodu.
Podejście o dużej zawartości kodu
Podejście o dużej zawartości kodu wykorzystuje polecenia VBScript do wydobycia informacji z elementów SAP UI.
Aby pobrać dane statusowe SAP, takie jak nowo utworzone zapotrzebowanie na zakup lub numery zgłoszeń konserwacji zakładu, potrzebny jest dostęp do elementu UI paska stanu.
Oto jak uzyskuje się dostęp do elementu UI paska stanu.
session.findById("wnd\[0\]/sbar/pane\[0\]").Text
Prześledźmy, jak to wygląda od końca do końca. Nagramy jak utworzyć Powiadomienie SAP PM i zmodyfikować kod, który jest generowany, aby zwrócić nowo utworzone identyfikatory do Power Automate Desktop.
Jeśli nigdy nie słyszałeś o SAP PM Notification lub nie masz do niego dostępu, nie martw się, nadal będziesz w stanie zrozumieć kroki potrzebne do wydobycia takich danych dla własnego scenariusza.
Oto odpowiednie kroki:
Potwierdź, że zostały wykonane wszystkie konfiguracje skryptów interfejsu GUID.
Otworzyć Logowanie SAP, a następnie wybrać system SAP, do którego chcemy się zalogować.
Wybierz Dostosuj układ lokalny (Alt+F12), a następnie wybierz Nagrywanie i odtwarzanie skryptów....
Wybierz Więcej.
W obszarze Zapisz do podaj ścieżkę i nazwę pliku, w którym mają być przechowywane przechwytywane interakcje użytkowników.
Wybierz przycisk Nagrywaj skrypt , aby rozpocząć proces przechwytywania ekranu. Każda interakcja, którą wykonasz w SAP, zostanie przechwycona w postaci powtarzalnych poleceń VBScript.
Uwaga
Jeśli wcześniej nagrywałeś kroki i zapisywałeś do tego pliku, będziesz musiał potwierdzić, czy chcesz go nadpisać.
Wprowadź kod transakcji IW21, a następnie wybierz opcję Enter.
Podaj typ powiadomienia, a następnie wybierz opcję Wprowadź.
Wprowadź krótki tekst, Planer grupy, Główny WorkCtr i dowolne inne potrzebne pole.
Wybierz Zapisz (Ctrl+S) na pasku narzędzi.
Wracając do formularza Twórz powiadomienie PM pierwotne, zauważysz nowy komunikat statusu na pasku statusu w lewym dolnym rogu UI.
Wybierz przycisk Zamknij (Shift+F3) na pasku narzędzi, a następnie zatrzymaj rejestrowanie.
Opcjonalnie wylogować się z systemu SAP i zamknąć wszystkie okna SAP.
Przyjrzyjmy się wytworzonemu kodowi VBScript:
Zrzut ekranu skryptu VBScript wygenerowanego podczas tworzenia notyfikacji SAP 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.
Teraz dostosujmy wygenerowany kod tak, aby zawierał krok, który wyodrębnia, przycina, a następnie zwraca nowy identyfikator powiadomienia do akcji Run VBScript.
Zrzut ekranu dostosowanego skryptu VBScript, który zwraca powiadomienie SAP do Power Automate Desktop via a 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.
To ustawia zmienną VBScriptOutput akcji Uruchom VBScript na nowo wytworzony identyfikator powiadomienia.
Jeżeli chcesz zobaczyć zawartość VBScriptOutput, to możesz zastosować akcję wyświetlenia komunikatu, podobnie jak na poniższych obrazkach.
Podejście o niskiej zawartości kodu
Niskokodowe podejście wykorzystuje akcje i niestandardowe selektory do wyodrębniania nowo wygenerowanych identyfikatorów rekordów lub innych komunikatów statusu, które są ważne dla dalszego przetwarzania przepływu.
Poniższe kroki nie będą szczegółowo opisywać sposobu rejestrowania lub używania ręcznego projektowania działań w celu utworzenia nowego rekordu SAP PM Notification. Zapoznaj się z podejściem o niskiej zawartości kodu lub podejściem bez zawartości kodu w SAP GUI Power Automate Desktop, jeśli potrzebujesz przypomnienia jak to zrobić.
Wykonaj poniższe kroki, aby uzyskać podejście low-code:
Użyj rejestratora pulpitu lub projektu działań ręcznych, aby uchwycić wszystkie kontrole potrzebne do procesu SAP PM Notification.
Utwórz rekord powiadomienia i przechwyć tekst statusu, który pojawia się po wybraniu Zapisz na pasku narzędzi na ekranie Utwórz powiadomienie PM.
Po zapisaniu elementu, zostaniesz przekierowany do poprzedniego ekranu, gdzie powinieneś zobaczyć nowy numer powiadomienia w tekście paska statusu.
Teraz wróć do programu Power Automate Desktop, wyszukaj akcję o nazwie Uzyskaj szczegóły elementu UI w oknie i dodaj ją do płótna autorskiego.
Wybierz menu rozwijane Element UI, a następnie wybierz przycisk Dodaj nowy element UI.
Wybierz okno SAP Easy Access i najedź kursorem na pasek stanu, aż pojawi się czerwona ramka z napisem Gui Statusbar. Jeśli obramowanie jest aktywne, naciśnij i przytrzymaj klawisz Ctrl, a następnie kliknij opcję, aby zaznaczyć pasek stanu.
Wybierz pozycję Zapisz.
Wyszukaj akcję Zastąp tekst w panelu Akcje i przeciągnij ją na płótno projektu.
W polu Tekst do znalezienia wpisz Powiadomienie. W polu Zastąp wprowadź pusty ciąg znaków, wpisując następujące znaki: %''%
Dodaj kolejną akcję Zastąp tekst i zmień nazwę Utworzonych zmiennych na %NotificationId%. W polu Tekst do znalezienia wpisz Zapisz, a w polu Zastąp wpisz pusty ciąg znaków (%''%).
Wyszukaj akcję Przyciąć tekst w panelu Akcje, przeciągnij ją na obszar roboczy, wybierz %NotificationId% jako Tekst do przycięcia i zmień Zmienna produkowana na %TrimmedNotificationID%.
Wyszukaj akcję Wyświetl wiadomość w oknie Akcje i przeciągnij ją na obszar roboczy. Ustaw Tytuł okienka wiadomości i Wiadomość do wyświetlenia według własnych potrzeb.
Uruchomić automatyzację, która tworzy nowe zgłoszenie SAP PM Notification i wyodrębnia jego nowo wygenerowany identyfikator, który może być wyświetlony jak na poniższym obrazie.