Udostępnij za pośrednictwem


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.

Zrzut ekranu z identyfikatorem powiadomienia SAP wygenerowanego po zapisie nowego rekordu.

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:

  1. Potwierdź, że zostały wykonane wszystkie konfiguracje skryptów interfejsu GUID.

  2. Otworzyć Logowanie SAP, a następnie wybrać system SAP, do którego chcemy się zalogować.

    Zrzut ekranu Logowanie SAP 760.

  3. Wybierz Dostosuj układ lokalny (Alt+F12), a następnie wybierz Nagrywanie i odtwarzanie skryptów....

    Zrzut ekranu systemu SAP Easy Access.

  4. Wybierz Więcej.

  5. W obszarze Zapisz do podaj ścieżkę i nazwę pliku, w którym mają być przechowywane przechwytywane interakcje użytkowników.

    Zrzut ekranu zapisywania pliku nagrania w oknie dialogowym Nagrywanie i odtwarzanie.

  6. 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ć.

  7. Wprowadź kod transakcji IW21, a następnie wybierz opcję Enter.

  8. Podaj typ powiadomienia, a następnie wybierz opcję Wprowadź.

  9. Wprowadź krótki tekst, Planer grupy, Główny WorkCtr i dowolne inne potrzebne pole.

    Zrzut ekranu wypełnionego rekordu powiadomienia SAP, który jest gotowy do zapisania.

  10. Wybierz Zapisz (Ctrl+S) na pasku narzędzi.

  11. Wracając do formularza Twórz powiadomienie PM pierwotne, zauważysz nowy komunikat statusu na pasku statusu w lewym dolnym rogu UI.

    Zrzut ekranu z identyfikatorem powiadomienia SAP wygenerowanego po zapisie nowego rekordu.

  12. Wybierz przycisk Zamknij (Shift+F3) na pasku narzędzi, a następnie zatrzymaj rejestrowanie.

  13. Opcjonalnie wylogować się z systemu SAP i zamknąć wszystkie okna SAP.

Przyjrzyjmy się wytworzonemu kodowi VBScript:

Zrzut ekranu skryptu VBScript wytworzonego podczas wytworzenia Powiadomienia SAP.

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 poprzez zmienną.

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.

Zrzut ekranu, który przedstawia okno dialogowe akcji Run VBScript z zaznaczonym skryptem, który umożliwia ekstrakcję tekstu z paska stanu SAP.

Jeżeli chcesz zobaczyć zawartość VBScriptOutput, to możesz zastosować akcję wyświetlenia komunikatu, podobnie jak na poniższych obrazkach.

Zrzut ekranu, który przedstawia komunikat debugowania z zawartością VBScriptOutput.

Zrzut ekranu, który pokazuje akcję wyświetlania wiadomości i jej parametry.

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:

  1. Użyj rejestratora pulpitu lub projektu działań ręcznych, aby uchwycić wszystkie kontrole potrzebne do procesu SAP PM Notification.

  2. 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.

    Zrzut ekranu, który pokazuje wypełniony rekord Zgłoszenia z podświetlonym przyciskiem Zapisz.

    Po zapisaniu elementu, zostaniesz przekierowany do poprzedniego ekranu, gdzie powinieneś zobaczyć nowy numer powiadomienia w tekście paska statusu.

  3. 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.

  4. Wybierz menu rozwijane Element UI, a następnie wybierz przycisk Dodaj nowy element UI.

    Zrzut ekranu pokazujący Uzyskaj szczegóły elementu UI w oknie dialogowym akcji. W oknie dialogowym rozwinięte jest menu rozwijane elementu UI, które czeka na wprowadzenie danych.

  5. 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.

    Zrzut ekranu przedstawiający ekran SAP z komunikatem stanu zawierającym listę Notification Id oraz sesję śledzenia Power Automate Desktop z wybraną kontrolką.

  6. Wybierz pozycję Zapisz.

    Zrzut ekranu, który pokazuje okno dialogowe Uzyskaj szczegóły elementu UI w oknie akcji z wybranym elementem UI.

  7. Wyszukaj akcję Zastąp tekst w panelu Akcje i przeciągnij ją na płótno projektu.

  8. W polu Tekst do znalezienia wpisz Powiadomienie. W polu Zastąp wprowadź pusty ciąg znaków, wpisując następujące znaki: %''%

    Zrzut ekranu, który pokazuje okno dialogowe akcji Zamień tekst z określonymi parametrami.

  9. 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 (%''%).

    Zrzut ekranu, który pokazuje okno dialogowe akcji Zamień tekst z określonymi parametrami.

  10. 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%.

    Zrzut ekranu, który pokazuje okno dialogowe akcji Przytnij tekst z określonymi parametrami.

  11. 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.

    Zrzut ekranu, który pokazuje okno dialogowe akcji Wyświetl komunikat z określonymi parametrami.

  12. 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.

    Zrzut ekranu przedstawiający działający skrypt Power Automate Desktop, który wysyła nowo utworzony identyfikator powiadomienia za pomocą komunikatu na wyświetlaczu.