Автоматизация процессов знакома бизнесам любого масштаба. Практически в каждой компании используются макросы на VBA, например, для создания отчетности или проведения вычислений. Но зачастую для сквозной автоматизации бизнес-процесса применения макросов бывает недостаточно: большинство из них использует несколько различных приложений, работу с веб-страницами, электронной почтой, базами данных и, конечно же, учетными системами. Здесь и приходит на помощь технология RPA (Robotic Process Automation), позволяющая создавать виртуальных «роботов», эмулирующих действия обычного бизнес-пользователя.

Роботизация особенно популярна в B2C сегменте, в том числе, в торговле, банках и телекоме, за счет большого числа ежедневно выполняемых похожих операций. Однако в любых компаниях существует множество рутинных процессов, подходящих для роботизации. Они не зависят от индустрии. Это может быть внесение данных в разные системы, их сверка между собой, формирование отчетности или справок, создание заказов и платежных требований, проверка информации о поставщиках, загрузка проводок и банковской выписки, контроль записей в нормативно-справочной информации и др.

Хотя идея, лежащая в основе RPA, и не является новой, с каждым годом к ней обращено все больше внимания. В последние несколько лет рынок RPA стал одним из самых быстрорастущих, в 2019 году его объем составил 1,4 млрд долларов, а к 2022 году ожидается объем в 2.4 млрд. Это отражается и в росте количества RPA-вендоров, в том числе фокусирующихся на определенных нишах или направлениях бизнеса. В связи с этим многие крупные предприятия сейчас переходят на мультивендорную стратегию и используют разных поставщиков для различных задач.

В конце 2018 года SAP приобрел одного из вендоров технологии RPA, французскую компанию Contextor, представленную в основном на европейском рынке. С тех пор решение было доработано как с точки зрения интеграции с другими SAP-приложениями, так и для улучшения общей производительности и расширения функционала. В мае 2019 года был представлен новый продукт SAP Intelligent Robotic Process Automation. В планах компании продолжать работу над «интеллектуальной» составляющей роботов: использовать технологии ML и Conversational AI для упрощения взаимодействия пользователей с роботами и предотвращения возникающих в процессе выполнения ошибок.

Как это работает?


RPA-бот состоит из элементарных шагов процесса, или навыков (например, открыть Excel, сохранить значение ячейки). Эти навыки соединяются между собой в нужной последовательности в визуальном интерфейсе, образуя целый набор шагов. Мы называем этот процесс «workflow». При этом для расширения возможностей можно добавить «custom» шаг и использовать встроенную в решение среду Javascript. Полученный workflow определяет сценарий робота. Далее мы можем запланировать его выполнение с определенной периодичностью или делать вручную по команде пользователя, либо по событию. Принцип работы изображен на рис. 1.

image
Рисунок 1. Принцип создания робота

Решение умеет работать как с традиционными инструментами (MS Office, PDF, Outlook), так и с облачными приложениями и веб-сервисами, legacy-приложениями, и, конечно же, с SAP. А еще оно имеет специальные коннекторы для интерфейсов GUI и UI5. Поддерживается работа в двух разных режимах, переключение между которыми доступно в самом роботе:

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

А что внутри?

  • студия для создания ботов (Desktop Studio)
  • оркестратор для их контроля и мониторинга (Cloud Factory)
  • агент, который выполняет сценарии (Desktop Agent)

Архитектура решения изображена на рис. 2.

image
Рисунок 2. Архитектура решения

Сценарий создания робота с SAP Intelligent RPA

Теперь рассмотрим, как создается простой робот на примере процесса проверки контрагента в системе СПАРК и получения оттуда контактных данных контрагента для последующего внесения этих данных в ERP.

  1. На почту пользователю приходит письмо, в котором вложен Excel файл со списком контрагентов.
  2. Робот открывает этот файл, находит соответствующих контрагентов в системе СПАРК и берет оттуда контактную информацию (например, телефон и адрес электронной почты).
  3. Робот вносит информацию по контрагентам в учетную систему.

Процесс разработки бота начинается с создания проекта, который и является вашим будущим роботом. Далее определяются приложения, с которыми будет работать робот: в студии для разработки выбираем тип приложения и определяем страницы (в случае веб) или окна (в случае win). Все страницы имеют уникальный идентификатор, который позволяет роботу ее распознать и работать. Это может быть имя, id, либо какое-то другое свойство. Главное, чтобы оно было уникальным для этой страницы. Таким же образом определяются элементы, их можно определить в дереве (структуре) или визуально, и также выбрать уникальный идентификатор.

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

Первым шагом добавим активность для чтения письма. Затем робот должен открыть вложение и считать из него информацию, открыть СПАРК, найти данные и последним шагом внести их в ERP. В результате, получаем workflow, как на рисунке 3.

image
Рисунок 3. Студия для разработки: создание workflow

Обратите внимание, с некоторыми приложениями робот работает с помощью API (MS Office), а с остальными на уровне графического интерфейса. Именно поэтому на скриншоте можно видеть разницу между активностями с Excel и страницами СПАРК.

Далее, если «провалиться» на уровень конкретной активности, то можно увидеть, какие действия будет выполнять робот на этом шаге, как, например, на экране ниже (рис. 4). Робот записывает телефон и адрес электронной почты в заранее созданные переменные.

image
Рисунок 4. Активности для работы со страницей

Но и это еще не всё: под каждый шаг генерируется Javascript-код, в который можно перейти прямо из шага, посмотреть его, внести изменения или написать шаг с нуля (рис. 5). Также есть конструктор, который помогает строить pop-up окошки для attended роботов для упрощения взаимодействия с пользователем.

image
Рисунок 5. Код проекта

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

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

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

В целом, принцип работы RPA-решения достаточно прост. Однако, пройдя полный цикл от постановки задачи до ее реализации, можно обратить внимание на детали, для которых крайне важна гибкость, как, например, расширение функциональности и масштабируемость. Надеемся, эта статья поможет вам подготовиться к созданию вашего первого робота с SAP Intelligent RPA. Также хочется отметить, что у нас есть общедоступный, бесплатный онлайн-курс по созданию роботов на платформе OpenSAP. Если у вас возникнут вопросы, пишите в комментариях, будем рады помочь. Успехов!

Авторы: Ботагоз Жатакбаева, Мария Ларичева, Евгений Горбунов, архитекторы бизнес-решений SAP CIS

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


  1. aborouhin
    25.12.2019 19:57

    И в чём смысл подобного костыля? У СПАРКа есть API, который будет как минимум работать на порядок быстрее, чем RPA, заполняющий поля и кликающий кнопки. Не говоря уже о том, как отнесётся Интерфакс к такому способу использования их продукта (коллег один аналогичный сервис забанил, когда они с обычной подпиской начали автоматизированно данные сливать). Способов распарсить Excel тоже, мягко говоря, немало (даже если мы не можем повлиять на источник информации, чтобы от него приходило что-нибудь более подходящее).

    Т.е. даже если последний этап (внести в учётную систему) нормально автоматизировать по каким-то причинам проблематично (и то причины тут могут быть в 90% случаев только бюрократическими) — то первые два гораздо эффективнее и, подозреваю, сильно дешевле решаются простым скриптом, который выдаст на выходе уже обогащённый данными СПАРКа JSON, XML или что там в эту учётную систему проще всего импортировать окажется.


    1. SAP Автор
      26.12.2019 13:02

      Добрый день!
      В тех случаях, когда у системы нет открытого API, времени или возможности разработки, простой альтернативой интеграции может выступать RPA-бот. Его разработка может занять (как в данном случае) лишь несколько дней. Кроме того, можно работать с несколькими сервисами, в том числе внешними, в рамках одного процесса. Например, проверка клиента при открытии счета в банке. В этом случае время, требуемое на интеграцию, также существенно возрастает, и могут возникнуть сложности, обозначенные выше. Это связано с отсутствием возможности забрать данные через API.

      В данном случае работа с сайтом СПАРК была выбрана для создания примера на базе известной многим системы, с понятным и крайне востребованным процессом в закупках.


      1. aborouhin
        26.12.2019 14:39

        При отсутствии API, опять же, в 90% случаев быстрее спарсить сайт внешнего сервера каким-нибудь Python+beautifulsoup или Java+JSoup или что там лучше знакомо первому пойманному для этой задачи разработчику. В редких случаях, когда на сайте особо хитрый JS, может понадобиться Selenium.

        И задачка, описанная в статье, за те же несколько дней точно решится силами одного Junior'а или (при отсутствии своих разработчиков) фрилансера. Что будет не только быстрее работать, но и как минимум в разы, а то и на порядки дешевле обойдётся. Не знаю цен на RPA-решения SAP (впрочем, слова «SAP» и «дёшево» никогда не сочетались), но ценник на UIPath меня в своё время впечатлил.


        1. SAP Автор
          26.12.2019 17:55

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

          Также с точки зрения лицензирования у нас применен подход, основанный на количестве запусков робота, либо роботов. Вы можете оценить стоимость использования сервиса SAP Intelligent Robotic Automation здесь: www.sap.com/products/cloud-platform/pricing/estimator-tool.html


          1. aborouhin
            26.12.2019 18:24

            Спасибо за комментарий и ссылку на калькулятор.

            Т.е. если я правильно понял, то в Вашем примере, если сотруднику приходит, скажем, в среднем 100 строк в этой таблице каждый рабочий день, то в месяц получится (2 * 1 + 2 * 100) * 20 дней = 4040 транзакций (открыть почту и прочитать файл — одна транзакция на шаг, считать данные в СПАРКе и внести в учётную систему — по транзакции на каждую строку).
            Т.е. 2000 евро в месяц. Т.е. ФОТ минимум на двух сотрудников минимальной квалификации, которые могли бы выполнять эту работу вручную. При том, что вручную разобрать эти 100 записей даже у самого медлительного сотрудника займёт не больше полдня.
            ОК, перед ручным трудом у нас есть преимущество в точности — не будет ошибок, опечаток, пропусков и пр. Но за эти же деньги условный скрипт силами привлечённых, а тем более своих разработчиков можно переписывать хоть каждый месяц заново.

            Что касается оркестрации, аналитики и пр. — честно говоря, меня несколько пугает мысль о подобных масштабах внедрения RPA. Если у нас настолько всё плохо с интеграцией разных информационных систем — надо, наверное, посмотреть вообще на корпоративную архитектуру, master data management и пр. Чтобы решить проблему системно, а не согласованно и роботизированно копипастить гигабайты данных в день из табличек в окошечки и из окошечек в таблички. Тем более, что бюджет на сотни роботов будет сопоставим со стоимостью идеологически правильного и красивого решения.

            Я не придираюсь, просто меня давненько удивляет такой рост популярности RPA. Пока что могу объяснить это только инертностью и забюрократизированностью крупных корпораций, где внедрить полноценную интеграцию — это месяцы и годы согласований, закупок, километры нервов, потраченных в баталиях с безопасниками, и пр. А RPA, вроде как, в давно согласованных и введённых в эксплуатацию системах ничего не меняет, разработкой само по себе тоже не является — можно сделать быстро. Пусть медленно, пусть некрасиво — но всё лучше, чем руками.


            1. SAP Автор
              27.12.2019 11:44

              Нет, вы посчитали не совсем правильно.
              Все строки будут обработаны в цикле, и это не 100 транзакций (на каждую), а одна. То есть по вашему сценарию получается 500 евро в месяц, а не 2000.
              На наш взгляд, рынок RPA сейчас действительно переживает подъем, связанный с удобством массового применения данной технологии. Конечно же, в некоторых случаях интеграция является правильным решением, но RPA может ее заменять при необходимости быстрого и недорогого решения задачи.