Поделиться через


Извлечение данных из графического пользовательского интерфейса SAP с помощью Power Automate

Когда вы создаете или обновляете записи в SAP, система генерирует информацию о статусе, которая включает вновь сгенерированные идентификаторы записей. SAP отображает эту информацию о статусе в нижней части пользовательского интерфейса SAP.

Вот пример сообщения о статусе, которое SAP отображает после создания уведомления SAP PM.

Снимок экрана с идентификатором уведомления SAP, созданным после сохранения новой записи.

Эта информация о состоянии может быть полезна для последующих этапов процесса автоматизации. Поэтому вы должны извлечь и присвоить эти данные статуса переменным для последующей обработки данных.

У нас есть несколько способов добиться этого, в зависимости от вашего подхода к разработке. Два подхода: низкий уровень кода и профессиональный код.

Подход с профессиональным кодом

Подход с профессиональным кодом использует команды VBScript для извлечения информации из элементов пользовательского интерфейса SAP.

Для извлечения данных статуса SAP, таких как вновь созданные заявки на закупку или номера уведомлений о техническом обслуживании завода, вам необходим доступ к элементу пользовательского интерфейса строки состояния.

Вот как вы получаете доступ к элементу пользовательского интерфейса строки состояния.

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

Давайте пройдемся по сквозному взаимодействию. Мы запишем, как создать уведомление SAP PM, и изменить сгенерированный код, чтобы вернуть вновь созданный идентификатор в Power Automate Desktop.

Если вы никогда не слышали об уведомлении SAP PM или у вас нет доступа к нему, не волнуйтесь, вы все равно сможете понять шаги, необходимые для извлечения таких данных для вашего собственного сценария.

Вот что нужно сделать:

  1. Подтвердите, что все Конфигурации сценариев SAP GUI выполнены.

  2. Откройте Вход в SAP и выберите систему SAP, в которую вы хотите войти.

    Снимок экрана SAP Login 760.

  3. Выберите Настроить локальный макет (Alt+F12), а затем выберите Запись и воспроизведение сценария....

    Снимок экрана системы SAP Простой доступ.

  4. Выберите Еще.

  5. В Сохранить в укажите путь к файлу и имя файла, в котором вы хотите хранить записанные взаимодействия пользователя.

    Снимок экрана сохранения файла записи в диалоговом окне «Запись и воспроизведение».

  6. Выберите кнопку Сценарий записи, чтобы начать процесс захвата экрана. Каждое взаимодействие, которое вы сейчас выполняете в SAP, фиксируется в виде повторяемых команд VBScript.

    Заметка

    Если вы записывали шаги и сохраняли в этот файл раньше, вам нужно будет подтвердить, хотите ли вы перезаписать файл.

  7. Введите код транзакции IW21, а затем выберите Ввод.

  8. Укажите Тип уведомления, а затем выберите Ввод.

  9. Введите Краткий текст, Группа планирования, Главный WorkCtr и любое другое поле, которое вам нужно.

    Снимок экрана с заполненной записью уведомления SAP, готовой к сохранению.

  10. На панели инструментов выберите Сохранить (Ctrl+S).

  11. Вернитесь в исходную формуСоздать уведомление PM, вы заметите новое сообщение о состоянии в строке состояния в нижнем левом углу пользовательского интерфейса.

    Снимок экрана с идентификатором уведомления SAP, созданным после сохранения новой записи.

  12. Выберите Выход (Shift+F3) на панели инструментов, а затем остановить запись.

  13. При желании выйдите из SAP и закройте все окна SAP.

Рассмотрим сгенерированный код VBScript:

Снимок экрана VBScript, созданный при создании уведомления SAP.

Снимок экрана VBScript, созданный при создании уведомления 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.

Теперь давайте настроим сгенерированный код, включив в него шаг, который извлекает, обрезает, а затем возвращает новый идентификатор уведомления в действие Выполнить VBScript.

Снимок экрана настроенного VBScript, который возвращает уведомление SAP в Power Automate Desktop через переменную.

Снимок экрана настроенного VBScript, который возвращает уведомление SAP в Power Automate Desktop через переменную 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.

Это задает переменную VBScriptOutput действия Выполнить VBScript для вновь созданного идентификатора уведомления.

Снимок экрана, на котором показано диалоговое окно «Выполнить VBScript» с выделенным сценарием, который позволяет извлекать текст строки состояния SAP.

Если вы хотите увидеть содержимое VBScriptOutput, вы можете использовать действие отображения сообщения, подобное выходным данным на следующих изображениях.

Снимок экрана, на котором показано сообщение об отладке с содержимым VBScriptOutput.

Снимок экрана, на котором показано действие отображения сообщения и его параметры.

Подход с низким уровнем кода

Подход с низким уровнем кода использует действия и настраиваемые селекторы для извлечения вновь сгенерированных идентификаторов записей или других сообщений о состоянии, которые важны для последующей обработки потока.

Следующие шаги не будут подробно описывать, как записывать или использовать ручное планирование действий для создания новой записи уведомления SAP PM. Ознакомитесь Низкий уровень кода или RPA без кода с SAP GUI в Power Automate Desktop, если вам нужно напомнить, как это сделать.

Выполните следующие шаги для подхода c низким уровнем кода:

  1. Используйте средство записи для компьютера или ручное действие, чтобы захватить все элементы управления, необходимые для процесса уведомления SAP PM.

  2. Создайте запись уведомления и захватите текст состояния, который появляется после того, как вы выберете Сохранить на панели инструментов экрана Создать уведомление PM.

    Снимок экрана, на котором показана заполненная запись уведомления с выделенной кнопкой «Сохранить».

    После сохранения элемента вы будете перенаправлены на предыдущий экран, где вы должны увидеть новый номер уведомления в тексте строки состояния.

  3. Теперь вернитесь к Power Automate Desktop, найдите действие с именем Получить сведения элемента пользовательского интерфейса в окне и добавьте его на холст разработки.

  4. Выберите раскрывающееся меню элемента пользовательского интерфейса, а затем выберите кнопку Добавить новый элемент пользовательского интерфейса.

    Снимок экрана, на котором показано получение сведений об элементе пользовательского интерфейса в диалоге действий окна. В диалоговом окне есть раскрывающееся меню с элементами пользовательского интерфейса, ожидающими ввода.

  5. Выберите окно SAP Простой доступ и наведите указатель мыши на строку состояния, пока не появится красная граница с надписью Gui Statusbar. Пока граница активна, удерживайте Ctrl и щелкните, чтобы выбрать строку состояния.

    Снимок экрана, на котором показан экран SAP с сообщением о состоянии с указанием идентификатора уведомления и сеансом отслеживания Power Automate Desktop с выбранным элементом управления.

  6. Нажмите кнопку Сохранить.

    Снимок экрана, на котором показано диалоговое окно Получить сведения элемента пользовательского интерфейса в окне с выбранным элементом пользовательского интерфейса.

  7. Найдите действие Заменить текст на панели Действия и перетащите его на холст разработки.

  8. В Текст для поиска введите Уведомление. В Заменить на введите пустую строку со следующими символами: %''%

    Снимок экрана, на котором показано диалоговое окно действия «Заменить текст» с указанными параметрами.

  9. Добавьте другое еще действие Заменить текст и переименуйте Создаваемые переменные на %NotificationId%. В Текст для поиска введите сохранить и в Заменить на введите пустую строку (%''%).

    Снимок экрана, на котором показано другое диалоговое окно действия «Заменить текст» с указанными параметрами.

  10. Найдите действие Обрезать текст на панели Действий, перетащите ее на холст разработки, выберите %NotificationId% в качестве значения Текст для обрезки и переименуйте Создаваемые переменные на %TrimmedNotificationID%.

    Снимок экрана, на котором показано диалоговое окно действия «Обрезать текст» с указанными параметрами.

  11. Найдите действие Показать сообщение на панели Действия и перетащите его на холст разработки. Задайте Заголовок окна сообщения и Сообщение для отображения в соответствии с вашими потребностями.

    Снимок экрана, на котором показано диалоговое окно действия «Показать сообщение» с указанными параметрами.

  12. Запустите автоматизацию, которая создает новое уведомление SAP PM и извлекает его вновь созданный идентификатор уведомления, который может отображаться, как показано на следующем изображении.

    Снимок экрана, показывающий выполняющийся сценарий Power Automate Desktop, который выводит вновь созданный идентификатор уведомления в виде сообщения на экране.