Масштабное обновление платформы ROBIN RPA

Компания Robin, разработчик первой российской RPA-платформы, презентовала новый релиз продукта. Новая версия платформы отвечает запросам российского рынка в условиях импортозамещения. Новый функционал платформы позволит RPA-разработчикам российских компаний без потери качества роботизировать бизнес-процессы. Релиз – не очередное обновление, а целое направление в роботизации. Новый функционал по множеству пунктов опережает существующие RPA-решения не только на российском рынке, но и в мире.
Low-code режим
Добавили возможность переключения в Low-code режим, в дополнение к стандартному No-code. В Low-Code режиме пользователю становится доступно расширение возможностей платформы за счет написания кода во встроенном в Studio C# редакторе кода. При этом процесс написания, использования и поддержки такого кода по-прежнему остается безопасным и контролируемым за счет соблюдения следующих условий:

  • Возможность регулирования прав доступа до Low-Code режима. Возможность писать программный код могут только разработчики роботов с необходимыми правами. Например, аналитикам и бизнес-пользователям может быть доступен только No-Code режим, в котором роботы создаются без строчки кода, а разработчику, которому доступна возможность создавать код, отдаются на реализацию только самые сложные функции робота;
  • Создаваемый в роботе программный код, не становится «захардкоженной» частью этого робота, а сохраняется в виде пакета с заданным действием и может быть импортирован в другую студию, либо опубликован в Оркестраторе. То есть созданное с помощью кода действие становится доступным всем сотрудникам компаниии в соответствии с правами ролевой модели и удовлетворяет всем уже существующим критериям безопасности ROBIN. Это позволяет выполнять поддержку и развитие программного кода без рисков повредить сценарий и остальной функционал самого робота;
  • Исключение вероятности подмены кода злоумышленником во время выполнения. Это ключевой аспект информационной безопасности в организации, без соблюдения которого программный робот можно приравнять к запрещенному классу «зловредного ПО». Реализуется за счет следующих технических средств:
1
Разработчик имеет возможность подписать пакет с кодом ключом строгого имени (Strong Key) https://docs.microsoft.com/ru-ru/dotnet/standard/assembly/strong-named. А сценарий робота проверяет подписи во время выполнения.
2
Сценарий робота зашифрован и защищен от несанкционированного доступа и изменений вне студии настройки роботов (ROBIN Studio). Подменить выполнение одного действия на другое вне студии невозможно.
3
Программный код компилируется один раз во время создания робота, а не при каждом запуске на исполнение. Данный принцип гарантирует, что выполнимый код не будет изменен при запуске робота.
Таким образом, Low-Code режим с одной стороны – предоставляет возможность писать программный код внутри студии настройки роботов, создавать кастомизированные шаги и действия, аналогично другим Low-code платформам. С другой стороны – обеспечивает полное соблюдение всех стандартов безопасности при его эксплуатации и позволяет многократно использовать в виде действия в любых других роботах.

Полноценный редактор кода с возможностью использовать классы в новом Low-Code режиме обладает рядом преимуществ по сравнению большинством других платформ:
  • Встроенный в ROBIN Studio редактор кода позволяет использовать любые пространства имен (usings), что позволяет использовать классы, объявленные в любых других пространствах имен, не предусмотренных разработчиками платформы. В большинстве решений других производителей, возможности редактора кода ограничены пространствами имен, заложенными разработчиками платформы;
  • Создаваемым с помощью программного кода, действием может быть не только скрипт (как в большинстве решений других производителей), а целая подпрограмма с несколькими классами и методами. Это позволяет разработчикам удобней организовывать проект действия и использовать принципы ООП: инкапсуляция, наследование и полиморфизм;
  • Редактор кода позволяет не только писать код на С#, но и обращаться к сервисам платформы. Например, для получения папки с используемыми в сценарии робота ресурсами, или добавления расширенного логирования шагов время выполнения действия во время исполнения кода;
  • Для создания расширения кода используется версия актуальная версия C# 9.0, что позволяет разработчикам использовать последние возможности языка программирования.
Работа с очередями
Основные возможности модуля очередей сообщений:

  • Создание и мониторинг очередей из программных роботов;
  • Разграничение прав доступа на уровне ролевой модели;
  • Автоматическое распределение – на каких машинах и сколько роботов запустить для обработки очереди. Реализуется как возможность настроить специальные триггеры для запуска роботов: очередь может быть инициатором запуска роботов. Для запуска робота указывается группа машин, задается количество новых элементов в очереди при достижении которого начинается обработка очереди, а также максимальное количество роботов, которое может быть запущено для обработки конкретной очереди. В зависимости от количества элементов в очереди и текущей загрузки машин, очередь сама определяет на какой машине сейчас можно запустить нового робота;
  • Возможность настраивать на уровне очереди количество неудачных попыток обработки элемента. То есть столько попыток обработки элемента роботы будут предпринимать, если обработка элемента завершилась с ошибкой;
  • Возможность указать в параметрах очереди количество попыток обработки каждого элемента. При неуспешных обработках, роботами будут предприниматься попытки обработки элемента заданное количество раз;
  • Возможность выбора роботами элементов из очереди по фильтрам: по тегам, приоритетам, установленным блокировкам, по идентификатору элемента, статусу, дате создания, дате обновления;
  • Возможность установки приоритетов обработки элементов и блокировок на обработку элементов. Блокировки задаются двух типов: на запись и на чтение, также задается время, на которое устанавливается блокировка – реализация концепции postpone (отложенной обработки элементов очереди);
  • Возможность устанавливать тэги на элементы очереди (данной функциональности на текущий момент нет ни в одной отечественной RPA платформе, у известных мировых лидеров присутствует возможность задавать тэги только на уровне очереди, а не конкретного элемента);
  • Возможность взаимодействовать с очередью через API с помощью внешний систем и ИС заказчика.
Таким образом с помощью тэгов, комбинации блокировок и приоритетов обработки элементов можно выстраивать сложные процессы, выполняемые разными роботами и в несколько этапов.
Пример сложного процесса и работы с очередями
1
Внешняя система через API-очереди положила в очередь список ИНН. Робот 1 актуализирует информацию по каждому ИНН во внутренней системе, затем происходит периодическая синхронизация учетных систем заказчика в течении 12 часов (обновленные данные попадают в другие системы) и уже Робот 2 может подготовить комплект необходимых документов.
2
Пока обработка ИНН не началась, элементы находятся в очереди в статусе «новый» без тэгов и блокировок. Установлено три попытки на обработку элемента очереди и пяти элементов, при достижении этого количества элементов, элементы начинают обрабатываться Роботом 1.
3
Когда элементов в очереди стало больше пяти, они начали обрабатываться Роботом 1. Робот 1 скачивает из ЕГРЮЛ выписку и проводит актуализацию информации во внутренней системе. В случае ошибки обработки ИНН (например, сайт недоступен), Робот 1 предпринимает три попытки его обработки, а пользователь видит на панели управления очередями лог каждой попытки и количество пыток обработки каждого элемента. Робот 1 определяет принадлежит ли ИНН ИП и если да, то присваивает элементу в очереди приоритет 1 (для Робота 2). После завершения актуализации информации по компании Робот 1 не завершает обработку этого элемента очереди, а присваивает тэг «актуализация завершена» и устанавливает блокировку на чтение элемента на 12 часов. Робот 2, выполняющий обработку после Робота 1, берет из очереди элементы только с тэгом «актуализация завершена» и может их начать обрабатывать через 12 часов. После завершения обработки Роботом 2, Робот 2 переводит в статус Завершено.
Совместное использование роботов с UI и в фоновом режиме
  • Добавлено понятие «робот, использующий UI». Платформа определяет нужен ли для выполнения робота графический интерфейс ОС и учитывает это при запуске робота по триггеру (из очереди или по расписанию)
  • Робот, который использует UI, например, работающий с SAP или использующий машинное зрение, требует наличие окна приложения на экране и не может быть запущен одновременно с таким же роботом. А «фоновые роботы», которые, например, отправляют/получают электронную почту, работают с Excel-документами или системами в вебе, могут выполняться как параллельно друг с другом, так и работать одновременно с сотрудником или с другим UI-роботом. Ведь для их работы не нужен графический интерфейс;
  • При автоматическом выборе машины при запуске из очереди этот атрибут учитывается для корректного распределения.
Централизованное хранилище ресурсов и действий
Централизованное хранилище ресурсов (например, учетных записей от ИС, с которыми работают роботы) позволяет хранить на стороне Оркестратора и использовать данные. Роботы во время исполнения могут обращаться к Оркестратору и получать значения. Подобное хранилище позволяет организовать удобное взаимодействие между роботами в рамках сложных процессов.
ROBIN Orchestrator также является и централизованным хранилищем всех действий робота, что обеспечивает:
  • Дает возможность установки на компьютеры сотрудников и машины для запуска роботов компоненты платформы без действий. Необходимые для работы разработчиков робота или выполнения робота действия установятся с сервера автоматически в соответствии с настройками и ролевой моделью;

  • Действия доступны согласно ролевой модели организации: разным разработчикам роботов могут быть доступны разные действия в Студии;

  • Все создаваемые с помощью SDK в рамках организации собственные действия или с помощью Low-Code режима расширения, сохраняются на оркестратор и могут быть повторно использованы в роботах другими разработчиками. Создаваемый программный код не является «вшитой» частью одного робота и оправляется отдельно.
Робот как действие
Основа для комплексной роботизации процессов. Функционал позволяет сохранить целый сценарий робота как отдельное действие с входными параметрами и результатами.
  • Такой «робот как действие» сохраняется на оркестратор, и становится доступным разработчикам робота согласно ролевой модели для использования в других сценариях. Например, таким действием может быть робот, производящий вход в информационную систему и осуществляющий различные проверки. Теперь достаточно один раз реализовать эту часть процесса, сохранить как действие и все разработчики роботов смогут его многократно использовать;

  • Робот, сохраненный как действие, может запускаться на другой машине, отличной от выполнения основного сценария, что дает возможность логически связать выполнение разных роботов в один сквозной процесс. Использование "робот как действие" позволяет размещать на шагах процесса роботов, передавать данные между роботами, выстраивать логику сквозного процесса с возможностью подключения других технологий на различных шагах, например, OCR и AI.
Диалог c пользователем
Теперь на любом шаге процесса робот может вывести для пользователя диалоговое окно, что позволяет расширить границы роботизации в следующих направлениях:
  • Робот может с помощью диалогового окна запросить информацию, необходимую для дальнейшего выполнения процесса;
  • Робот выводит пользователю информацию для проверки. Пользователь может отредактировать ее, подтвердить ее, или, в случае необходимости, и передать обратно роботу дополнительные данные;
  • Такое диалоговое окно может быть выведено на рабочем месте пользователя, даже в случаях, когда робот работает на выделенном сервере. В этом случае вывод окна контролирует ROBIN Orchestrator.
Использование производственных календарей
Пользователь получает возможность вести несколько производственных календарей на стороне оркестратора. Использование данного функционала предоставляет следующие возможности:
  • При настройке запуска робота по расписанию указывать в соответствии с каким производственным календарем будет происходить запуск;
  • Во время выполнения сценария можно обращаться к конкретному календарю из программного робота и использовать его, например, для расчета ближайшего рабочего дня и последующей отработки данного условия в работе робота.
Запуск отладки с произвольного места сценария
Отладку сценария робота можно начать с любого произвольного места. Значения переменных пропущенной части сценария и необходимой для работы отлаживаемой, будут браться из предыдущих запусков.
Обновление для No-Code режима. Действия
Количество готовых к использованию действий, уже превысило более 500 штук – это значительно больше, чем в любой другой отечественной RPA платформе. Наличие простых действий позволяет быстро и без использования программирования создавать роботов различной сложности.

Добавлена серия новых действий:
  • Возможность поиска элемента на экране по тексту с использованием OCR;
  • Действия для работы с встроенными очередями сообщений и централизованным хранилищем ресурсов;
  • Расширены возможности работы роботов на Linux:
  1. Реализованы действия по работе с нативными процессами операционной системы;
  2. Реализованы действия для работы с любыми офисными документами без установленного офисного пакета (поддерживаются файлы MS Office, р7, LibreOffice, OpenOffice, МойОфис и др.);
  3. Реализована работа с корпоративным файловым хранилищем р7-офис.
  • Возможность работы с Exchange-сервером напрямую для работы с электронной почтой;
  • Группа действий для работы с Microsoft SharePoint через API;
  • Добавлены действия для работы speech to text и text to speech сервисами наших партнеров ЦРТ (Центр Речевых Технологий). Теперь можно настроить управление роботами с помощью голоса.
Прочие улучшения и исправление ошибок
  • Оптимизирована работа студии с большими сценариями, ускорена работа и отклик на действия;
  • Увеличена скорость выполнения некоторых действий Excel. Ведется работа по ускорению остальных действий с офисными приложениями;
  • Добавлена возможности установить одинаковую версию у всех действий конкретного типа и установить последнюю версию всех действий на схеме. (Внимание! При изменении версий действий могут измениться параметры действия, в этом случае действие может потребовать дополнительной настройки);
  • Добавлена возможность в ROBIN Player настроить запись работы роботов на видео. При нештатном завершении выполнения робота ROBIN Robot высылает письмо на заданный список адресатов с подробной информацией о ошибке и видеозаписью последних секунд работы;
  • Локализована проблема быстродействия, связанная с переключением движков на различных языках. Мы уже работаем над ее устранением, на текущий момент рекомендуем использовать версии действий на одной платформе (где это возможно), например, там где можно использовать реализацию на .Net, - использовать ее, если наблюдается замедленная работа роботов или наблюдаются проблемы с передачей данных между действиями, написанных на разных языках.