Роботизируем параллельную обработку тысяч документов: практический пример

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

По данным исследования Deloitte 36% руководителей считает фрагментарные процессы главнейшим барьером для масштабирования автоматизации. Вендоры стараются сделать максимально простым и бесшовным процесс взаимодействия человека с RPA-системами, выстраивая оптимальную архитектуру своих решений. Таким образом можно значительно упростить автоматизацию длительных процессов, требующих участия человека. 

В статье мы расскажем:

— как можно организовать работу с большим количеством документов,  

— как в эту работу вовлечь бизнес-пользователей, когда это необходимо,

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

Начнем с реального примера.

Кейс страховой компании: как с помощью RPA достигнуть эффективности в 122 ПШЕ

Крупная страховая компания России обрабатывает более 24 тыс. договоров в день. Для этих целей в компании был создан операционный центр, который принимает договора от агентов и заносит данные договоров в базу. Роботизация в компании началась как оптимизация работы центра. Компания планировала перенести на операционный центр дополнительные функции, не увеличивая при этом численность персонала. Для этого была поставлена задача автоматизации текущих задач центра. Для успеха проекта достаточно было автоматизировать 100 ПШЕ (полных штатных единиц), этих ресурсов хватало на выполнение дополнительных функций. 

Проект по роботизации начался в компании в 2017 году и за это время удалось всего на трех процессах (один из которых — обработка поступающих договоров страхования) достичь эффективности в 122 ПШЕ. Роботы помогают сотрудникам центра обрабатывать гораздо больший объем документов, снизив вероятность ошибок до минимума. Сегодня в компании полностью автоматизированы обработка и учет договоров страхования, а также процесс по поиску убытков.

IТ-архитектура этого решения- оркестратор, база данных, виртуальная машина-робот- все это развернуто на отдельном сервере и работает с несколькими системами: полисной, системой сканирования, бухгалтерской системой, системой урегулирования убытков, а также с системами — источниками данных (работа с файлами). 

Обработка одного договора человеком занимала 5 минут, у робота это занимает чуть больше 1 минуты. 

Роботы работают на 80% быстрее человека, а 70% всех задач они выполняют без его участия. Окупаемость роботизации всех трех процессов составила 8 месяцев. 

Что под капотом: техническая реализация оркестровки

Кейс, приведенный выше, является примером автоматизации фрагментированных процессов, то есть процессов, которые разделены на этапы и требуют участия человека между этими этапами. Для описания таких процессов также используется термин «human-in-the-loop». Автоматизация фрагментированных процессов — достаточно новая функциональность для RPA-систем. В решениях UiPath она стала доступна с появлением Action Center. Робот, столкнувшийся с каким-либо бизнес-исключением или ошибкой, может создать задачу пользователю и отправиться выполнять другие задачи. После того, как человек даст свой ответ, первый свободный робот продолжит выполнять процесс. Рассмотрим упрощенный пример того, как автоматизация таких процессов может быть реализована. Мы создали простой процесс приема и обработки страхового договора. Документ поступает на вход, сотрудник извлекает из него данные и принимает решение, требует ли этот договор согласования. Если договор удовлетворяет формальным требованиям, он заносится в учетную систему. Этот пример является довольно простым для роботизации, сложности возникают, когда приходится обрабатывать большое количество таких договоров.

Мы предлагаем решать задачу обработки большого количества документов в процессах «human-in-the-loop«с помощью процесса оркестровки, который проверяет что именно происходит с интересующими нас объектами. Изобразим наш пример на схеме, процесс состоит из четырех этапов:

bf72beba96a5d454aed761232c370339.png

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

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

db8fdc72296bc67d0727d611d43cdcac.png

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

0bbf581033cdc3934f6056fb1452d289.png

Процесс оркестровки постоянно следит, что происходит с элементами нашей очереди, и как только какой-нибудь из них обогащается данными, процесс проверяет требует ли этот договор согласования (в нашем простом примере мы отправляем на согласование договора, у которых высокая сумма выплат). Если нам нужно согласование, процесс создает задачу человеку в Action Center, если согласование не требуется, процесс создает задачу роботу на ввод данных в учетную систему. 

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

Список задач для роботов выглядит следующим образом:

4b7f463649197ec518c9f3b70b8c03aa.png

В нашем случае работают 2 робота, они берут задачи из списка на выполнение. На скриншоте нижний процесс «InsContract_Main» и есть наш процесс оркестровки. Он стоит на паузе, ожидая, пока какой-нибудь из элементов очереди обновится. На вход поступили 10 документов, соответственно добавилось 10 элементов в очередь, и на каждый элемент инициировался свой процесс «InsContract_DU» — распознавание и извлечение данных. Как мы видим, 4 таких процесса уже успешно завершилось, два документа из четырех не требуют согласования, и поэтому процесс оркестровки создал две задачи «InsContract_EnterApprovedContract» — процесс заведения договора в учетную систему, мы видим их первыми на экране. 

Перейдем к задачам для людей, их мы можем увидеть в Action Center. На скриншоте отображен список задач и открыта задача типа «Согласование договора».

311c7cde690a657d77a7b693b284f3ca.png

Форма, которую вы видите на экране, создана с помощью low-code. Таким образом, задачи могут иметь любое представление. Для данного примера мы создали форму в которой виден сам документ, и слева от него отображаются нужные нам данные.

Как только я нажму кнопку «Согласовать», процесс оркестровки создаст процесс заведения данных в учетную систему. 

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

Пример отчета:

8532b2eff86e1649b310db097398fff5.png

Как это было разработано?

Для реализации этого примера мы использовали активности из блока Long Running, они созданы специально для работы с фрагментированными процессами:

424ee029662d99e4de8e6f8784ff0cd0.png

При отправке элемента в очередь мы использовали активности Add Queue Item And Get Reference/Wait For Queue Item And Resume. 

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

Для создания задач по вводу данных в учетную систему — Start Job And Get Reference/Wait for Job and Resume.

Для создания задачи для человека в Action Center — Create Form Task/Wait For Form Task and Resume.

Для параллельной обработки всех документов — активность Parallel For Each.

Часть процесса оркестрации выглядит следующим образом

f5dd75402a7e7dbf22ab098e8ebeae16.png

Итоги

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

© Habrahabr.ru