Добрый день всем, друзья! В одной из прошлых статей мы уже затрагивали тему RPA и примеров реализации простых RPA процессов на базе сервиса Microsoft Power Automate Desktop. Сегодня хотелось бы снова вернуться к этой теме, порассуждать на тему RPA и показать несколько примеров посложнее, которые можно реализовать на базе этого сервиса. Думаю, что будет интересно, давайте приступим.



Почему RPA тема сейчас так популярна?


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

Плюс, используя различные модели искусственного интеллекта, такие как: компьютерное зрение, которое может «читать» цифровые изображения и извлекать данные из документов, а также обработку естественного языка и семантический анализ, которые используются для понимания и интерпретации текста, автоматизация процессов делает огромный шаг вперед. Эта комбинация позволяет системам понимать структурированные и неструктурированные данные и извлекать данные из большого количества операций.
Например, при обработке счетов RPA может не только извлекать структурированные данные из шаблонных форм, но и считывать текст из счетов, даже если он плохо читается, а также применять семантический анализ. Все это дает широкий набор инструментов для «роботизации» различных процессов и автоматизации множества ручных операций, требующих участия пользователя.

При этом, для настройки так называемых Zero-Coding RPA процессов не требуется использование навыков разработки программного обеспечения. Большинство подобных процессов создаются в специализированных программах-сервисах, где построение логики происходит с помощью готовых функциональных блоков. Каждый блок выполняет отдельную атомарную задачу и в комплексе они создают полноценный RPA процесс, готовый к решению поставленной задачи.

Ранее, мы с Вами изучали различные типы автоматизированных потоков Microsoft Power Automate и даже выделяли отдельный подтип потоков UI Flows, которые являлись реализацией RPA внутри сервиса Power Automate. Сейчас компонент UI Flows уже упразднен и вместо него используется полноценный сервис Power Automate Desktop, который является клиентским приложением и устанавливается на рабочую машину пользователя или на сервер.

Сегодня посмотрим более внимательно на возможности сервиса Microsoft Power Automate Desktop, который является представителем линейки RPA сервисов. Если вы еще не знакомы с этим сервисом, то рекомендую прочитать предыдущую статью про базовые возможности Power Automate Desktop. Итак, рассмотрим несколько сценариев.

Заполнение web-формы на основе локального файла Excel


Попробуем «роботизировать» заполнение web-формы из Excel файла. Подготовим тестовую Excel-таблицу с несколькими строками отзывов о проведенном тренинге и сохраним у себя на компьютере. Все совпадения случайны.



Теперь нам надо определиться, куда будем записывать данные из файла. Остановимся на Microsoft Forms, и создадим такую форму.



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



У полученного файла необходимо определить конец таблицы, для этого используем отдельный кубик «Get first free column/row from Excel worksheet» и, в качестве объекта, передаем, полученный в предыдущем кубике файл в виде переменной «ExcelInstance».



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



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



Переходим к циклу. Размещаем в дизайнере цикл foreach, обрабатываем ExcelInstance, промежуточный результат сохраняем в CurrentItem. И внутри цикла делаем открытие страницы ответа на опрос Microsoft Forms, который будем заполнять столько раз, сколько будет строк в файле.



Ну и самый главный момент, нам необходимо записать последовательность нажатий и ввода данных в веб-форме. Нажимаем в верхнем меню Power Automate Desktop кнопку «Web recorder» и переходим к записи действий.



Запускаем рекордер, начинаем выделять поля и вносить в них тестовые данные. После заполнения всех полей нажимаем кнопку «Отправить» на форме.



Теперь у нас есть записанная последовательность действий для создания одного элемента через web-форму. Сохраняем это все в Power Automate Desktop внутри цикла foreach.



Меняем тестовые значения, введенные ранее, на подстановку данных из текущего элемента цикла.



Так, ну и финальный штрих – закрытие Excel файла после окончания работы с ним. Итоговый поток выглядит как показано ниже. Поток в цикле обрабатывает строки из Excel файла, заполняя опрос Forms.



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

Заполнение web-формы на основе данных онлайн файла Excel


Создаем новый Power Automate Desktop поток и делаем в нем три входные переменные. Эти переменные будут принимать на вход данные от облачного Power Automate Online потока.



Настраиваем поток. Не будем уже останавливаться подробно на каждом кубике, покажу поток в целом. Он выглядит попроще чем предыдущий.



Этот поток будет запускаться в цикле по каждой строке Excel файла, хранящегося в One Drive или SharePoint, но сам цикл будет обеспечивать Online поток. Настроим такой поток.



После запуска Online поток будет построчно извлекать данные из Excel файла и отправлять их в Power Automate Desktop поток, который выполнит операцию ввода в web-форму.

Извлечение данных из файлов резюме кандидатов, согласно поисковому запросу


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



ResultFileName – путь к файлу с извлеченной информацией
SearchFolder –путь к папке с файлами резюме
SearchText – то, что мы ищем в файлах

Сам поток выглядит вот так.




Этот Power Automate Desktop поток обрабатывает файлы в исходном расположении и с помощью регулярных выражений и VBScript извлекает информацию согласно поисковому запросу, находящемуся в переменной SearchText. Результат обработки складывается в текстовый файл.

Сегодня мы с вами посмотрели несколько примеров реализации RPA потоков, целью которых является высвобождение свободного времени человека и автоматизация рутинной работы, которую можно легко переложить на плечи «робота». Эти и многие другие сценарии можно настраивать в редакторе Power Automate Desktop с помощью готовых блоков и создавать подобные потоки за считанные часы. Ну а в следующих статьях мы рассмотрим еще больше примеров роботизации процессов, а также заглянем в Azure сервисы и посмотрим, как можно использовать их в комплексе с сервисами Microsoft 365 и Power Platform для решения различных бизнес-задач.

Комментарии (5)


  1. abar
    30.08.2021 17:11
    +1

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


    1. AlexeyALV
      30.08.2021 17:50
      +1

      У RPA своя ниша. К примеру, для старых систем, где трудно или невозможно поменять API. Мы делали роботов для легаси-системы, в которую разработанные уже микрсервисы хотели вбрасывать данные, но доработка API ещё только стояла в планах. А бизнес уже терял потенциальные деньги.


      1. abar
        30.08.2021 19:35

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


        1. geber
          30.08.2021 19:46

          Ну, классика в каком-то смысле.. В данном случае, конечно, нужен анализ - что дешевле и с более высоким ROI. Пользоваться легаси вручную и ждать N времени, или имплементировать RPA, усложнить несколько легаси, но при этом не ждать N времени.


  1. StVorpensi
    01.09.2021 05:57
    +1

    Офисные файлы легко парсить - там самое страшное это "shared strings", можно сохранить в ods - будет один файл XML