Русский
Русский
English
Статистика
Реклама

Rpa

PyOpenRPA туториал. Управление WEB приложениями

16.08.2020 12:14:15 | Автор: admin

Долгожданный туториал по управлению сторонними WEB приложениями с помощью pyOpenRPA. Во 2-й части мы разберем принципы роботизированного воздействия на HTML/JS. А также своими руками сделаем небольшого, но очень показательного робота.


Этот робот будет полезен тем, для кого актуальна тема покупки/продажи недвижимости.


pyOpenRPA туториал. Управление WEB приложениями


Для тех, кто с нами впервые


pyOpenRPA это open source RPA платформа, которая в полной мере позволяет заменить топовые коммерческие RPA платформы.


Подробнее про то, чем же она полезна, можно почитать здесь.


Навигация по туториалам pyOpenRPA


Туториал сверстан в виде серии статей, в которых будут освещаться ключевые технологии, необходимые для RPA.


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


Перечень статей-туториалов (опубликованные и планируемые):



А теперь перейдем к самому туториалу.


Немного теории и терминов


[Из википедии]


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


Веб приложения стали широко использоваться в конце 1990-х начале 2000-х годов.


Ссылка на источник


Ок, с выдержкой из вики все #КрутоУмно, но от этого не легче (для тех, кто в этой теме дилетант). Продемонстрирую устройство WEB приложения на примере "Что видим мы?"/"Что видит робот?". Для этого отправимся на сайт одной известной WEB площадки по объявлениям по недвижимости


Что видим мы?


Мы видим красиво сверстанный сайт с интуитивно понятным интерфейсом, на котором можно найти интересные объявления о продаже/сдаче в аренду недвижимости.


Как мы видим WEB приложение


Что видит робот?


Робот видит огромную гипертекстовую разметку HTML с примесью алгоритмического кода JS и завернутого в каскадную таблицу стилей CSS. Увлекательно, правда? :)


Как робот видит WEB приложение


Интерпретация


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


Управлять WEB страницей можно с помощью разных технологий адресации: CSS, XPath, id, class, attribute. Мы будем взаимодействовать со страницей с помощью CSS селекторов.


(По шагам) робот своими руками


В этом туториале мы будем заниматься разработкой робота, который оперирует на одном из самых популярных порталов по объявлениям по недвижимости в РФ (тема одна из актуальных для многих).


В качестве примера поставим себе следующую задачу: Разработать робота, который будет извлекать список всех объявлений по ранее преднастроенному фильтру. Все извлеченные объявления сохранить как датасет в файл .json со следующей структурой:


{    "SearchKeyStr": "МСК_Тверской", # Ключевое слово поиска    "SearchTitleStr": "Москва, район Тверской", # Заголовок поиска    "SearchURLStr": "https://www.cian.ru/cat.php?deal_type=sale&engine_version=2&in_polygon%5B1%5D=37.6166_55.7678%2C37.6147_55.7688%2C37.6114_55.7694%2C37.6085_55.7698%2C37.6057_55.77%2C37.6018_55.77%2C37.5987_55.77%2C37.5961_55.7688%2C37.5942_55.7677%2C37.5928_55.7663%2C37.5915_55.7647%2C37.5908_55.7631%2C37.5907_55.7616%2C37.5909_55.7595%2C37.5922_55.7577%2C37.5944_55.7563%2C37.5968_55.7555%2C37.6003_55.7547%2C37.603_55.7543%2C37.6055_55.7542%2C37.6087_55.7541%2C37.6113_55.7548%2C37.6135_55.756%2C37.6151_55.7574%2C37.6163_55.7589%2C37.6179_55.7606%2C37.6187_55.7621%2C37.619_55.7637%2C37.6194_55.7651%2C37.6193_55.7667%2C37.6178_55.7679%2C37.6153_55.7683%2C37.6166_55.7678&offer_type=flat&polygon_name%5B1%5D=%D0%9E%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C+%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0&room1=1&room2=1", # URL of the CIAN search [str]    "SearchDatetimeStr": "2020-08-01 09:33:00.838081", # Дата, на которую была сформирована выгрузка    "SearchItems": { # Перечень извлеченных ценовых объявлений        "https://www.cian.ru/sale/flat/219924574/:": { # URL ссылка на ценовое объявление            "TitleStr": "3-комн. кв., 31,4 м, 5/8 этаж", # Заголовок ценового объявления            "PriceFloat": 10000000.0, # Стоимость общая            "PriceSqmFloat": 133333.0, # Стоимость на 1 кв. м.            "SqMFloat": 31.4, # Кол-во кв. м.            "FloorCurrentInt": 5, # Этаж лота по объявлению            "FloorTotalInt": 8, # Этажей в доме всего            "RoomCountInt": 3 # Кол-во комнат        }    }}

Шаг 0. Подготовим проект для нового робота (развернем pyOpenRPA)


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


Доступно несколько вариантов загрузки pyOpenRPA:


  • Вариант 1, простой. Скачать преднастроенную портативную версию с GitLab страницы проекта
  • Вариант 2, сложный. Установить pyOpenRPA в свою версию интерпретатора Python 3 (pip install pyOpenRPA)

Я рекомендую воспользоваться простым вариантом (вариант 1). Преднастроенная версия не требуется каких-либо настроек инфраструктуры. Здесь в лучших традициях pyOpenRPA реализован принцип, когда пользователь скачивает репозиторий, и у него уже все настроено из коробки пользователю остается лишь писать скрипт робота. #Enjoy :)


Шаг 1. Создать проект робота


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


Ниже приведу зависимости проекта от сторонних компонентов:


  • Selenium WebDriver
  • Google Chrome или Mozilla Firefox или Internet Explorer
  • Python 3

Если вы пошли по варианту 1 (см. шаг 0), то у Вас все эти компоненты уже будут развернуты и настроены внутри скачанного репозитория pyOpenRPA (#Удобно). Репозиторий pyOpenRPA уже содержит все необходимые portable версии требуемых программ (Google Chrome, Mozilla Firefox, Python3 32|64 и т.д.).


Вы наверняка заметили, что в pyOpenRPA используется Selenium. Этот компонент является одним из лучших отказоустойчивых компонентов по внедрению в WEB. Именно поэтому мы его и будем использовать в pyOpenRPA.


Создадим следующую структуру проекта:


  • Репозиторий pyOpenRPA > Wiki > RUS_Tutorial > WebGUI_Habr:
    • Файл "3. MonitoringCIAN_Run_64.py" скрипт робота, который мониторит WEB площадку
    • Файл "3. MonitoringCIAN_Run_64.cmd" скрипт запуска робота с 1-го клика по аналогии с .exe файлами

Ниже приведу пример "3. MonitoringCIAN_Run_64.cmd" файла:


cd %~dp0..\..\..\Sources..\Resources\WPy64-3720\python-3.7.2.amd64\python.exe "..\Wiki\RUS_Tutorial\WebGUI_Habr\3. MonitoringCIAN_Run_64.py"pause >nul

Для инициализации Selenium WebDriver воспользуемся следующей функцией:


########################### Init the Chrome web driver###########################def WebDriverInit(inWebDriverFullPath, inChromeExeFullPath, inExtensionFullPathList):    # Set full path to exe of the chrome    lWebDriverChromeOptionsInstance = webdriver.ChromeOptions()    lWebDriverChromeOptionsInstance.binary_location = inChromeExeFullPath    # Add extensions    for lExtensionItemFullPath in inExtensionFullPathList:        lWebDriverChromeOptionsInstance.add_extension (lExtensionItemFullPath)    # Run chrome instance    lWebDriverInstance = None    if inWebDriverFullPath:        # Run with specified web driver path        lWebDriverInstance = webdriver.Chrome(executable_path = inWebDriverFullPath, options=lWebDriverChromeOptionsInstance)    else:        lWebDriverInstance = webdriver.Chrome(options = lWebDriverChromeOptionsInstance)    # Return the result    return lWebDriverInstance

Шаг 2. Запустить WEB инструменты разработчика и сформировать CSS селекторы


В нашем случае WEB инструменты разработчика мы будем использовать из Google Chrome, который предустановлен в репозитории pyOpenRPA (вариант 1 из шага 0).


Откроем Google Chrome и инструменты разработчика (pyOpenRPA repo\Resources\GoogleChromePortable\App\Chrome-bin\chrome.exe, после чего Ctrl + Shift + i)
Portable Google Chrome + Dev Tools


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


Пример поискового запроса


Список ценовых предложений по фильтру


Для того, чтобы подобрать CSS селектор нам помогут инструменты разработчика Google Chrome. Подробнее узнать про устройство CSS селекторов можно здесь по ссылке
Для проверки правильности CSS селектора я буду делать следующую проверку в инструментах разработчика на вкладке "Console". На картинке представлен пример того, как проводится проверки правильности CSS селектора для извлечения списка ценовых предложений.


Пример проверки CSS селектора


Подберем CSS селектор для выборки списка ценовых предложений на странице.


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


И таких видов рекламных баннеров было обнаружено несколько видов:


  • div[data-name="BannerServicePlaceInternal"]
  • div[data-name="getBannerMarkup"]
  • div[data-name="AdFoxBannerTracker"]

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


  • CSS селектор, Список ценовых предложений: div[data-name="Offers"] > div:not([data-name="BannerServicePlaceInternal"]):not([data-name="getBannerMarkup"]):not([data-name="AdFoxBannerTracker"])

Подберем CSS селекторы по извлечению параметров ценового предложения: Заголовок, Стоимость общая, URL ссылка на карточку.


  • CSS селектор, Заголовок: div[data-name="TopTitle"],div[data-name="Title"]
  • CSS селектор, Стоимость общая: div[data-name="Price"] > div[class="header"],div[data-name="TopPrice"] > div[class="header"]
  • CSS селектор, URL ссылка на карточку: a[class*="--header--"]

Подберем CSS селектор для извлечения кнопки на следующую страницу.


  • CSS селектор, Указатель на следующую страницу: div[data-name="Pagination"] li[class*="active"] + li a

Шаг 3. Обработать/преобразовать получаемые данные


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


В результате обработки ценового предложения у нас будет сформирована структура следующего вида:


lOfferItemInfo = { # Item URL with https    "TitleStr": "3-комн. кв., 31,4 м, 5/8 этаж", # Offer title [str]    "PriceFloat": 10000000.0, # Price [float]    "PriceSqmFloat": 133333.0, # CALCULATED Price per square meters [float]    "SqMFloat": 31.4, # Square meters in flat [float]    "FloorCurrentInt": 5, # Current floor [int]    "FloorTotalInt": 8, # Current floor [int]    "RoomCountInt": 3  # Room couint [int]}

Для начала получим список элементов ценовых предложений.


lOfferListCSSStr = 'div[data-name="Offers"] > div:not([data-name="BannerServicePlaceInternal"]):not([data-name="getBannerMarkup"]):not([data-name="AdFoxBannerTracker"])'lOfferList = inWebDriver.find_elements_by_css_selector(css_selector=lOfferListCSSStr)

Далее циклическая обработка каждого ценового предложения.


for lOfferItem in lOfferList:

Извлечем параметры из WEB страницы: Заголовок, Стоимость общая, URL на карточку.


lTitleStr = lOfferItem.find_element_by_css_selector(css_selector='div[data-name="TopTitle"],div[data-name="Title"]').text # Extract title textlPriceStr = lOfferItem.find_element_by_css_selector(css_selector='div[data-name="Price"]  > div[class*="header"],div[data-name="TopPrice"] > div[class*="header"]').text # Extract total pricelURLStr = lOfferItem.find_element_by_css_selector(css_selector='a[class*="--header--"]').get_attribute("href") # Extract offer URLlOfferItemInfo["TitleStr"] = lTitleStr # set the titlelPriceStr = lPriceStr.replace(" ","").replace("","") # Remove some extra symbolslOfferItemInfo["PriceFloat"] = round(float(lPriceStr),2) # Convert price to the float type

Извлечем недостающие параметры алгоритмическим путем.


  • Если в заголовке содержится слово "Апартаменты"


    lREResult = re.search(r".*, (\d*,?\d*) м, (\d*)/(\d*) эта.", lTitleStr)  # run the relOfferItemInfo["RoomCountInt"] = 1 # Room countlSqmStr = lREResult.group(1)lSqmStr= lSqmStr.replace(",",".")lOfferItemInfo["SqMFloat"] = round(float(lSqmStr),2) # sqm countlOfferItemInfo["FloorCurrentInt"] = int(lREResult.group(2)) # Floor currentlOfferItemInfo["FloorTotalInt"] = int(lREResult.group(3)) # Floor totallOfferItemInfo["PriceSqmFloat"] = round(lOfferItemInfo["PriceFloat"] / lOfferItemInfo["SqMFloat"],2) # Sqm per M
    

  • Если в заголовке не содержится слово "Апартаменты"


    lREResult = re.search(r".*(\d)-комн. .*, (\d*,?\d*) м, (\d*)/(\d*) эта.", lTitleStr) # run the relOfferItemInfo["RoomCountInt"] = int(lREResult.group(1)) # Room countlSqmStr = lREResult.group(2)lSqmStr= lSqmStr.replace(",",".")lOfferItemInfo["SqMFloat"] = round(float(lSqmStr),2) # sqm countlOfferItemInfo["FloorCurrentInt"] = int(lREResult.group(3)) # Floor currentlOfferItemInfo["FloorTotalInt"] = int(lREResult.group(4)) # Floor totallOfferItemInfo["PriceSqmFloat"] = round(lOfferItemInfo["PriceFloat"] / lOfferItemInfo["SqMFloat"],2) # Sqm per M
    


В примере выше применяется магия регулярных выражений


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


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


Выше (на шаге 2) мы уже находили CSS селектор указателя на следующую страницу. Нам нужно выполнить действие клика .click() по этому элементу.
Но при тестировании выяснилось, что функция .click от Selenium отрабатывает некорректно для этой страницы (не происходит переключение). В связи с этим у нас есть уникальная возможность использовать функциональность JavaScript на самой странице через Selenium. А уже из JavaScript выяснилось, что функция нажатия по указателю страницы отрабатывает корректно. Для этого выполним следующую команду:


inWebDriver.execute_script("""document.querySelector('div[data-name="Pagination"] li[class*="active"] + li a').click()""")

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


# wait while preloader is activelDoWaitBool = Truewhile lDoWaitBool:    lPreloaderCSS = inWebDriver.find_elements_by_css_selector(css_selector='div[class*="--preloadOverlay--"]') # So hard to catch the element :)    if len(lPreloaderCSS)>0: time.sleep(0.5) # preloader is here - wait    else: lDoWaitBool = False # Stop wait if preloader is dissappear

Итоговую структуру сохраним в .json файл.


# Check dir - create if not existsif not os.path.exists(os.path.join('Datasets',lResult['SearchKeyStr'])):    os.makedirs(os.path.join('Datasets',lResult['SearchKeyStr']))# Save result in filelFile = open(f"{os.path.join('Datasets',lResult['SearchKeyStr'],lDatetimeNowStr.replace(' ','_').replace('-','_').replace(':','_').replace('.','_'))}.json","w",encoding="utf-8")lFile.write(json.dumps(lResult))lFile.close()

Шаг 4. Обработка нештатных ситуаций


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


  • Зависает ползунок загрузки при переключении на сл. страницу
  • При переключении на следующую страницу открывается совсем не следующая страница (иногда, но случалось :) )

Но роботы не боятся таких проблем (на то они и роботы :) ).


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


  • Зависает ползунок загрузки при переключении на сл. страницу


    # wait while preloader is active. If timeout - retry all joblTimeFromFLoat = time.time() # get current time in float (seconds)lDoWaitBool = Truewhile lDoWaitBool:lPreloaderCSS = inWebDriver.find_elements_by_css_selector(css_selector='div[class*="--preloadOverlay--"]')if len(lPreloaderCSS)>0: time.sleep(0.5) # preloader is here - waitelse: lDoWaitBool = False # Stop wait if preloader is dissappearif (time.time() - lTimeFromFLoat) > 15: # check if timeout is more than 15 seconds    lRetryJobBool = True # Loading error on page - do break, then retry the job    if inLogger: inLogger.warning(f"Ожидание загрузки страницы более {15} с., Робот повторит задание сначала")    break # break the loopif lRetryJobBool == True: # break the loop if RetryJobBool is truebreak
    

  • При переключении на следующую страницу открывается совсем не следующая страница (иногда, но случалось :) )


    lPageNumberInt = int(inWebDriver.find_element_by_css_selector(css_selector='li[class*="--active--"] span').text) # Get the current page int from web and check with iterator (if not equal - retry all job)if lPageNumberInt == lPageCounterInt:... Код робота ...else:lRetryJobBool = Trueif inLogger: inLogger.warning(    f"Следующая страница по списку не была загружена. Была загружена страница: {lPageNumberInt}, Ожидалась страница: {lPageCounterInt}")
    


Шаг 5. Консолидировать код в проекте робота


Соберем все блоки воедино.


Получим следующий пакет (открыть на GitLab):


# Init Chrome web driver with extensions (if applicable)# Import sectionfrom selenium import webdriverimport timeimport re # Regexp to extract info from stringimport jsonimport datetimeimport osimport reimport copyimport logging# Store structure (.json)"""{    "SearchKeyStr": "МСК_Тверской",    "SearchTitleStr": "Москва, район Тверской", # Title of the search [str]    "SearchURLStr": "https://www.cian.ru/cat.php?deal_type=sale&engine_version=2&in_polygon%5B1%5D=37.6166_55.7678%2C37.6147_55.7688%2C37.6114_55.7694%2C37.6085_55.7698%2C37.6057_55.77%2C37.6018_55.77%2C37.5987_55.77%2C37.5961_55.7688%2C37.5942_55.7677%2C37.5928_55.7663%2C37.5915_55.7647%2C37.5908_55.7631%2C37.5907_55.7616%2C37.5909_55.7595%2C37.5922_55.7577%2C37.5944_55.7563%2C37.5968_55.7555%2C37.6003_55.7547%2C37.603_55.7543%2C37.6055_55.7542%2C37.6087_55.7541%2C37.6113_55.7548%2C37.6135_55.756%2C37.6151_55.7574%2C37.6163_55.7589%2C37.6179_55.7606%2C37.6187_55.7621%2C37.619_55.7637%2C37.6194_55.7651%2C37.6193_55.7667%2C37.6178_55.7679%2C37.6153_55.7683%2C37.6166_55.7678&offer_type=flat&polygon_name%5B1%5D=%D0%9E%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C+%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0&room1=1&room2=1", # URL of the CIAN search [str]    "SearchDatetimeStr": "2020-08-01 09:33:00.838081", # Date of data extraction,  [str]    "SearchItems": {        "https://www.cian.ru/sale/flat/219924574/:": { # Item URL with https            "TitleStr": "3-комн. кв., 31,4 м, 5/8 этаж", # Offer title [str]            "PriceFloat": 10000000.0, # Price [float]            "PriceSqmFloat": 133333.0, # CALCULATED Price per square meters [float]            "SqMFloat": 31.4, # Square meters in flat [float]            "FloorCurrentInt": 5, # Current floor [int]            "FloorTotalInt": 8, # Current floor [int]            "RoomCountInt": 3 # Room couint [int]        }    }}"""########################### Init the Chrome web driver###########################gChromeExeFullPath = r'..\Resources\GoogleChromePortable\App\Chrome-bin\chrome.exe'gExtensionFullPathList = []gWebDriverFullPath = r'..\Resources\SeleniumWebDrivers\Chrome\chromedriver_win32 v84.0.4147.30\chromedriver.exe'def WebDriverInit(inWebDriverFullPath, inChromeExeFullPath, inExtensionFullPathList):    # Set full path to exe of the chrome    lWebDriverChromeOptionsInstance = webdriver.ChromeOptions()    lWebDriverChromeOptionsInstance.binary_location = inChromeExeFullPath    # Add extensions    for lExtensionItemFullPath in inExtensionFullPathList:        lWebDriverChromeOptionsInstance.add_extension (lExtensionItemFullPath)    # Run chrome instance    lWebDriverInstance = None    if inWebDriverFullPath:        # Run with specified web driver path        lWebDriverInstance = webdriver.Chrome(executable_path = inWebDriverFullPath, options=lWebDriverChromeOptionsInstance)    else:        lWebDriverInstance = webdriver.Chrome(options = lWebDriverChromeOptionsInstance)    # Return the result    return lWebDriverInstancefrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as EC# def to extract list of offers from one jobdef OffersByJobExtractDict(inLogger, inWebDriver, inJob):    # BUG 0 - if timeout - retry the job +    # BUG 1 - do mouse scroll to to emulate user activity - cian can hold the robot    # BUG 2 - check the page to retry job offer if page is not next +    # BUG 3 - RE fall on Апартаменты-студия, 85,6 м, 4/8 этаж +    lRetryJobBool = True # Init flag if some error is raised - retry    while lRetryJobBool:        lRetryJobBool = False  # Set false until some another action will appear        lResult = copy.deepcopy(inJob) # do copy the structure        lFilterURLStr = lResult["SearchURLStr"]        inWebDriver.get(lFilterURLStr) # Open the URL        lDatetimeNowStr = str(datetime.datetime.now())        lResult.update({            "SearchDatetimeStr": lDatetimeNowStr, # Date of data extraction,  [str]            "SearchItems": {} # prepare the result        })        # Get List of the page        lNextPageItemCSS = 'div[data-name="Pagination"] li[class*="active"] + li a'        lNextPageItem = inWebDriver.find_element_by_css_selector(lNextPageItemCSS)        lPageCounterInt = 1 # Init the page counter        while lNextPageItem:            lPageNumberInt = int(inWebDriver.find_element_by_css_selector(css_selector='li[class*="--active--"] span').text) # Get the current page int from web and check with iterator (if not equal - retry all job)            if lPageNumberInt == lPageCounterInt:                lOfferListCSSStr = 'div[data-name="Offers"] > div:not([data-name="BannerServicePlaceInternal"]):not([data-name="getBannerMarkup"]):not([data-name="AdFoxBannerTracker"])'                lOfferList = inWebDriver.find_elements_by_css_selector(css_selector=lOfferListCSSStr)                for lOfferItem in lOfferList: # Processing the item, extract info                    lOfferItemInfo = { # Item URL with https                        "TitleStr": "3-комн. кв., 31,4 м, 5/8 этаж", # Offer title [str]                        "PriceFloat": 10000000.0, # Price [float]                        "PriceSqmFloat": 133333.0, # CALCULATED Price per square meters [float]                        "SqMFloat": 31.4, # Square meters in flat [float]                        "FloorCurrentInt": 5, # Current floor [int]                        "FloorTotalInt": 8, # Current floor [int]                        "RoomCountInt": 3  # Room couint [int]                    }                    lTitleStr = lOfferItem.find_element_by_css_selector(css_selector='div[data-name="TopTitle"],div[data-name="Title"]').text # Extract title text                    if inLogger: inLogger.info(f"Старт обработки предложения: {lTitleStr}")                    lPriceStr = lOfferItem.find_element_by_css_selector(css_selector='div[data-name="Price"]  > div[class*="header"],div[data-name="TopPrice"] > div[class*="header"]').text # Extract total price                    lURLStr = lOfferItem.find_element_by_css_selector(css_selector='a[class*="--header--"]').get_attribute("href") # Extract offer URL                    lOfferItemInfo["TitleStr"] = lTitleStr # set the title                    lPriceStr = lPriceStr.replace(" ","").replace("","") # Remove some extra symbols                    lOfferItemInfo["PriceFloat"] = round(float(lPriceStr),2) # Convert price to the float type                    #Check if Апартаменты                    if "АПАРТАМЕНТ" in lTitleStr.upper():                        lREResult = re.search(r".*, (\d*,?\d*) м, (\d*)/(\d*) эта.", lTitleStr)  # run the re                        lOfferItemInfo["RoomCountInt"] = 1 # Room count                        lSqmStr = lREResult.group(1)                        lSqmStr= lSqmStr.replace(",",".")                        lOfferItemInfo["SqMFloat"] = round(float(lSqmStr),2) # sqm count                        lOfferItemInfo["FloorCurrentInt"] = int(lREResult.group(2)) # Floor current                        lOfferItemInfo["FloorTotalInt"] = int(lREResult.group(3)) # Floor total                        lOfferItemInfo["PriceSqmFloat"] = round(lOfferItemInfo["PriceFloat"] / lOfferItemInfo["SqMFloat"],2) # Sqm per M                    else:                        lREResult = re.search(r".*(\d)-комн. .*, (\d*,?\d*) м, (\d*)/(\d*) эта.", lTitleStr) # run the re                        lOfferItemInfo["RoomCountInt"] = int(lREResult.group(1)) # Room count                        lSqmStr = lREResult.group(2)                        lSqmStr= lSqmStr.replace(",",".")                        lOfferItemInfo["SqMFloat"] = round(float(lSqmStr),2) # sqm count                        lOfferItemInfo["FloorCurrentInt"] = int(lREResult.group(3)) # Floor current                        lOfferItemInfo["FloorTotalInt"] = int(lREResult.group(4)) # Floor total                        lOfferItemInfo["PriceSqmFloat"] = round(lOfferItemInfo["PriceFloat"] / lOfferItemInfo["SqMFloat"],2) # Sqm per M                    lResult['SearchItems'][lURLStr] = lOfferItemInfo # Set item in result dict                # Click next page item                lNextPageItem = None                lNextPageList = inWebDriver.find_elements_by_css_selector(lNextPageItemCSS)                if len(lNextPageList)>0:                    lNextPageItem = lNextPageList[0]                    try:                        #lNextPageItem = WebDriverWait(lWebDriver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'div[data-name="Pagination"]')))                        #lNextPageItem.click()                        inWebDriver.execute_script("""document.querySelector('div[data-name="Pagination"] li[class*="active"] + li a').click()""")                    except Exception as e:                        print(e)                    time.sleep(0.5) # some init operations                    # wait while preloader is active. If timeout - retry all job                    lTimeFromFLoat = time.time() # get current time in float (seconds)                    lDoWaitBool = True                    while lDoWaitBool:                        lPreloaderCSS = inWebDriver.find_elements_by_css_selector(css_selector='div[class*="--preloadOverlay--"]')                        if len(lPreloaderCSS)>0: time.sleep(0.5) # preloader is here - wait                        else: lDoWaitBool = False # Stop wait if preloader is dissappear                        if (time.time() - lTimeFromFLoat) > 15: # check if timeout is more than 15 seconds                            lRetryJobBool = True # Loading error on page - do break, then retry the job                            if inLogger: inLogger.warning(f"Ожидание загрузки страницы более {15} с., Робот повторит задание сначала")                            break # break the loop                    if lRetryJobBool == True: # break the loop if RetryJobBool is true                        break                lPageCounterInt = lPageCounterInt + 1 # Increment the page counter            else:                lRetryJobBool = True                if inLogger: inLogger.warning(                    f"Следующая страница по списку не была загружена. Была загружена страница: {lPageNumberInt}, Ожидалась страница: {lPageCounterInt}")        if lRetryJobBool == False:  # break the loop if RetryJobBool is true            # Check dir - create if not exists            if not os.path.exists(os.path.join('Datasets',lResult['SearchKeyStr'])):                os.makedirs(os.path.join('Datasets',lResult['SearchKeyStr']))            # Save result in file            lFile = open(f"{os.path.join('Datasets',lResult['SearchKeyStr'],lDatetimeNowStr.replace(' ','_').replace('-','_').replace(':','_').replace('.','_'))}.json","w",encoding="utf-8")            lFile.write(json.dumps(lResult))            lFile.close()# Инициализировать Google Chrome with selenium web driverlWebDriver = WebDriverInit(inWebDriverFullPath = gWebDriverFullPath, inChromeExeFullPath = gChromeExeFullPath, inExtensionFullPathList = gExtensionFullPathList)lFilterURLStr = "https://www.cian.ru/cat.php?deal_type=sale&engine_version=2&in_polygon%5B1%5D=37.6166_55.7678%2C37.6147_55.7688%2C37.6114_55.7694%2C37.6085_55.7698%2C37.6057_55.77%2C37.6018_55.77%2C37.5987_55.77%2C37.5961_55.7688%2C37.5942_55.7677%2C37.5928_55.7663%2C37.5915_55.7647%2C37.5908_55.7631%2C37.5907_55.7616%2C37.5909_55.7595%2C37.5922_55.7577%2C37.5944_55.7563%2C37.5968_55.7555%2C37.6003_55.7547%2C37.603_55.7543%2C37.6055_55.7542%2C37.6087_55.7541%2C37.6113_55.7548%2C37.6135_55.756%2C37.6151_55.7574%2C37.6163_55.7589%2C37.6179_55.7606%2C37.6187_55.7621%2C37.619_55.7637%2C37.6194_55.7651%2C37.6193_55.7667%2C37.6178_55.7679%2C37.6153_55.7683%2C37.6166_55.7678&offer_type=flat&polygon_name%5B1%5D=%D0%9E%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C+%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0&room1=1&room2=1"lJobItem = {    "SearchKeyStr": "МСК_Тверской",    "SearchTitleStr": "Москва, район Тверской",  # Title of the search [str]    "SearchURLStr": lFilterURLStr,    # URL of the CIAN search [str]}OffersByJobExtractDict(inLogger = logging, inWebDriver = lWebDriver, inJob = lJobItem)

Подведем итоги


Уважаемые роботизаторы.


Мы успешно преодолели вторую серию туториалов по созданию роботов в WEB приложениях с помощью open source pyOpenRPA. Готовый проект робота Вы можете найти в репозитории pyOpenRPA по ссылочке.
В нашем аресенале уже имеются изученные технологии упраления Desktop и WEB приложениями. В следующей статье-туториале мы остановимся на особенностях роботизированного управления мышью и клавиатурой.


Пишите комменты, внедряйте бесплатных роботов, будьте счастливы :)


До скорых публикаций!

Подробнее..

Как металлургический комбинат с помощью RPA расширил возможности закупок

16.12.2020 14:07:22 | Автор: admin
image

Магнитогорский металлургический комбинат входит в число крупнейших мировых производителей стали и занимает лидирующие позициии среди предприятий черной металлургии России.

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

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

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

Главная цель, которая стояла перед роботизацией работы с поставщиками металлолома расширение перечня поставщиков и объема закупки сырья с минимальными финансовыми рисками для ММК.

Основные задачи


Для реализации данной цели важно было организовать контроль на всех этапах поставки:

  • выдача аванса при условии проверки готовности товара к отгрузке с контрольной точки в адрес ММК, в том числе параметров отправки груза
  • отслеживание груза до момента прибытия на склад ММК
  • своевременное закрытие аванса в ERP

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

С помощью разработки робота удалось закрыть все бизнес-процессы по работе с контрагентами поставок металлолома: оплата, учет поставок, бухучет, ведение БД. Общая продолжительность внедрения данного проекта RPA составила почти полгода. Реализовали кейс силами Центра компетенций RPA и инноваций ООО ММК-Информсервис.

Детали внедрения


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

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

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

В качестве базы для роботизации процесса мы выбрали ERP-систему, потому что высокий уровень автоматизации в ней позволил удачно интегрировать RPA-решение и органично встроить его в процессы взаимодействия с большим количеством поставщиков. Нашим специалистам удалось быстро наладить связку со всеми контрагентами, в том числе и банками. Кстати, со стороны банка некоторые коллеги даже не поняли, что мы подключили робота, и удивлялись как нам удается выполнять такие большие объемы работ без ошибок.

Робот делает в едином процессе:

  • получение инвойса от поставщиков
  • проверку отправки вагонов

Робот заходит в транспортную систему РЖД, подтверждает, что вагон находится на колёсах, и следует по всему бизнес-процессу вплоть до выдачи авансового платежа в адрес контрагента.

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

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

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

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

image

image

Результаты


Внедрение RPA помогло автоматизировать и увеличить скорость обработки 32 тысяч бизнес-операций и 20 тысяч файлов с учетом осуществления контроля за поставкой, что позволило сократить трудозатраты процесса закупок металлолома (теперь в нем занято всего 4 человека).

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

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

image

Перспективы


Мы масштабировали робота и на поставщиков резидентов РФ. RPA-платформа позволила сделать это достаточно быстро, несмотря на разницу в бизнес-процессах. Объемы документов, с которыми работают резиденты больше и нагрузка на робота увеличилась в 5 раз, но при этом мы не потратили существенных ресурсов на само масштабирование.

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

Также на ММК планируется внедрить несколько роботов по факторингу, по разбору и выписке платежей по корпоративным и VIP-картам, роботизировать рутинные процессы по работе с ERP-системой и многих других роботов.
Подробнее..

Автоматизация работы в SAP с помощью роботов

19.03.2021 18:12:20 | Автор: admin

Решения SAP на сегодня являются самыми распространенными ERP-системами в мире. Они умеют интегрировать между собой разные бизнес-процессы, упрощают работу отраслевых специалистов за счет огромного количества шаблонных решений. Но освоение сотрудниками систем SAP, разворачивание и внедрение их в производство являются масштабными и сложными задачами. Последние тенденции здесь использование специализированных RPA-решений для автоматизации и упрощения работы. В этой статье мы рассматриваем основные барьеры, сложности и преимущества автоматизации работы с SAP-системами с помощью RPA, а также даем гайд-инструкцию по старту роботизации SAP в UiPath Studio.

Драйверы автоматизации

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

Исследование SAPinsider Benchmark Report, опубликованное летом 2020 года, в ходе которого организаторы опросили более 200 клиентов SAP, показало, что они все чаще внедряют технологии автоматизации, чтобы полностью охватить цифровую трансформацию, максимизировать эффективность процессов и создать полноценный work-life баланс для своих сотрудников.

Потребность в автоматизации объясняется двумя основными причинами. Во-первых, у SAP сложный интерфейс, требующий времени на обучение работе с ним. И вторая проблема в конце 2027 года поддержка пакета бизнес-приложений SAP Business Suite 7 закончится. Останется лишь один вариант мигрировать заранее на SAP S/4HANA.

(SAP S/4HANA это новая система планирования ресурсов предприятия (ERP) на основе ИИ и машинного обучения.).

Поддержку этой системы продлили как минимум до конца 2040 года.

Первый драйвер роботизированной автоматизации это сами сотрудники, у которых есть потребность сосредоточить свои усилия на интеллектуальной деятельности вместо рутины. Второй неминуемый переход компаний на SAP S/4HANA.

Согласно данным того же исследования основными задачами автоматизации для клиентов SAP являются:

  • сквозная автоматизация между решениями SAP и другими системами компании (58%),

  • стандартизация процессов в рамках миграции SAP S/4HANA (40%),

  • настройка и выполнение программных роботов для автоматизации процессов (RPA) (40%).

Барьеры автоматизации

Основные сложности, ограничивающие возможности автоматизации работы с системами SAP это использование предприятием кастомизированных IT-систем и наличие нестандартизированных процессов.

Многие из опрашиваемых SAPinsider используют кастомизированные и изолированные ERP, что затрудняет внедрение и масштабирование решений автоматизации. Корпоративные архитекторы могли бы легче масштабировать системы автоматизации на всю организацию, если бы каждое ее подразделение и каждая используемая ERP-система работали с одними и теми же стандартизованными процессами. Поэтому многие респонденты заявили, что теперь видят в SAP S/4HANA возможность начать все сначала, оптимизировать процессы и внедрить автоматизацию.

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

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

Остановимся подробнее на роботизации SAP. Какой бы путь компания для себя ни выбрала на ближайшее будущее: продолжать работать в SAP ECC или осуществлять миграцию на SAP S/4 HANA роботы могут здесь помочь.

Барьеры, ограничивающие внедрение решений по автоматизации работы с SAP, в случае роботизации не являются проблемой. Роботы одинаково будут работать как со стандартной системой SAP, так и с кастомизированной, имеющей большое количество Z-таблиц.

При этом роботизированные процессы могут включать в себя работу с разными системами, позволяя роботизировать сквозные процессы. Даже при использовании Citrix.

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

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

Самая популярная область для автоматизации это финансы. Компании автоматизируют:

  • обработку дебиторской задолженности (79%),

  • обработку кредиторской задолженности (76%),

  • управление счетами-фактурами (68%).

Помимо финансов, организации автоматизируют широкий спектр процессов:

  • тестирование SAP S/4HANA (43,5%),

  • миграцию данных для SAP S/4HANA (42%),

  • онбординг новых сотрудников (40%),

  • ERP-риски и контроль (36%),

  • обработку заработной платы (34%),

  • обработку производственных заказов (30%),

  • складские операции (30%).

Автоматизация с помощью UiPath

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

UiPath является официальным партнером SAP, у компании есть все необходимые сертификаты. Решения UiPath работают почти со всеми интерфейсами и облачными приложениями SAP:

  • SAP WinGUI

  • SAP S4/HANA

  • SAP SuccessFactors

  • SAP BAPI

  • SAP WebGUI

  • SAP S4/HANA Cloud

  • SAP Ariba

  • SAP RFC

  • SAP Fiori

  • SAP C4/HANA

  • SAP Concur

  • SAP OData

  • SAB Business Client

  • SAP Hybris

  • SAP Fieldglass

SAP WinGUI-это наиболее часто используемый интерфейс для доступа к функциям SAP в приложениях SAP, таких как SAP ERP, SAP ECC, SAP S/4 HANA, а также в семействе приложений SAP Business Suite, таких как SAP BI/BW, SAP CRM, SAP SCM, SAP PLM и других. При работе с SAP WinGUI в UiPath Studio можно использовать любые темы (Belize, Blue Crystal, Corbu), для работы робота обязательно должен быть включен SAP WinGUI scripting.

Кроме того, с помощью UiPath можно комфортно поддерживать очень актуальную сегодня миграцию на SAP S/4 HANA на всех ее стадиях от проектирования до разработки:

  • Подготовка данных;

  • Мэппинг и кастомизация;

  • Миграция данных;

  • Тестирование;

  • Постмиграция.

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

Акселераторы UiPath можно загрузить непосредственно с UiPath Marketplace, они содержат готовые рабочие процессы для наиболее часто используемых транзакций и приложений в SAP ECC и SAP S/4HANA. Их можно использовать как для автоматизации роботизированных процессов SAP, так и в качестве тестовых примеров. Время на внедрение робота с помощью акселераторов сокращается на 30%.

Гайд: с чего начинается работа по роботизации SAP в UiPath Studio

Для автоматизации SAP можно использовать стандартные активности UiPath, такие как Click или Type into. Но мы сегодня остановимся подробнее на тех активностях, которые были специально разработаны для взаимодействия с SAP.

SAP Logon активность для подключения к системе SAP через окно SAP Logon.

Необходимо прописать в соответствующих полях SAP Logon Path и Connection Name

C помощью SAP Logon мы выбираем то подключение, с которым хотим работать.

SAP Login используется для входа конкретного пользователя.

Нужно заполнить поля: клиент, пользователь, пароль, язык.

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

Call Transaction вызов транзакции. В параметрах указываем код транзакции.

Click Toolbar Button нажатие на действие, доступное в Toolbar.

Select Menu Item выбор элемента меню, по аналогии с активностью Click Toolbar Button в списке для выбора отобразятся даже вложенные элементы.

Для того, чтобы понять как с ними работать, посмотрим пример. На скриншоте отображена транзакция создания нового заказа (ME21N).

Используя активность Click Toolbar Button, мы получаем доступ к тем элементам, которые могут быть доступны с использованием горячих клавиш:

Несмотря на то, что на экране мы не видим элемент подменю Other Purchase Order, робот может вызвать его напрямую без совершения нескольких кликов по различных подменю. Активность Select Menu Item нам даст возможность выбрать любой из элементов меню и подменю.

Активность Read Status Bar позволяет прочитать сообщения из статус-бара. На основе полученных сообщений, робот может принимать решение о дальнейших действиях. Например, если мы ввели в поиске некорректный номер заказа, появится сообщение об ошибке. У этой активности есть 3 выходных параметра:

Message Type стандартные типы статусов SAP: success, error и др.

Message Text сообщение в строке статуса

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

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

Expand Tree активность, позволяющая выбрать любой элемент в дереве SAP.

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

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

В последующем бухгалтер делает ряд проверок: ищет заказ в учетной системе 1С или SAP. Проверяет, что заказ действительно существует, что позиции в заказе совпадают с указанными в счете-фактуре, совпадают реквизиты поставщика, что есть поступление материалов на склад и т.д.. И только после выполнения всех этих проверок в систему заводится счет-фактура. Все эти действия могут выполняться роботом.

В очень упрощенном варианте процесс может выглядеть так:

Пример процесса работы со счетом-фактуройПример процесса работы со счетом-фактурой

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

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

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

В нашем случае робот извлекает данные заказа из SAP и проверяет сумму к оплате. Она не совпадает, и робот создает пользователю задачу в Action Center на проверку счета-фактуры.

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

В нашем примере задача проверки выглядит так:

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

После согласования с пользователем счёта-фактуры, робот автоматически продолжает свою работу. В SAP вызывается транзакция MIRO для заведения счетов-фактур, в которую робот вводит необходимые данные.

Посмотреть видео этого процесса с взаимодействием в SAP можно на YouTube-канале UiPath.

Что в итоге

Решение UiPath делает автоматизацию работы в SAP для бизнеса проще, чем когда-либо. UiPath является первой компанией RPA, получившей полную сертификацию как по SAP UI, так и по SAP API автоматизации. Подробнее с каталогом сертифицированных решений SAP можно ознакомиться здесь.

Автоматизация работы в SAP маленький кирпичик в задаче полной автоматизации предприятия. С помощью UiPath можно закрыть все сложности, связанные с этой задачей. Роботы могут автоматизировать работу как в SAP, так и в других приложениях, включая legacy-системы. Интеграция между системами становится как никогда простой, позволяя быстро разрабатывать и внедрять автоматизацию в эксплуатацию.

Подробнее..

Внедрение process mining аудит процессов в два клика

16.04.2021 12:14:51 | Автор: admin

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

Оптимизация автоматизации

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

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

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

Первые шаги: тестирование и выбор платформы

Для тестирования работы и возможностей process mining лучше выбирать небольшие проекты. При выборе платформы для process mining важно учесть ряд критических факторов: гибкость системы, функциональность, возможность простой интеграции с разными системами и стоимость лицензий. Одним из интересных решений является UiPath Process Mining, в котором есть встроенный модуль ETL, для компаний, только начинающих внедрение process mining, это большое преимущество. Его наличие внутри решения сильно облегчает развертывание в IT-системах.

Внедрение process mining всегда сопряжено с проблемой подготовки данных, которую обычно решают созданием специального пула подготовленных данных, для которых нужен выделенный data-сервер. Это дорогое удовольствие. PM дает возможность избежать этого, выгружая данные на собственные сервера, что позволяет не тратить финансы на поддержание работы внешних серверов и зарплаты обслуживающему персоналу.

Трудности перевода

При внедрении process mining в работу компании обычно бывает две основных сложности. Первая большие объемы данных, которые нужно анализировать. Вторая долгая автоматизация и наличие большого количества legacy-систем. Обе эти проблемы приводят к тому, что данных внутри компании много, но их невозможно анализировать, потому что они находятся в несвязанных друг с другом системах или представлены большим набором менеджерских дашбордов.

Кроме того сами процессы в компании могут быть устроены очень сложно, хотя

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

Как мы видим процессКак мы видим процессЧто происходит на самом делеЧто происходит на самом деле

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

Как это выглядит цепочка действий в интерфейсе Process MiningКак это выглядит цепочка действий в интерфейсе Process Mining

Process mining помогает в десятки раз ускорить восстановление процессов и делать это всего в несколько кликов, в отличие от ручного режима. С process mining поиск узких мест и выявление отклонений в процессах происходит практически в автоматическом режиме. Появляется объективность и достоверность, когда данные говорят сами за себя. Отпадает потребность в интервью с пользователями процесса. Аналитика появляется как на самом общем уровне, так и на уровне максимальной детализации по каждому сотруднику:

Действия, отфильтрованные по конкретному сотрудникуДействия, отфильтрованные по конкретному сотруднику

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

Подробнее..

UiPath Action Center удобное взаимодействие роботов и людей

25.12.2020 14:07:02 | Автор: admin
image

В одном из последних исследований Deloitte сообщается, что 32% всех руководителей самым серьезным препятствием при масштабировании автоматизации считают разрозненность и фрагментарность бизнес-процессов. Новый продукт компании UiPath Action Center помогает собрать всё воедино и управлять автоматизацией из централизованного интерфейса. Кроме того, решение позволяет подключать сотрудников к автоматизированным процессам, результат которых требует верификации человеком; после чего возвращает процесс для завершения подходящим свободным роботам.

UiPath Action Center единый интерфейс, в котором пользователи могут видеть все свои задачи и документы, предпринимать нужные действия. Теперь не нужно просматривать сотни электронных писем вся информация и управление в одном месте. А если пользователь уже применяет какие-то внешние инструменты, то через API их можно связать вместе.

image
UiPath Action Center хаб для удобной передачи процессов от человека к роботу, и обратно.

Автоматизация бизнес-процессов для повышения экономической эффективности


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

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

image
Структура фрагментированного процесса с его передачей человеку для его промежуточной оценки.

image
Удобный интерфейс для взаимодействия человека и роботов

Сотрудничество роботов и людей


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

Видео Автоматизация обработки счетов-фактур с помощью UiPath Action Center


Автоматизация в один клик


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

Мониторинг комплексных потоков работ


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

image
Интерфейс UiPath Action Center с комплексными потоками работ

Сторонние интеграции


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

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

image
Интеграция со сторонними системами: распознавание структурированных документов

Гайд с примерами RPA-процессов


Сквозной рабочий процесс, в котором требуется проверка данных пользователем, настраивается в UiPath Studio с использованием шаблона и специальных готовых активностей (activity). Такой RPA-процесс генерирует задачи, которые будут выполняться пользователями в Automation Cloud. После того, как пользователь выполнил задачу, результат направляется обратно в процесс, и выполняется с помощью доступного робота UiPath. В контексте длительных бизнес-процессов это позволяет лучше распределять ресурсы и сокращать время простоя: фрагменты заданий могут быть выполнены любым свободным роботом.

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

UiPath Apps удобное дополнение к Action Center


Action Center позволяет пользователям обрабатывать приходящие от роботов задачи, если же необходимо создать приложение с удобным интерфейсом управления роботами, то есть low-code платформа UiPath Apps.

UiPath Apps обеспечивает динамический опыт взаимодействия, а с помощью инструментов RPA его можно упаковать в интуитивно понятный и удобный интерфейс. Low-code среда и возможность переносить готовые элементы в окружение разработки позволяют превращать бизнес-идеи в удобные приложения. Таким образом сотрудники компании могут получать прямой доступ к автоматизации и использовать ее для решения рабочих задач. UiPath Apps является отличным дополнением к UiPath Action Center, популяризует и значительно снижает порог для широкого использование RPA в бизнесе.

Что в итоге?


Релиз Action Center сыграл ключевую роль в расширении спектра бизнес-процессов, которые могут быть автоматизированы с помощью RPA. Готовые интеграции с решениями UiPath на основе ИИ и process mining дают широкие возможности автоматизации процессов с использованием Action Center и бесшовным переходом от человека к роботу.

Action Center теперь доступен не только для enterprise версий платформы, но и для пользователей облачного решения. Чтобы получить бесплатный доступ к Action Center необходимо воспользоваться Automation Cloud. UiPath постоянно работает над обновлениями Action Center и в ближайшее время в него добавится целый ряд полезных для бизнеса функций.
Подробнее..

Интервью с техдиректором ElectroNeek от написания кода к управлению процессами

13.04.2021 18:11:50 | Автор: admin
image

Я пообщался с основателями стартапа ElectroNeek: Сергеем (CEO), Дмитрием (CIO) и Михаилом (CTO). В конце интервью видео, где в прямом эфире собирают робота.

Дмитрий, пришли, пожалуйста фотку для КДПВ, где вы все вместе.
Не поверишь, мы так вживую и не встретились еще все за два года)

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

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

Что такое робот?

Михаил: Роботизация это эмуляция человека. Человека можно эмулировать в разных ипостасях. Можно физически. Робот ходит как человек. Робот кликает по монитору как человек. Набирает текст как человек. Никогда нет полной эмуляции человека. Но аспект эмуляции человека и есть роботизация.


Михайл, вас хантил Яндекс, но вы всё же решили работать в ElectroNeek, какая у вас мотивация работать в стартапе, а не на теплом гарантированном месте?

Михаил: Когда работаешь в стартапе ты сам кузнец своего счастья, а в компании ты ограничен.

Михаил, как тебя схантили?

Михаил:К тому моменту, я уже год как ушел из Акрониса, я перестал видеть свой вектор развития, хотел изучал разные технологии, делал pet-проекты. Мне хотелось делать что-то своё и я искал себе команду. А тем временем Димитрий и Сергей искали себе CTO и кинули клич по своим знакомым. Я был знаком с Дмитрием с университета, хотя особо и не общались, так и сконтачились. Я был готов к этому предложению.

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

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

Я увидел, что спрос есть, как минимум, в России. Дмитрий рассказал о глобальном рынке, в частности про США. Он до этого работал в Ernst & Young и занимался там RPA для Fortune 500 rкомпаний, так что хорошо представлял себе спрос.

Сергей и Дмитрий решили отличаться от конкурентов простым и удобным UX, сделать роботизацию более доступной для компаний любого размера. Мне нужно было знать, понимают ли мои потенциальные кофаундеры, какой будет интерфейс, в чем именно его классность. Я услышал честный ответ Мы не знаем. Ребята в моменте не знали, что именно должно быть, но планировали пробовать и выяснять.

Для меня была важна такая честность и открытость. Мне понравилось, что они честно рассказали о ситуации. Это важно для будущих взаимоотношений. Сказать всё как есть, и если человек адекватный, он поймёт. Когда вы честны, если где-то косяк вылезет, сразу можно смотреть на то, как решать проблему, независимо от того, кто накосячил.

Как выглядел Electroneek до твоего прихода в проект?

Михаил:До меня был рабочий прототип, который можно было показывать. Это был проект на GitHub, чтобы показать, что они примерно хотят сделать.

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

В чем особенность разработки RPA продукта от остальных?

Сергей: Чем отличается разработка RPA-платформы от продукта сам в себе. RPA платформа, в частности ElectroNeek это средство разработки. Средство по созданию чего-то по взаимодействию с чем-то третьим. Это не отдельный продукт как CRM, которая сама в себе и только иногда по API взаимодействует с чем-то третьим.

Пользователь на базе ElectroNeek создает программное решение (робота), который будет взаимодействовать с другими продуктами, которые меняются постоянно: браузеры, десктопы. Ты не контролируешь то окружение, с которым будет взаимодействовать результат разработки. Это накладывает огромные требования к качеству, к UX, к выработке продуктовых решений.

Зачем ещё один RPA-продукт на рынке?

Сергей: часто к нам приходят люди и говорят: Зачем вы разрабатываете, когда можно зайти на какой-нибудь веб сайт, скачать готовый модуль RPA кликера и его делать?. Да он сможет открыть блокнот, освоится с интернет-эксплорером, откроет Гугл. Но как только ты пойдешь дальше (как только появится XPath или селекторы), разные варианты сайтов, государственных или SaaS экосистем, ты столкнешься с тем, что оно не готово и не работает. А дальше, если ты занимаешься развитием собственной платформы, тебе это нужно подстраиваться под изменения, а если всё уже зашито намертво, то ты не можешь гибко подстраиваться к изменениям. Это у нас было на пилоте.

Как выбирали стэк технологий?

Михаил: Проект подразумевал, что будет и десктопная и web-части, классический front, классический back и десктопное приложение. И по-началу, проект не подразумевал большую команду. Я понимал, что первые несколько месяцев я буду один, расширения грандиозными темпами мы не планировали.

Мне нужно было обеспечить какую-то многостаночность, чтобы 1-3 человека могли делать всё. Потому мы выбрали Electron. Он позволяет на одном и том же языке (у нас это TypeScript) писать десктопное приложение, backend и frontend.

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

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

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

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

Я взял готовую библиотеку для визуализации. У нас основной продукт это среда разработки, и там есть визуализация блок-схем. Естественно, я не писал её сам, а взял открытую библиотеку joinjs. Она позволяет работать на уровне svg. С помощью векторных картинок рисовать интерфейсы.

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

Важно писать всё модульно, чтобы можно было выкинуть какой-то кусок и не запутаться в собственной паутине кода. Модульный подход позволяет быстро избавляться от библиотек.

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

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

Я взял стандартную библиотеку на C# UIAvtomation, ею же в тот момент пользовались наши конкуренты. Недавно мы ее заменили на более современную.

У этой библиотеки была обертка, довольно узкий API, который мы использовали. Потом мы эту библиотеку смогли выкинуть, прикрепить новую и адаптером к этому API приклеить. Это быстро безболезненно происходит, так и надо делать.



Как реализовывали фичи?

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

Буквально через месяц или два мы начали делать пилотный проект для Почты России.

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

Мы просто прокликивали это приложение, скрэпили данные оттуда и складывали на диск.

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

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

Когда приложение уже большое, на каждую фичу нужно обсуждение. На что фича повлияет, не сломает ли она что-то, а есть ли у нас другой способ. На старте пилить фичи легко, они ничего не ломают, потому что ломать ещё нечего.

Какой масштаб работы был для почты России?

Михаил: Приложение содержало всех сотрудников Почты России по всей стране. Руками это прокликать невозможно.

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

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

Как привлекали инвестиции?

Михаил: Нам нужен был рабочий прототип, который бы впечатлял инвесторов. Интерфейс решения для Почты России не был красивым, его делал я, а я не дизайнер. Я сделал под себя, IDE WebStorm Dark mode.



Ранние этапы прототипа



ElectroNeek в 2021

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

Что из себя представляли демонстрации инвесторам?

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

Первое время без этого никак. Нет нормального процесса разработки, когда есть полноценная dev среда, тестовая среда, стендинг, продакшн. Есть только одна среда, она тебе и стендинг и продакшн. Ты один и твоя задача делать быстрее. И работаешь ты как хирург, который только приготовился к операции и вскрыл код, а ему говорят: ну, давай зашивай быстрее и пошли.

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

Сергей: У нас были ограниченные ресурсы, мы получили всего 150 000 долларов из них наличными дошло 70 000. Это все что было, чтобы допилить прототип до нормального продукта и показать первые продажи в России и в США. Потом подняли 0,5 млн долларов. Мы показали быстрые продажи. В нас поверили инвесторы.

Михаил: Как только появились деньги стали расширять команду, чтобы сделать побыстрее хороший продукт. Что значит хороший? На ранней стадии не нужен идеальный продукт, хотя его можно сделать. Это ошибка. Многие умеют делать идеально, но это долго. Если быстро и хорошо, то слишком дорого. Все сразу невозможно. Соответственно, здесь надо сделать достаточно хорошо. Достаточно хорошо чтобы продавалось.

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

Как вы нанимаете разработчиков?

Михаил: Я больше обращаю внимание на способности, а не на опыт. Опыт важен, но разработка дело такое, где постоянно надо чему-то учиться. Когда в проект придётся затащить новую библиотеку, вероятность того, что ты ее знаешь, будет не очень высока. Знания важны базовые. Нам нужно было знание TypeScript, переучивать на другой язык долго. Фреймворк желательно знать. Мы используем от Angular.

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

Часто бывает, что люди пишут программу, а о каких-то кейсах просто не подумали. А кто он них будет думать? QA о них тоже может не подумать. А потом они стрельнут. При этом изначальных данных достаточно, чтобы эти корнер-кейсы предугадать. Это для меня отличие перспективного разработчика от неперспективного: какое количество корнер-кейсов на старте он способен предвосхитить.

Сколько сейчас людей?

Михаил: Шесть человек ядровая разработка, которые непосредственно платформу делают. Четыре человека, которые на платформе делают переиспользуемые решения. Они используют именно платформу, плюс дополнительные инструменты на скриптовых языках, и делают конкретные проекты. Я сейчас только про разработчиков говорю. Ещё есть отдел QA, отдельно продуктовая команда.

Как ты перешел от написания кода к управленческим обязанностям CTO?

Михаил: После получения инвестиций я ещё несколько месяцев активно писал код. QA мы хоть и наняли, но я в них особо не был уверен. Я сам писал код-ревью.

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

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

Вот вы смирились с падением качества, что дальше?

Михаил: Смотрим, нет у меня больше опции ревьюить код, это мы уже проходили. Что я ещё могу? Теперь можно процессные вещи налаживать.

Допустим, разработчики мёрджат не очень качественные фичи в основную ветку. Наверно с ревью что-то не так. Посмотрим. Смотришь, что люди ревьюят. Ага, вот на это внимание ребят обратить. Переходишь к инструкциям. Отлаживаешь процессы. Ищешь слабые места. Не пытаешься делать работу, а создаешь процессы.
Вот тут разработчики ревьюят, а фичи по прежнему мёрджат не очень. Давайте добавим тестирование фичи перед тем как её мёрджить. Добавили. Что получилось? Теперь QA не успевает их тестировать. Окей, наверно не все фичи надо таким образом тестировать, а только самые опасные, которые влияют на весь проект. Ты балансируешь

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

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

В идеале, если я в отхожу в сторону, то всё работает. На старте так невозможно. Шаг в сторону, все сломалось. А сейчас должно быть так, что я на месяц отошёл и ничего не сломалось.

Как понять когда надо нанимать специального человека?

Михаил: Хватает ли на это узкое горлышко человека? Если человек хотя на 70% будет загружен этой задачей, то можно нанять. Если человек тебе нужен на 5% времени, то наверно, ты пока сам с этим справишься.

Чем ты сейчас занимаешься?

Михаил: Я по прежнему занимаюсь процессами. И ещё долго буду ими заниматься.
Занимаюсь обсуждением фичей, как и Сергей. Это то, куда растёт наш продукт. Он пропускает это через свою призму, я через свою.

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

Как ты учишься?

Михаил: Сначала я четко формулирую проблему. Жизненный опыт многое уже позволяет решать. Я уже знаю гораздо больше, чем на момент выпуска из университета, но все равно есть проблемы, которые я не понимаю как решить.
Для начала я разбираюсь в чем проблема. Допустим, у меня нет какого-то инструмента. Гуглю, смотрю YouTube или какой-то курс, выясняю, как делают профессионалы в конкретной области.

Например, как тестировать большие приложения, когда очень много ручного тестирования? Не успеваем, что делать?

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

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

Задать рамки, в которых люди работают, и контролировать результат в этих рамках. Решения они принимают самостоятельно.

Если на проде какая-то проблема, решение может быть принято без меня. QA говорит, что задача критичная и может принять решение откатить. Мне не нужно для этого просыпаться. Главное, чтобы люди понимали рамки.

Совет самому себе в молодости?

Михаил: Мне на старте казалось, что сначала надо очень многому научиться. Чего-то я ещё не знаю. Не умею писать веб-сайт, не умею писать бекэнд. Мне хотелось сначала курс какой-то пройти или университет закончить. На самом деле нет. Возьми и попробуй. Гугл отличный инструмент, там вообще все есть. Решай проблемы точечно. Не умеешь конкретно это делать, конкретно это и научись делать. Не умеешь ты nginx настраивать, вот конкретно это и изучи.

Всего не изучишь. Слишком трудозатратно проходить многонедельный курс по программированию. Лучше начни программировать. Те проблемы, которые будут у тебя возникать, их и решай. Так быстрее. А ещё сильнее погружаешься в проблему, чем читая книжку. Если прочитал от корки до корки 600 страниц, то знания будут поверхностные. На опыте знания глубже.

Я открыл для себя Гугл, в том смысле, что я могу со своими знаниями, делать сложные вещи, гугля, и находя точечные решения для затыков. Я так и развивался в дальнейшем.

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

Расскажите про Service Organization Controls (SOС)?

Сергей: Если вы хотите делать приложение SaaS на американском рынке, особенно что-то, что будет работать в компаниях больше 200-500 человек, сразу возникнет вопрос про SOC (Security Organization Control). Пока его у тебя нет, все его спрашивают. Это история, которая причесывает политики организации распределение по уровню прав и доступа, как проектировать код, приходят аудиторы, проверяют.

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

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

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

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

Либо у тебя есть эта сертификация, SOС (она ещё дорого стоит для начинающего стартапа), либо компания присылают тебе многостраничный опросник о том, как у вас обеспечена безопасность. Ты его читаешь и половину из этого не понимаешь.

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

В какой-то момент, мы поняли, что к нам приходят такие клиенты, мы долго заполняем их опросники, а в результате сделки нет. Решили разобраться с этим вопросом.

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

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

Окей, таким путём мы будем долго идти. А может найдём компанию, которая нам упростит жизнь? Наши компанию. На тот момент мы уже были в Y Combinator. Мы задали этот вопрос ребятам оттуда, нам подсказали выпускников YC, которые автоматизируют эту историю. Услуга не бесплатная, но мы купили у них услугу. Это некоторая админка, в которую ты интегрируешь все свои сервисы. JetSuit, Bitbucket, Gitlab, Jira, AWS, Azure, у кого что. Программа сама изучает, где у тебя какие настройки, и говорит что и где тебе не хватает. Ты точечно исправляешь и автоматом закрываются все пункты, что в этой простыне есть.

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

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

Расскажи про Y Combinator глазами разработчика?

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

Если говорить по результату. Мы получили больше бизнесовых преимуществ. Так же помогли техническими ресурсами и до сих пор помогают. Сделали более правильную инфраструктуру в облаке.

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

Мы закончили YC в марте 2020, закрыли раунд 2,5 млн долларов. Начался существенный рост и команды разработки, и задач.

Как вы пришли к той продуктовой команде которая есть сейчас?

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

Сергей: Мы за последние 4-5 месяцев с марта по август, сначала взяли одного продакт-менеджера который имел опыт в RPA. Мы поработали с ним несколько месяцев и не получили результата. Мы не нанимали продакт-менеджера из серии мы тебя наймем и сразу польется золото, мы хотели прийти к четкому пониманию, какие фичи мы делаем, они нужны для захвата будущего рынка, для решения конкретных проблем клиента, для апсейла. Мы брали продакта на вполне измеряемые метрики и это обговаривали. К сожалению, оба продакта скатывались. Наша вина тоже в этом есть. Мы нанимали людей которые предлагали сделать фичу, потому что она красивая. А сколько она денег принесет? Ну, тяжело посчитать А кому она поможет? Как она поможет выигрывать текущие сделки или хотя бы их не проигрывать? У нас не получалось выстроить такую историю.

К чему в итоге мы пришли. Супер комфортная для нас схема, она очень драйвит нашу компанию.

У нас есть UX-продакт-менеджер, технологический продакт-менеджер, у нас есть Head of Engineering, есть CTO, есть CEO как представитель бизнеса. У нас сформирован продуктовый офис, где продукт нарезан на разные части. UX, анализ новых фич, инжиниринг. Мы с Михаилом выполняем роль фасилитаторов в случае приоритезации. Я еще отвечаю за sales-фичи. Дмитрий смотрит на то, как продуктовые фичи транслируются или могут транслироваться в маркетинговые возможности и инструменты, такие как наша глобальная библиотека ботов, созданных клиентами и партнерами.

У нас возникают спонтанные сессии для обсуждения серьезных задач. У нас также есть еженедельный полуторачасовой звонок, где мы планируем следующий спринт, который уже распределен по приоритетам внутри компании. Новые фичи у нас залетают по трем трекам: баги чиним то, что не работает, тормозит продажу или мешает текущим клиентам; UX чиним текущее, потому что мы знаем, что продукт всегда можно улучшить; добавляем новое в продукт, что позволит в будущем быть более эффективными. В таком фреймворке и работаем. Мы бы хотели прийти к одному человеку, который занимается всем продактом, но пока нам кажется, что это тяжело.

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

Можно ли при помощи вашего робота фармить в компьютерных играх, клики в ютюбе?

Дмитрий: На нашей базе один клиент сделал робота, который включает чайник.

Сергей: Робот любую кнопку может нажать. Мы даем средство разработки. Что на нём строят клиенты это на ответственности людей. Можно построить всё что угодно.

Сергей: Была у нас одна история. Клиент купил услугу, а потом написал: Я специально выбрал самую не развитую в ИТ направлении девушку в нашей компании, Олю. И вот Оля смогла с помощью ElectroNeek создать робота. Если Оля смогла, то любой в моей компании сможет. Я у вас покупаю продукт! Это высокий показатель простоты использования. Хотя в основном у нас пользуются разработчики junior или middle уровня. Они получают продукт, в любом стэке (веб, десктоп, есть API или нет), создать приложение (робота?), это свобода, которую дает наш продукт.

Дмитрий: Когда попадает продукт к инвесторам на раннеей стадии, то там историия с Олей повторялась, есть свои Оли среди инвесторов. Были ситуации когда в продукт залезали партнеры топовых американских фондов (Гэри Тэн из Initialized, бывший партнер YC и инвестор в Coinbase и Instacart). Партнер руками начал собирать робота.

Бонус: собираем робота в прямом эфире




Читать еще


Подробнее..

Перевод Вы можете использовать RPA, чтобы помочь с очисткой данных для аналитики

16.12.2020 16:22:14 | Автор: admin

Для будущих учащихся на курсе "Разработчик программных роботов (RPA) на базе UiPath и PIX" и всех интересующихся темой RPA подготовили перевод интересного материала.

Также предлагаем посмотреть запись демо-урока по теме
"Считывание данных и отправка результатов".


Этот инструмент не работает для больших данных (Big Data), но он может помочь вам подготовить ваши данные к анализу. Вот почему.

Большинство IT профессионалов видели бизнес-процессы, в которых пользователям приходилось включать документы, такие как счета-фактуры, в одну систему, а затем повторно вводить ту же информацию в другую систему, потому что не было простого способа автоматизировать интеграцию между системами. В аналитических проектах мы также видели, как в рамках подготовительного процесса по очистке данных пользователи вручную просматривают данные, чтобы найти адресные поля, ZIP-коды или имена, которые либо неполны, либо дублируются другими записями, а затем они вынуждены исправлять их вручную.

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

В связи с этим возникает вопрос: Может ли такая технология, как роботизированная автоматизация процессов (RPA) выполнять такую кропотливую работу по очистке данных?

Что такое RPA?

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

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

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

Где RPA подходит (и не подходит) для очистки данных.

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

Существуют также некоторые ограничения. Например, RPA может работать только со стандартными, структурированными, транзакционными данными. Она не работает с большими данными (Big data).

Но RPA это инструмент, который можно добавить в набор инструментов аналитики, использующий большие данные (Big data).

Большинство аналитиков используют данные, которые представляют собой комбинацию как структурированных, так и неструктурированных данных. Например, если вы хотите смоделировать распространенность COVID-19 среди жителей вашего города и составить карту "горячих точек", вам необходимо объединить данные о транзакциях медицинских систем с картографическими инструментами с помощью работы с большими данными (Big data).

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

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

Рассмотрите RPA как один из вариантов в своей аналитике

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

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


Узнать подробнее о курсе "Разработчик программных роботов (RPA) на базе UiPath и PIX".

Посмотреть открытый урок на тему "Считывание данных и отправка результатов".

ЗАБРАТЬ СКИДКУ

Подробнее..

Как мы роботизировали документооборот крупнейшего европейского ритейлера

28.01.2021 12:17:06 | Автор: admin

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

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

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

Идеальный сценарий для RPA! А для нас отличная возможность показать, как он грамотно и продуктивно реализуется.

С чем предстояло работать

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

Описанные выше проблемы возникали на этапе обработки документов. На стороне заказчика каждый день на эту задачу тратилось 72 часа. Это 9 полноценных бухгалтерских рабочих дней! Роботизации этого проекта от нас и ждали.

Подробное описание процесса сверки, с которым мы должны были работать:

Итак, что нужно сделать бухгалтеру, чтобы сверить доки? По готовым к сверке заказам в учетной системе формируется еxcel-отчет реестр заказов с их номерами, номерами приемки, магазином, наличием расхождений по количеству и стоимости и т.д. Чтобы сэкономить время, при работе с бумажными первичными документами бухгалтер выгружает их сканы из ЭХД (поиск в Directum по штрихкоду из отчета). Сканы нужны для того, чтобы сверить цены в заказе с ценами из документа поставщика.

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

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

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

Как видите, большая часть этого процесса механическая рутина. Идеальная цель для автоматизации! Однако классический путь доработки ERP-системы с интеграцией ее с СХД был заказчику закрыт: бэклог команд, занимающихся сопровождением и развитием этих систем, был расписан на месяцы вперед, а доработка системы сложна и дорога. В общем, классический кейс а давайте лучше робота: с ним не нужно будет дорабатывать информационные системы.

В качестве платформы роботизации был выбран UiPath: абсолютный лидер на рынке РФ и один из лидеров глобального рынка RPA, кроме того, уже обкатанный в головном офисе нашего партнера в Европе.

Чего мы хотели от робота?

У этой роботизации было несколько основных и вспомогательных целей. Основные цели были достаточно стандартные: процесс нужно было автоматизировать не менее чем на 90% (звучит впечатляюще, но для мира RPA это норма), сократив затраты на него по сравнению с ручным трудом. Второстепенные цели были любопытнее:

выявить аномальные расхождения, которые человек может пропустить;

снизить риск ошибки специалистов по товарному предложению;

предотвратить расширение штата бухгалтеров при увеличении объемов поставок;

ускорить проведение оплат поставщикам.

На основе всего этого мы поставили перед собой такие задачи:

разработать роботов, которые будут выполнять работу бухгалтеров;

разработать сервис их взаимодействия с бухгалтерами и СТП; не допускающий использования вил и факелов

реализовать процесс извлечения данных из сканов бумажных документов;

интегрировать роботов с системой распознавания бумажных документов.

Ну и как же без дополнительных требований от заказчика:

runtime-лицензии роботов должны использоваться максимально эффективно. Лишние действия, задержки все это должно быть сведено к минимуму;

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

отсутствие у роботов дублирования функций;

приоритизация срочных задач (например, отчетов);

минимизация поддержки решения после ввода в эксплуатацию;

автоматический онлайн-расчет окупаемости (дэшборд в Confluence);

и еще, чтоб участников процесса письмами/уведомлениями не спамило.

Подход к проблеме и проект

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

Итак, сформулировав процесс AS-IS, мы декомпозировали его на подпроцессы для роботизации. Получилось вот так:

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

Однотипные задачи мы сразу стали собирать в совместную обработку, помня о требовании об эффективном расходовании runtime-лицензии. На практике это значило, что если нужно выгрузить из ЭХД 10 доков, то открывать его мы будем 1 раз, выгружать нужное и 1 раз закрывать, а не открывать и закрывать для каждого документа.

Архитектуру системы полностью определило решение формировать списки задач для каждого роботизируемого процесса в СУБД (MS SQL). Тем более что, как мы выяснили, отчёт из учетной системы (на базе СУБД ORACLE) можно выгружать запросом. Поэтому мы решили сделать Link к БД учетной системы и настроить Job в БД для регулярной выгрузки новых приемок, готовых к сопоставлению. Этот Job будет также анализировать полученные данные и переводить приемки на нужный этап обработки: Требует согласования с СТП, Требует выгрузки в систему распознавания, Передать в оплату и т.д.

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

Что еще нужно было определить перед тем, как приступить к работе?

Архитектура распознания документов

Наш робоподопечный должен был уметь распознавать документы такое зрение ему мы сделали на известной платформе ABBYY FlexiCapture. У нее есть, во-первых, готовые шаблоны распознавания для первичных документов (мы лишь немного докрутили их под примеры заказчика). Во-вторых, она предоставляет удобный интерфейс для верификации результатов распознавания, а это экономит время тому, кто верифицирует.

В этом процессе было несколько критически важных точек: качественное извлечение табличной части документа; проверка артикулов в БД (да, номенклатура также выгружалась из БД ERP-системы); сверка суммы документов; проверка совпадения штрихкода на документе и в ERP.

В общем виде процесс распознавания получился следующий:

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

2. Робот открывает ЭХД и начинает выгрузку сканированных образов бумажных документов в горячую папку ABBYY FlexiCapture. Для каждого документа формируется файл описания, чтобы система ABBYY понимала, о какой приемке идет речь, и могла корректно выполнять запросы к справочникам ERP.

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

3.5. Если же ошибки присутствуют, то бухгалтеру ответственного за этот документ отдела приходит через e-mail напоминание о необходимости верифицировать документ. В приложении верификации видно документы с ошибками.

4. ABBYY FlexiCapture экспортирует проверенные данные в БД и устанавливает статус для соответствующих приемок Готово к дальнейшей обработке.

Формирование интерфейса

Для взаимодействия с пользователями изначально планировали использовать Jira, но затем мы приняли решение упростить интерфейс. Мы разработали собственный сервис по взаимодействию с пользователями. Если требуется согласовать расхождение, робот присылает сотруднику по товарному предложению ссылку в письме. При переходе по ней формируется web-страница, при этом проверяется, не был ли этот заказ уже согласован, а также имеет ли данный человек все необходимые права. На этой странице сотрудник выполняет согласование и вводит комментарий. После этого приемка в БД получает соответствующий статус для дальнейшей обработки роботом.

Что важно отслеживать в такой ситуации? Согласованные приемки, сотрудника, который их согласовал, а также его возможный комментарий. Но главное обязательно нужно выполнить дополнительную проверку согласования бухгалтером (в компании уже был случай, когда СТП по ошибке согласовал очень крупное расхождение в цене).

Формирование отчетности

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

Всего отчетов было реализовано четыре:

отчет по задачам бухгалтеров (требуются ли действия от бухгалтера?);

отчет главного бухгалтера (по задачам всех бухгалтеров);

общий отчет по выявленным расхождениям;

детальный отчет по расхождениям (с суммами по приёмкам и по поставщикам).

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

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

Формирование графиков в Confluence

Помимо отчетов, робот также должен был строить real-time графики окупаемости самого себя. Для этого был разработан набор представлений в БД, в которых рассчитываются ключевые метрики робота. Методология расчета метрик включает в себя все затраты на роботизацию процесса, в том числе стоимость лицензий, серверов, стоимость наших услуг, а также зарплату бухгалтеров, ведь полностью мы их не исключили из процесса. Для отображения графика на странице в Confluence используется плагин Database Query.

С какими трудностями мы столкнулись

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

Проблемы при заказе отчетов как сделать так, чтобы робот выполнял приоритетные задачи раньше других?

После реализации персонализированных отчетов мы столкнулись с проблемой приоритизации задач.

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

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

Таким образом, при наличии в очереди задач на формирование отчета, робот практически сразу брался за их выполнение.

Как заставить робота самого себя поднимать

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

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

В качестве основы всех процессов мы использовали Enhanced REFramework. Нас устраивали его расширенное логирование и централизованная обработка исключений.

Робот копил информацию о произошедших ошибках и выполнял соответствующие действия в зависимости от типа ошибки. В алгоритмы обработки ошибок были заложены попытки решить проблему локально, например, перезапустить текущую страницу в браузере. Если это не удавалось, то ошибка передавалась на централизованную обработку. Если ошибка повторялась 3 раза, то робот переходил к следующей приемке, а для этой устанавливался статус Завершено с ошибкой с отправкой уведомления администратору.

Переиспользование частоиспользуемых процессов (инвоуков)

Ввиду большого количества разрабатываемых процессов встает вопрос о переиспользовании повторяющихся разработок. Например, во все наши процессы входит взаимодействие с базой данных, во многие получение и отправка писем, открытие и закрытие учетных систем. Все разработанные последовательности действий, которые могут быть переиспользованы, мы собрали в отдельные библиотеки и объединили в nuget-пакеты по области их применения. Пакеты хранятся в оркестраторе и GIT, соответственно, все разработчики имеют доступ к актуальной версии.

Кастомные активности

Не обошлось без разработки собственных активностей. Например, мы не нашли в публичном доступе активностей для группировки, условного форматирования, задания размера колонок и строк в Excel. Также не было функционала, чтобы отметить письмо как непрочитанное, и других возможностей при работе с почтой Exchange. Мы разработали как свои собственные активности с нуля, так и расширили возможности уже существующих в UiPath активностей. Далее мы упаковали их в библиотеки UiPath с некоторыми общими пространствами имен, например:

работа с БД (получение данных по приемкам, по отчетам, сохранение статусов и т.д.);

работа с почтой (получение запросов от бухгалтеров, отправка уведомлений);

работа с Excel (форматирование, группировка, сортировка и т.д.);

работа с учетными системами (авторизация, проверка ошибок).

Все это используется в разных роботизируемых процессах разными роботами и хранится в Оркестраторе, оставаясь доступным для всех разработчиков.

Курьезный случай исчезновение штрихкодов

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

Этот случай очень показателен: многие думают, будто роботы могут сами принимать решения, совершать что-то незапрограммированное или даже сливать кому-нибудь на сторону конфиденциальную или коммерческую информацию. Конечно же, роботам это не интересно, и наши не исключение. Они работают по четким алгоритмам (скриптам), и любое отклонение просто невозможно, если только это не разработчик ошибся.

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

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

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

Результаты

Как мы говорили в самом начале, от нас требовалась оптимизация рабочего процесса на 90%. Как вычислить этот показатель? Для этого нужно сравнить время, которое будет потрачено на нужный процесс с роботом и без него. Мы определили, сколько занимали все составляющие роботизированной работы выгрузка актов, работа в ABBYY, составление отчетов и даже написание писем; задали резерв на обслуживание робота.

И выяснили, что с задачами, на которые штат бухгалтеров ежедневно тратил время девяти полностью занятых профессионалов, робот справляется примерно за половину одного рабочего дня (0,47 рабочего дня, если быть точным). Точный показатель 94% оптимизации. Это была победа!

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

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

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

Спасибо всем дочитавшим до этого момента. Если у вас возникли вопросы, мы будем рады на них ответить!

Подробнее..

RPA инструменты и не только

06.06.2021 16:09:40 | Автор: admin

Однажды на работе мне поставили R&D задачу создать бота, который будет "ходить" по сайту, выбирать товары, заполнять формы и оплачивать покупки. На тот момент мы писали часть Antifraud системы, которая позволяла детектировать ботов в браузере. И с этого момента все началось...

Оглавление

  1. Коротко о RPA

  2. Open source проекты

  3. Платные сервисы

  4. Test Automation

  5. RPA vs Test Automation

  6. Парсинг сайтов и RPA

  7. BPM и RPA

  8. Безопасный RPA...

  9. Пример работы бота на Python

  10. Как детектировать бота?

  11. Выводы

Коротко о RPA

RPA (Robotic process automation) - это система, которая позволяет автоматизировать рутинные задачи (заполнение формы, перенос почты, и пр.), также можно сделать бота, который будет постоянно мониторить цены у конкурента, но это уже совсем другое... Если какое-то действие повторяется, то стоит задуматься над автоматизацией. Но не стоит пытаться автоматизировать все вокруг, хотя этого иногда очень хочется.

Более четкое определение:

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

За время создания своего бота я нашел несколько направлений RPA:

Направления в RPAНаправления в RPA

Open source проекты

Начнем сразу с open source проектов, т.к. они представляют большой интерес.
Рассмотрим инструменты относительно языков программирования:

RPA open sourceRPA open source

Конечно это не все инструменты, но по крайней мере основные, которые мне удалось найти. Я Python разработчик, поэтому рассмотрю только те инструменты, которые попробовал на практике.

Selenium & rpaframework

Объединил 2 технологии в 1 короткий обзор т.к. использовал их для одной и той же задачи: создание бота, который выбирает товары, добавляет их в корзину и оплачивает покупки. Цель: сдетектировать и заблокировать бота, используя fingerprint и треки мыши. О том как детектировать ботов будет в разделе "Безопасный RPA...".

Selenium

SeleniumWebDriver это инструмент для автоматизации действий веб-браузера. В большинстве случаев используется для тестирования Web-приложений, но этим не ограничивается. Очень часто с помощью данного инструмента создаются различные боты.
Selenium IDE - инструмент для создания сценариев быстрого воспроизведения ошибок; расширение Chrome и Firefox, которая будет выполнять простую запись и воспроизведение взаимодействий с браузером.

RPA Framework

RPA Framework - это набор библиотек и инструментов с открытым исходным кодом для RPA, предназначенный для использования с Robot Framework и с Python. Имеет синхронизацию с Selenium и Playwright, библиотека для автоматизации Chromium, Firefox и WebKit с помощью единого API. Входит в набор инструментов Robocorp для автоматизации с открытым исходным кодом.

3 in 1 (Desktop / Web / Mobile)

Robocorp

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

TagUI

TagUI - бесплатный инструмент RPA от AI Singapore, финансируемой программой по ускорению развития ИИ. Проект TagUI является открытым и бесплатным. Его легко настроить и использовать, он работает в Windows, macOS и Linux.

TagUI RPATagUI RPA

Из всех инструментов мне больше всего понравился RPA Framework, у которого есть возможность работать с Playwright, также в этом фреймворке очень удобные selector в отличие от Selenium, что позволяет гораздо быстрее писать код.

Пример на Selenium и на RPA Framework

Selenium

from selenium import webdriverfrom selenium.webdriver.common.keys import Keysfrom webdriver_manager.chrome import ChromeDriverManagerdriver = webdriver.Chrome(executable_path=ChromeDriverManager().install())driver.get("https://www.google.com/")elem = driver.find_element_by_xpath("/html/body/div[1]/div[3]/form/div[1]/div[1]/div[1]/div/div[2]/input")elem.send_keys("Python news")elem.send_keys(Keys.RETURN)driver.close()

RPA Framework

from RPA.Browser.Playwright import Playwrightfrom Browser.utils.data_types import KeyActionlib = Playwright()lib.open_browser("https://www.google.com/")lib.fill_text(selector="input", txt="Python news")lib.keyboard_key(KeyAction.press, "Enter")lib.close_browser()

На мой взгляд у RPA Framework более удобное API.

Платные сервисы

Сказать что их много значит ничего не сказать. Платных Enterprise версий огромное количество. Но проблема в том, что многие организации не понимают истинной разницы в возможностях одного программного обеспечения RPA и другого. Возможно, они также слышали, что RPA предназначена только для очень крупных корпораций и что минимальные первоначальные инвестиции в лицензирование могут достигать 100 000 долларов в год, что теперь не всегда так.

RPA productsRPA products

Список ведущих поставщиков RPA на основе матрицы пиковых значений Everest Group для поставщиков технологий RPA 2020:

Everest группирует инструменты RPA в три основных сегмента в зависимости от их возможностей, влияния на рынок и способности успешно поставлять продукт. Everest также выделяет UiPath, Automation Anywhere, Blue Prism, Intellibot и Nividous в качестве лидеров.

UiPath vs Automation Anywhere vs Blue Prism

Компания Blue Prism, основанная в 2001 году, была пионером в секторе RPA и использовала термин Robotic Process Automation. Четыре года спустя генеральный директор UiPath Дэниел Дайнс технически основал UiPath как компанию под названием DeskOver. Однако только в 2015 году она действительно родилась и была переименована в RPA-компанию.

В таблице ниже представлен краткий снимок каждого из трех инструментов RPA с точки зрения доходов, размера, сотрудников и оценки:

VSVS

Изначально более длинная траектория Blue Prism сделала ее идеальным решением. Большинство его клиентов были крупными банковскими и финансовыми учреждениями - одними из немногих организаций, которые могли позволить себе изначально высокую стоимость входа RPA.

Спустя годы на рынок вышли более доступные конкуренты, такие как UiPath и Automation Anywhere с такими же (или лучшими) возможностями, повышенной гибкостью и простотой внедрения. В результате RPA была демократизирована для компаний любого размера во многих отраслях, включая малые и средние организации.

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

  1. UiPath - 4.6 / 5 звезд с 4722 отзывами

  2. Automation Anywhere оценивает 4,5 / 5 звезд с 4310 отзывами

  3. Blue Prism 4,4 / 5 звезд по 158 отзывам

Что делает UiPath самой популярной платформой RPA?

UiPath превратился в единственную платформу RPA на рынке, созданную для поддержки полного жизненного цикла автоматизации. Портфель продуктов компании продолжает оставаться в авангарде инноваций, постоянно расширяя свои традиционные возможности RPA за счет включения таких инструментов, как интеллектуальный анализ процессов, встроенная аналитика, улучшенные компоненты AI Fabric, RPA на основе SaaS и автоматизация тестирования.

UiPath также считается одним из самых быстрых решений RPA в отрасли - часто в 3-4 раза быстрее, чем другие продукты RPA.

Другие ключевые сильные стороны UiPath:

  1. Long Running Workflows

  2. Machine Learning and Predictive Analytics

  3. Seamless Interconnectivity

  4. Process Document Understanding

  5. Citizen Development

  6. Customer Satisfaction

  7. Flexible Licensing Model and Low Cost of Entry

Оригинал статьи со сравнением: https://www.auxis.com/blog/top-rpa-tools

Для точной оценки состояния RPA компаний я использовал агрегатор G2, он позволяет выбрать нужный инструмент в зависимости от различных показателей (рейтинг, цена, язык и пр.). Также можно построить G2 график для выбора инструмента, выглядит он следующим образом:

G2 GridG2 GridМини обзор популярных и не очень RPA

UiPath

Самое замечательное в UiPath - это простота использования.

UiPath прост в установке и имеет возможности разработки на основе пользовательского интерфейса. Подробное онлайн-руководство поможет быстро освоиться. Согласно Quadrant Review компании Gartner, UiPath имеет первоклассную команду поддержки клиентов, и в целом UiPath идеально подходит для компаний, стремящихся к быстрому внедрению RPA.

GUI UiPathGUI UiPath

Automation Anywhere

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

GUI Automation Anywhere GUI Automation Anywhere

Blue Prism

Blue Prism, старейший инструмент в индустрии RPA, в последние годы неуклонно растет.

Blue Prism специализируется на сквозной RPA для компаний из списка Fortune. Blue Prism также предлагает высококлассных роботов. Роботы не только очень сложные, но и обладают глубокими возможностями создания сценариев для настройки расширенных сетей RPA. Имеет отличные возможности отладки и потрясающую масштабируемость.

GUI Blue PrismGUI Blue Prism

Microsoft Power Automate

Microsoft Power Automate предоставляет простое и эффективное решение RPA. Самым значительным преимуществом Microsoft Power Automate является простота настройки. Данные из экосистемы Microsoft легко доступны. Легко управлять оркестрацией робота.

WinActor

WinActor - это инструмент RPA, разработанный NTT Group. Он широко используется в таких отраслях, как разработка программного обеспечения и финансы.

GUI WinActorGUI WinActor

Test Automation

Автоматизация тестирования помогает разработчикам и тестировщикам экономить время и увеличивать охват тестированием за счет автоматизации повторяющихся тестовых случаев.

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

Automation Testing Tools

Инструментов ни сколько не меньше чем у RPA.

Вот небольшой список:

Инструмент

Open source

Платная

Selenium

+

Appium

+

SoapUI

+

TestProject

+

Cerberus Testing

+

Katalon Studio

+

IBM Rational Functional Tester

+

Telerik Test Studio

+

TestComplete

+

Ranorex

+

Kobiton

+

Subject7

+

HPE Unified Functional Testing (UFT)

+

Сводная картинка по некоторым инструментам:

QA Automation toolsQA Automation tools

RPA vs Test Automation

Коротко: это практически одно и то же.

RPA и Test Automation можно рассматривать как одно и то же. Компании используют их для автоматизации задач, экономии затрат и освобождения времени сотрудников для других дел.

Сходства:

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

Различия:

  • сценарии тестирования, созданные для автоматизации тестирования, зависят от тестируемой системы (SUT).

  • RPA не различают, автоматизируют ли они перенос данных в систему бухгалтерского учета или, например, помечают ваши электронные письма.

  • RPA инструменты не зависят от программного обеспечения, в котором запущен процесс.

Парсинг сайтов и RPA

Цели у компаний, которые занимаются парсингом сайтов, разные, но тем не менее такие инструменты есть и некоторые из них являются полноценным RPA инструментом (например, Octoparse).

Process Bots VS Search Bots

Process Bots VS Search BotsProcess Bots VS Search Bots

Сильные стороны RPA:

  • Low Code UX

  • Управление входами и выходами через UX

  • Работа с авторизацией для бизнес-приложений

  • Передача данных в бизнес-процессе

  • Бизнес-шаблоны для определенных шаблонов использования (обслуживание клиентов, финансовые таблицы и т.д.)

Сильные стороны поискового робота:

  • Масштабирование для одновременной обработки десятков тысяч страниц

  • Отсутствие конфигурации и автоматическая обработка для множества типов веб-страниц

  • Поисковые роботы автоматически адаптируются при изменении страниц

  • Богатая индивидуальная конфигурация

  • Всестороннее чтение HTML страницы (Имя автора; UPC продукта)

  • Автоматическое извлечение настроения из текста

  • Извлечение связанных сущностей из текста (организации, местоположения, люди и т.д.)

Но какие боты лучше?

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

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

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

Теперь возьмем поискового бота с поддержкой AI. Вводим один сайт например, в Crawlbot Diffbot, ждем несколько минут, и тысячи страниц распознаются и анализируются как страницы продуктов. Загружаем данные в формате JSON или CSV, либо загружаем приложение или панель инструментов с выбранными результатами. Основная технология, лежащая в основе этого варианта использования, возможно будет чем боты RPA. Поисковые боты сами ускоряют чтение и классификацию Интернета!

Инструменты для парсинга

Scrape.do

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

Scrapingdog

Scrapingdog - это инструмент для очистки веб-страниц, который упрощает работу с прокси-серверами, браузерами, а также с CAPTCHA. Этот инструмент предоставляет HTML-данные любой веб-страницы за один вызов API. Одна из лучших особенностей Scraping dog - это наличие API LinkedIn.

ParseHub

ParseHub - это бесплатный инструмент веб-скребка, разработанный для извлечения онлайн-данных. Этот инструмент поставляется в виде загружаемого настольного приложения. Он предоставляет больше функций, чем большинство других скребков, например, вы можете очищать и загружать изображения / файлы, загружать файлы CSV и JSON. Вот список других его функций.

Diffbot

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

Octoparse

Octoparse выделяется как простой в использовании инструмент для парсинга веб-страниц без кода. Он предоставляет облачные сервисы для хранения извлеченных данных и ротации IP-адресов для предотвращения блокировки IP-адресов. Вы можете запланировать парсинг в любое определенное время. Кроме того, он предлагает функцию бесконечной прокрутки. Результаты загрузки могут быть в форматах CSV, Excel или API.

ScrapingBee

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

Luminati

Luminati - это веб-парсер с открытым исходным кодом для извлечения данных. Это сборщик данных, обеспечивающий автоматизированный и настраиваемый поток данных.

Scraper API

Scraper API - это прокси API для парсинга веб-страниц. Этот инструмент помогает управлять прокси-серверами, браузерами и CAPTCHA, поэтому вы можете получить HTML-код с любой веб-страницы, выполнив вызов API.

Scrapy

Еще один в нашем списке лучших инструментов для парсинга - Scrapy. Scrapy - это платформа для совместной работы с открытым исходным кодом, предназначенная для извлечения данных с веб-сайтов. Это библиотека для парсинга веб-страниц для разработчиков Python.

Import.io

Инструмент для парсинга веб-сайтов с оперативным управлением всеми веб-данными, обеспечивая точность, полноту и надежность. Import.io предлагает конструктор для формирования собственных наборов данных путем импорта данных с определенной веб-страницы и последующего экспорта извлеченных данных в CSV. Кроме того, он позволяет создавать более 1000 API-интерфейсов в соответствии с вашими требованиями. Есть приложение для Mac OS X, Linus и Windows.

BPM и RPA

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

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

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

CAMUNDACAMUNDAСервисы BPM с интеграцией RPA

Camunda

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

Основные преимущества:

  • Проектирование сквозного процесса

  • Согласование сценариев RPA

  • Оперативноенаблюдение задействиями ботов RPA

  • Аналитика RPA

ELMA

В BPM-системе ELMA робот участвует впроцессе наравне собычными пользователями. В гибких бизнес-процессах ELMA роботы могут постепенно заменять пользователей системы задача зазадачей. Освободившиеся отскучной работы сотрудники смогут перераспределить это время исвой опыт наболее интересные творческие иполезные длякомпании задачи.

Выгоды длябизнеса отиспользования RPA + BPM:

  • Снижение издержек нарутинные операции.

  • Масштабирование бизнеса безрасширения штата.

  • Освобождение времени сотрудников наболее интеллектуальный труд.

  • Лучший Customer Experience засчет качества искорости сервиса.

ProcessMaker

ProcessMaker - это простое в использовании программное решение для управления бизнес-процессами (BPM) и рабочими процессами. Сочетает корпоративную разработку с низким уровнем кода и ведущую в отрасли интеллектуальную автоматизацию рабочих процессов.

Безопасный RPA...

Взлом RPA

Можно ли взломать RPA? Да, можно. Например, обработка данных с сайта (загрузка картинок, текста и пр.), откуда робот может скачать зараженный скрипт под видом обычной картинки, а скаченный скрипт может повлиять на работу бота, добавляя новые правила в обработку, или просто остановит его. Много что можно сделать, выбор огромный.

Риски безопасности, на которые стоит обратить внимание:

  • Риски выбора инструмента: выбор нужного инструмента от проверенного производителя. Компании обычно выбирают инструменты, не соответствующие их требованиям.

  • Операционные риски или риски исполнения: развертывание правильной операционной модели необходимо для уменьшения функциональных проблем или проблем с производительностью.

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

  • Раскрытие конфиденциальных данных:malware проникает в систему и создает сценарий при котором данные пользователей утекают в сеть.

  • Отказ в обслуживании: создания необходимых условия для остановки работы бота.

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

Проблема безопасности данных может быть разбита на два тесно взаимосвязанных момента:

  • Безопасность данных

  • Безопасность доступа: Цель - исключить возможность неавторизованного доступа пользователей и манипулирования личными данными, с которыми имеют дело роботы.

RPA для пентеста

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

Продолжение следует...

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

Подробнее..

Кто такие citizen developers и как они двигают вперед цифровую трансформацию туториал по созданию робота

28.05.2021 18:18:56 | Автор: admin

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

При написании этой статьи мы пообщались со специалистом финансового отдела одного из Российских провайдеров цифровых услуг и решений, использующей в своей работе Studio X. Светлана не имела опыта разработки до знакомства с сервисами UiPath. С помощью Studio X она менее чем за полгода научилась роботизировать RPA-процессы.

Светлана рассказала нам немного о своём опыте:

Сложности конечно были. По указанной ссылке я установила программу (UiPath Studio X), больше 4 месяцев смотрела презентации, видео, читала материалы на сайте, но ничего не получалось повторить. Потом я прошла видеообучение со специалистом UiPath, Ильей и на практике освоила азы роботизации.

Правда не всё получилось сразу. Я долго мучалась, но у меня не выделялись нужные области в документах, как на обучении. Тем не менее, я создала своего первого робота через картинки, как объяснил позже Илья.

Комментарий от автора: Светлана автоматизировала удалённый рабочий стол через картинки это значит, что использовались не классические селекторы, а технология Computer Vision (компьютерное зрение), о которой мы рассказали здесь. Нужные области это селекторы, на примере ниже станет более понятно о выделении каких областей идёт речь.

Далее состоялась встреча с Ильёй, на которой я смогла показать своего первого робота. Оказалось, что для Oracle нужно было установить еще донастройку Java.

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

После установки донастроек я переделала своего первого робота, он получился простой, его основной задачей является блокировка позиций.

Я пользуюсь сервисами UiPath каждый день и уже создала около 10 роботов, которых применяю в своей работе с разной периодичностью. Некоторыми роботами пользуюсь ежедневно, а каких-то использую раз в месяц. Есть несколько роботов, которые создают заявки в Oracle на добавление новых контрагентов.

Недавно возникла срочная задача проставить адреса уже существующим контрагентам. Я решила ее с помощью робота: прописала шаги в UiPath, и в итоге результат удалось получить в разы быстрее, чем вручную.

Знаю, что можно создавать и сложных многозадачных роботов, поэтому очень хочу изучить UiPath досконально!.

Темпы оцифровывания бизнеса все время растут, а после пандемии COVID-19 они совершили качественный скачок. В исследовании компании KMDA говорится, что в 2020 году на 20% (по сравнению с 2018 годом) выросло количество российских компаний, приступивших к реализации цифровой трансформации. Соответственно, увеличилась и потребность в компетенциях IT-специалистов, компаниям стало значительно не хватать разработчиков и айтишников других профилей.

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

Раньше citizen developers обычно создавали простые однопользовательские решения на основе Microsoft Excel и Access. Сегодня low-code инструменты не требуют от пользователя особых технических знаний и навыков, и они могут без труда разрабатывать ведомственные, корпоративные и даже общедоступные приложения.

Зачем нужны citizen developers?

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

Для наглядности можно посмотреть на график, на котором по оси ординат мы измеряем выгоду от роботизации процесса, а по оси абсцисс количество задач. Самую большую выгоду (на один процесс) мы получаем при роботизации процессов с большим числом транзакций, например, акты сверок. Роботизировали один раз автоматизировали сразу сотни тысяч транзакций. Число таких процессов у компании конечно. Количество задач, которые могут автоматизировать citizen developers, наоборот, неограниченно. Но каждая такая задача приносит несоразмерную с затратами на разработку в центре компетенций или силами подрядчика прибыль. Однако, если посчитать площадь под графиком, то мы увидим, что выгода от citizen development сопоставима с роботизацией крупных процессов с большим числом транзакций. Именно поэтому имеет смысл подключать бизнес-пользователей к разработке RPA-процессов для себя. Минимальными затратами можно получить серьезную прибыль в масштабах компании.

Чтобы цифровая трансформация работала, автоматизация должна касаться всех уровней внутри компании, и здесь citizen developers выступают евангелистами автоматизации. Они ускоряют процесс разработки и внедрения автоматизации на уровне отдельных сотрудников и отделов. В то время как RPA-разработчики работают над глобальными автоматизациями в масштабах всей организации, citizen developers могут найти повседневное применение инструментам автоматизации в своей собственной работе.

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

Как становятся citizen developers

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

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

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

В отличие от RPA- разработчиков и IТ-команд citizen developers создают новые решения только с использованием предварительно одобренных технологий. Их продукты чаще всего используются на индивидуальном и командном уровне, хотя не исключено, что они могут найти более широкое применение в масштабе всей организации.

Решения UiPath для citizen developers

Одним из решений UiPath для citizen developers является Studio X это среда разработки, которую используют бизнес-пользователи для создания своих проектов по автоматизации. Интерфейс студии очень простой и user friendly:

Слева на панели есть группы основных действий, которые связаны с соответствующими приложениями: Excel, PowerPoint, SAP и т.д. Рядом с ними находится колонка ресурсов это сущности, с помощью которых можно выполнять действия в приложениях: сортировать, фильтровать и т.д. Например, если мы хотим работать с Excel, то мы перетаскиваем ресурс на рабочее поле и выбираем конкретный файл, с которым будем работать.

Рассмотрим простой пример, как можно в Studio X сделать простейшую автоматизацию создать робота, забирающего значение текущего времени из поисковика.

Шаг 1

Заходим в браузер на Google.com и гуглим текущее время в Москве. Для этого выбираем ресурс User Application Browser. Studio X говорит, что необходимо указать приложение для автоматизации:

Шаг 2

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

Шаг 3

Далее выбираем активность Type Into, чтобы задать роботу текстовое поле для ввода:

Шаг 4

Нужно указать куда вводить текст, для этого надо выделить поисковую строку в Google. После этого нажимаем кнопку Подтвердить.

И указываем, что нужно ввести Текущее время в Москве. После этого нужно дать указание роботу нажать на кнопку Поиск. Для этого используем активность Click:

Шаг 5

И там же указываем объект это кнопка поиска Google:

Шаг 6

После этого роботу нужно получить данные со значением текущего времени используем для этого активность Get Text и выделяем строчку со временем:

Шаг 7

Полученное значение времени сохраним в переменную для дальнейшего использования. Назовем ее Время Москва:

Шаг 8

И в завершении используем активность вывода сообщения Message Box.

Пишем Точное время в городе Москва и дальше добавляем сохраненную переменную:

Вот как выглядит результат работы робота:

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

Такие простые автоматизации без труда могут быть освоены citizen developers и использоваться ими для роботизации рутинных процессов на местах.

У UiPath есть не только продукты, специально разработанные для citizen developers, но и специализированные курсы по автоматизации для бизнес-пользователей.

Как компании используют citizen development

Тренд citizen development набирает обороты в последние полтора года среди клиентов UiPath в Азиатско-Тихоокеанском регионе (APAC).

Австралийский Heritage Bank приступил к автоматизации в начале 2017 года. Теперь у него есть полноценная команда по автоматизации, управляющая 12 unattended и 60 attended роботами.

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

Еще один пример успешного внедрения citizen development компания VITAL. В конце 2017 года VITAL начала работать с RPA для автоматизации повторяющейся работы с данными, чтобы в итоге стать цифровым сервисным центром.

Руководство компании понимало, что для массового привлечения к автоматизации citizen developers необходимо расширение их прав и возможностей, а это требует дополнительного времени, а также базовых знаний программирования. В процессе работы с кадрами выяснилось, что не каждый сотрудник готов и может стать RPA-разработчиком. Однако, людей со способностями и мотивацией можно обучить основным техническим скиллам и сделать из них citizen developers.

На данный момент компания тестирует UiPath StudioX, инструмент UiPath, с помощью которого бизнес-пользователи могут автоматизировать процессы без кодирования. Это позволяет сотрудникам без опыта самостоятельно быстро создавать и обслуживать программных роботов.

Citizen development: факторы успеха

Если обобщить опыт внедрения работы citizen developers, то можно выделить три ключевых фактора успеха такой автоматизации:

  • поддержка руководства компании,

  • грамотные коммуникации с коллективом,

  • поддержание уверенности сотрудников в полезности RPA.

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

Citizen development это в первую очередь инвестиции в людей, а не в технологии. Если компания правильно мотивируют своих сотрудников, то она может добиться потрясающих результатов в масштабировании автоматизации. А бот для автоматизации работы с отчетами, разработанный 65-летней сотрудницей, станет обыденностью, а не чем-то удивительным.

Подробнее..

Лайфхаки для роботизации 1С

03.06.2021 20:19:56 | Автор: admin

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

Основная проблема связана с тем, что все доработки, реализуемые 1С-программистами устанавливаются в лучшем случае поверх чистой конфигурации от самого вендора, а в худшем на целый пласт других доработок от других разработчиков.

Часто такие надстройки слетают при обновлении версии базовой конфигурации 1С, что требует как минимум их повторного включения, а чаще повторной разработки с учетом изменения внутренней кухни конфигурации от вендора.

Рассказываем о том, как при помощи UI Framework избежать подобных проблем роботизации в 1С. Благодаря этому фреймворку UiPath можно роботизировать процессы, в которых участвует несколько приложений, систем и сайтов, гораздо быстрее, чем при помощи программирования в 1С. Подробности ищите в посте.

Статья написана при поддержке архитектора, технического специалиста UiPath: Валентина Драздова.

Попытки обойти проблемы 1С снаружи

Некоторые разработчики не встраивают свои решения непосредственно в конфигурацию 1С, а создают отдельно стоящие приложения, которые обращаются непосредственно к 1С с использованием интерфейсов COM-объектов или взаимодействуют с сервером 1С через web-сервисы. Как правило, такой подход действительно устраняет проблему при обновлении конфигурации, так как обновление не влияет на внешнее ПО, а интерфейсы COM-объектов и веб-сервисов меняются крайне редко. Недостатком данного подхода является то, что от разработчиков требуется больше компетенций, чем просто программирование в 1С, а следовательно больше затрат на тестирование совместимости, что влечет за собой увеличение общей стоимости проекта.

Роботизация как ключ к быстром изменениям

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

Вызовы для RPA со стороны 1C

Однако, несмотря на все предоставляемые преимущества, RPA-платформы часто не дают полностью роботизировать любой процесс в 1С. Мы решили разобраться в теме и выявили причины.

Практически все RPA-решения взаимодействуют с интерфейсами одними и теми же способами:

  1. Ориентирование на селекторы (уникальные идентификаторы и структуру вложенности элементов в рамках окна). Это довольно надежный метод, так как он позволяет работать с приложениями даже в тех случаях, когда они не показываются на переднем плане.

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

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

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

Рис. 1 Пример проблемы выбора элемента меню в 1С 8.3 робот видит блок меню, но не может увидеть конкретные кнопки менюРис. 1 Пример проблемы выбора элемента меню в 1С 8.3 робот видит блок меню, но не может увидеть конкретные кнопки меню

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

UI Framework универсальная таблетка от UiPath

В отличие от множества других RPA-решений платформа UiPath предлагает использовать собственную разработку, которая называется UI Framework. Особенность фреймворка заключается в максимальной абстракции методов взаимодействия, что позволяет применять разные режимы поиска элементов интерфейса, в том числе и комбинации их вариантов для достижения наилучшего результата.

При работе с UI Framework разработчик RPA может выбирать индивидуально для каждого компонента каким именно методом робот будет его искать:

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

AA режим использования средств Microsoft Active Accessibility. В данном режиме UiPath использует интерфейс специальных возможностей Windows, который позволяет людям с плохим зрением взаимодействовать с программами. В основном данный метод наиболее применим для старых приложений, реализованных на чистом WinAPI без применения современных технологий.

UIA режим использования средств Microsoft UI Automation. В данном режиме UiPath использует методы доступа, предоставляемые для современных приложений Windows. Как правило, это приложения, использующие технологии WPF и универсальные приложения Windows (известные так же, как приложения магазина Windows 8/Windows 10).

Рис. 2 Пример успешного выбора элемента меню в 1С 8.3 благодаря выбору UI Framework UIA робот видит кнопки меню, а не блокРис. 2 Пример успешного выбора элемента меню в 1С 8.3 благодаря выбору UI Framework UIA робот видит кнопки меню, а не блок

Методики поиска Ui Framework надежнее, чем способы с координатами или изображением. Однако, только одного корректного выбора UI Framework недостаточно. Например, на формах ввода документов 1С можно встретить следующую проблему существует несколько полей, и ни одно поле не помечено специальными идентификаторами. Как результат после выбора одного поля робот видит его в нескольких местах сразу:

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

Использование разных режимов работы с интерфейсами позволяет достичь более высоких результатов при определении тех или иных компонентов управления в 1С, однако, только их недостаточно, и именно здесь приходят на помощь дополнительные средства:

Поиск по тексту если элемент управления содержит определенную надпись (или имеется неизменная часть формируемой надписи), RPA-разработчик может указать роботу от UiPath о том, что искомый компонент должен искать именно этот текст.

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

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

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

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

Повторное использование действий

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

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

Рис. 5 - Пример использования готовой настроки выбора кнопки "Печать" из репозитория объектовРис. 5 - Пример использования готовой настроки выбора кнопки "Печать" из репозитория объектов

Репозиторий объектов располагается на компьютере разработчика, что дает возможность применять добавленные селекторы во всех проектах, которыми он занимается. Если роботизацией занимается команда разработчиков - имеется возможность создания репозитория в специальной UI-библиотеке. UI-библиотеки можно распространять через оркестратор UiPath, благодаря чему все разработчики и роботы всегда будут иметь доступ к последней версии селекторов.

Помимо хранения репозитория объектов в UI-библиоетках можно создавать такие же последовательности, блок схемы и конечные автоматы, как и в обычных проектах. После публикации и использования - они будут доступны в виде набора готовых активностей. Например, если в нескольких проектах необходимо искать контрагента в 1С - можно выделить этот блок в библиотеку и просто вызывать его. В случае, если в 1С произойдет изменение интерфейса - разработчику достаточно изменить только библиотеку, а не десяток проектов, где необходимо выполнить это действие.

Рис. 6 Пример использования собственной библиотеки действий, созданной в UiPathРис. 6 Пример использования собственной библиотеки действий, созданной в UiPath

Адаптация к изменениям

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

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

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

Computer Vision дополнительная таблетка для сложных случаев

Несмотря на большие возможности поиска элементов управления в UI Framework в платформе 1С существует гораздо больше проблем для RPA-разработчиков, чем изначально можно предположить. Например, одной из сложностей при роботизации 1С являются таблицы. Если с веб-версией таблиц роботы от UiPath справляются очень легко, то вот волшебные Windows-таблицы, которые умеют превращаться в деревья, иногда ставят UI Framework в тупик. Однако, там где нельзя получить доступ к данным напрямую техническим способом имеется возможность использовать компьютерное зрение. Мы уже рассказывали о преимуществах компьютерного зрения при работе с удаленными рабочими столами. Однако, хотим лишь указать на то, что проблема с таблицами и прочими сложностями платформы 1С, отлично решается именно с использованием Computer Vision.

Кейс: как с помощью RPA заносить данные в 1С

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

Еще несколько плюсов роботизации 1С с помощью UiPath

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

Отдельно стоит отметить движение UiPath в сторону citizen developers, а именно предоставление бизнес-пользователям, далеким от программирования, возможности самостоятельно делать простых роботов, в том числе и для 1С. Таким образом, когда вашим сотрудникам понадобится роботизация они смогут сделать ее самостоятельно в короткие сроки не ожидая долгих согласований от отдела разработки (или же привлечения сторонних организаций и фрилансеров).

Подробнее..

Test Suite удобный инструмент автоматического тестирования

03.12.2020 18:17:56 | Автор: admin
image

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

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

Чтобы сделать выбор в сторону автоматизации, следует разобраться в ее плюсах и минусах.

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


Вместе с тем автоматизация имеет место и ряд недостатков, таких как:
  1. Если тестируемое ПО часто модифицируется, это будет требовать постоянных затрат на поддержку скриптов в актуальном состоянии.
  2. Изначально большие затраты на разработку автоматизированных тестов, делающие нецелесообразной автоматизацию разовых задач.
  3. Стоимость программных платформ автоматизации может быть достаточно высокой, а у бесплатных инструментов, обычно, более скромный функционал, меньше возможностей из коробки и меньшее удобство работы.


Что нужно учитывать перед автоматизацией тестирования?
  1. Насколько хорошо инструмент для автоматизации распознает элементы управления в приложении, с которым придется работать, это особенно актуально для, например, мобильных приложений или толстых клиентов, особенно написанных на старых платформах, таких как Delphi. Если элементы не распознаются, то необходимо найти плагин или соответствующий модуль. Если вы не можете надежно работать с тем приложением, тестирование которого надо автоматизировать, инструмент вам не подходит.
  2. Оценить время, которое требуется на поддержку скриптов, написанных с помощью выбранного инструмента, основные проблемы и сложности. Часто усилия требуются только на первых этапах работы, при освоении нового приложения, но иногда выбранный инструмент настолько неудобен, что лекарство становится хуже болезни
  3. Понять насколько удобно пользоваться инструментом для написания новых скриптов. Сколько требуется на это времени, насколько можно структурировать код, насколько он читаем, есть ли поддержка библиотек, работа с репозиториями кода и т.д.


Автоматизация тестирования с помощью RPA



Роботизация бизнес-процессов (RPA) интенсивно развивается и, в силу сходства бизнес задач и подходов, может быть полезной в автоматизации тестирования и разработки. При том, что по миру сейчас процент покрытия автоматизированным тестированием в среднем не больше 30%, применение гибких и простых инструментов, таких как RPA, может помочь его поднять до приемлемых величин (считается, что хорошим процентом покрытия для автоматизации тестирования является 60-70%).

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

Современные решения, такие как UiPath RPA позволяют частично эту проблему снять за счет применения умного захвата элементов UI, понимающего, что внешний вид приложения или структура может, в определенных пределах, меняться; и репозитория объектов, который позволяет централизованно управлять таксономией UI элементов.

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

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

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

Вопрос стоит очень остро. В Test Suite есть функционал по работе с генерируемыми тестовыми данными, что, конечно, проблему не решает, но частично снимает, например за счет возможности гибко настраивать сценарии тестирования для того и параметризировать их для запуска в разных средах.

Наличие user friendly инструментов автоматизации
Инструмент для автоматизации тестирования должен быть гибким и легким в освоении, это снижает порог вхождения и позволяет большему количеству сотрудников создавать тесты. Платформа UiPath дружественна к пользователю и наличие онлайн академии, форума, telegram-сообщества в России и т.д. позволяет быстро обучаться. Освоение инструментария UiPath до уровня, необходимого для создания хороших кейсов, намного проще, чем обучение хардкорным вещам типа Selenium. При этом для тех, кто уже уверенно владеет подобными инструментами, изучение UiPath не составит никакой сложности.

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

Преимущества Test Suite



Один инструмент для RPA и автоматизации тестирования

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

Замена устаревших систем на современные
В любой большой экосистеме предприятия или организации функционирует большое количество разных приложений. Совершенно обычна ситуация, когда рядом работают приложения, выпущенные в 90-м году и в 2020, веб-сайты на разных движках и мобильные приложения на разных технологиях. Проблема зоопарка систем при тестировании заключается в том, что определенный инструмент подходит для тестирования одного-трех приложений, но не всех сразу. Есть приложения, которые хорошо тестируют веб-сайты и совсем не умеют работать с толстым клиентом. Test Suite позволяет создавать единую экосистему и эффективно тестировать ПО различных категорий и версий. В Test Suite можно одновременно тестировать мобильное приложение и веб-ресурсы и не переключаться между большим количеством разных окон.

image

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

image

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

image

Test Suite хорошо интегрируется с CI/CD, в нем есть готовые коннекторы к большинству основных платформ issue tracking, плагины к Jira и SAP Solution Manager.

Простота создания и обслуживания
Решение для тестирования UiPath демонстрирует не только простоту использования, но и снижает затраты на техническое обслуживание. Некоторые из клиентов UiPath уже сообщили о двукратном увеличении тестового покрытия с помощью Test Suite.

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

Как выстроить процесс интеллектуальной обработки документов с помощью RPA опыт UiPath

21.01.2021 20:07:17 | Автор: admin

Не существует компаний, в которых не было бы работы с документами. И это кропотливый, рутинный, но очень важный процесс. Люди хотят получать зарплату вовремя, а поставщики и контрагенты своевременную оплату за свои услуги. Бухгалтеру в компании регулярно приходится проводить серии повторяющихся действий и при этом отслеживать их правильность. Вот простейший пример цепочки таких операций: чтобы отправить счет покупателю, менеджер по продажам отправляет бухгалтеру заявку. Затем бухгалтер создает счет в учетной системе, формирует печатную форму и высылает ее менеджеру. Если с покупателем ведется обмен электронными документами, то бухгалтер создает и отправляет ему счет в системе ЭДО.

Процесс обработки входящих документов состоит из нескольких частей: сканирование, распознавание, классификация, извлечение данных. Обычно, весь процесс происходит с использованием технологий одного вендора, что ограничивает компанию в выборе технологий. При этом недостаточно извлечь данные из документа, необходимо каким-то образом их передать в основные бизнес-приложения (SAP, 1C и др.), это не всегда возможно из-за сложностей интеграции с корпоративными бизнес-приложениями.

Если какие-то задачи выполняются систематически с неизменной четкой логикой, и они присутствуют в большом количестве бизнес-процессов, то их роботизация становится экономически выгодной. UiPath предлагает использовать программных роботов для автоматизации процесса обработки входящих документов. Использование RPA позволяет для каждого типа документов применять разные подходы к распознаванию и извлечению (например, для одного документа использовать шаблоны Abbyy Flexi Capture, а для другого Microsoft OCR и ML-модели), что делает этот процесс гибким, с точки зрения внедрения.

Сложности распознавания и извлечения данных

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

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

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

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

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

Примеры извлечения данных из шаблонов. Источник: https://research.aimultiple.com/wp-content/uploads/2019/03/key-value-pairs.jpg

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

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

Как роботы извлекают данные?

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

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

Создаем проект по обработке документов в UiPath Studio

1 Запуск менеджера таксономий.

В менеджере таксономий мы создаем классы документов, с которыми мы будем работать.

Мы можем выбирать категорию и тип распознаваемого документа:

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

2 Оцифровка документа с помощью OCR

В UiPath реализовано полнотекстовое распознавание. Можно настроить мониторинг папки, из которой робот будет переносить документы в OCR-сервис. У UiPath есть встроенные механизмы для работы с распространенными движками, как платными, так и бесплатными (Abbyy, Tesseract OCR, Microsoft OCR и др.). Чтобы выбрать нужный движок, нужно просто перенести его из палитры действий в Digitize Document Scope.

3 Классификация документа по ключевым словам.

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

Классификатор UiPath может обучаться на массиве данных.

4 Экстракция данных.

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

На этом этапе производится выбор экстрактора, который будет извлекать данные. На текущий момент в UiPath есть 4 основных типа экстрактора: формы, ML, Regex, Abbyy Flexi Capture. Переносим их из палитры действий в Data Extraction Scope.

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

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

Так настраиватся извлечение нужных данных в UiPath Studio. Источник: https://www.uipath.com/blog/ai-invoice-receipt-processing

А вот как в интерфейсе сервиса выглядит распознанный документ с извлеченными данными:

5 Экспорт результатов распознавания.

Первичный экспорт результатов происходит с помощью действия Export Extraction Results в датасет, откуда информация может передаваться в любые сторонние системы, например, SAP, 1C или Госуслуги для бизнеса. При этом нам не нужно реализовывать сложную интеграцию. Робот может ввести данные в абсолютно любую систему через пользовательский интерфейс.

Примеры внедрения RPA для работы с документами

Одно из первых внедрений робота UiPath для работы с документами было проведено в компании СОК Сервисный Центр РУС, которая оказывает сервисные услуги бухгалтерского сопровождения магазинам финской розничной сети PRISMA и отелям Sokos Hotels в России.

Робот-ассистент UiPath освободил сотрудников сервисной компании от выполнения рутинных операций, связанных с документооборотом. Он обращается к ERP-системе компании, находит, распечатывает и рассылает клиентам по e-mail бухгалтерские документы (счета, счета-фактуры, накладные), в соответствии с требуемыми параметрами и условиями формирования печатных форм. Скорость выполнения операций благодаря использованию робота-ассистента выросла, а количество ошибок уменьшилось. Это позволило ускорить обработку и оплату счетов, и разгрузить сотрудников, высвободив до двух часов их рабочего времени для решения более творческих и интересных задач.

Еще один пример внедрение бота в компании QIWI, который проверяет бухгалтерские документы на соответствие стандартам финансовой безопасности. Он выполняет запросы к таблицам баз данных из различных систем (в основном ORACLE). Затем компонует полученные результаты и сохраняет их в отдельный файл. После этого бот создает в 1С: Документооборот документы с файлами отчетов.

В результате удалось освободить людей от рутины, повысить скорость и прозрачность процессов, снизить риски и количество ошибок. Итоговый экономический эффект от роботизации значительно превысил затраты на внедрение RPA.

Выводы и перспективы

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

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

По данным Aimultiple.com большинство компаний из списка Fortune 500, использующих технологии, которые разработаны более трех лет назад, имеют уровень автоматизации 10-15%, в то время как решения для извлечения данных счетов на основе машинного обучения могут увеличить этот показатель до 80% и выше.

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

Подробнее..

Распознавание документов на частном примере обзор доступных платных и бесплатных решений

10.09.2020 14:18:39 | Автор: admin
Всем привет! Типичная ситуация сложилась в компании, в которой я работаю. В бухгалтерии вечный аврал, людей не хватает, все занимаются чем-то безусловно важным, но по сути бесполезным. Такое положение дел не устраивало руководство.

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

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

Опыт получился занятным, решил поделиться тем, что удалось собрать. Возможно я что-то упустил, поэтому велком в комментарии, если есть, что добавить.


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

Начал я с бесплатных программ:


  • glmageReader
  • Paperwork
  • VietOCR
  • CuneiForm.

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

  • В таких программах как VietOCR, Paperwork, glmageReader можно настроить хранение отсканированных документов в определенные папки, Paperwork умеет их даже сортировать, согласно меткам.
  • В основном они хорошо справляются с текстом, а там, где текст распознан некорректно, в некоторых программах можно вручную изменить содержимое, прежде чем экспортировать файл.


image

Однако есть и проблемы:

  • Есть разница между работой с pdf сканами и png. Не всегда удается удачно конвертировать png в pdf.
  • Большинство таких программ сложно справляются с распознаванием документов табличного вида, даже самого простого формата. В результате мы получаем распознанный текст без размеченных полей.

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


image

Технология сработала достаточно хорошо, Учитывая, что программы бесплатные, описанные выше проблемы допустимы. Однако, я искал более упорядоченного решения.

Затем я исследовал распознавание в ABBYY FineReader 15 Corporate


За 7-дневный срок триала, я изучил и эту платформу.

Что отметил:

  • Когда я открыл png файл, он отлично был считан и в результате удачно конвертирован в pdf без потери качества изображения и текста.
  • Программа отлично знает, как отсканировать документ для редактирования текста. Причем в режиме редактирования файла формата png текст удается отредактировать без проблем, но иногда слетает разметка.
  • Однако то же самое я не могу сказать про редактирование файла-скана pdf. При попытке редактирования летели слои.
  • Табличный вид распознается качественно, вся структура сохраняется, меня это порадовало.
  • OCR редактор хорошо распознал мой сформированный pdf счет-фактуры. Где-то пару символов требовалось поправить вручную.

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

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

От использования этого софта были приятные впечатления. Однако, когда я обратился к ценнику системного решения ABBYY Flexicapture (а мне нужно именно системное), то выяснил, что решение, особенно кастомизированное, обходится в довольно круглую сумму, около 400 тыс. руб./мес. и выше за 10 тыс. страниц.

Я стал искать альтернативу. Как освободить руки сотрудника, получить качественное распознавание документов и не переживать за сохранность и структуру данных.

И тут я решил получше разглядеть ELMA RPA, которую я уже изучал ранее.


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

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

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

Какие виды распознавания в системе я посмотрел:

Распознавание по шаблону


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

Что отметил:
  • Этот вид распознавания работает именно со сканами формата jpg и png, pdf он пока не рассматривает. Но продукт еще молодой, думаю, все впереди.
  • Этот вид распознавания входит в бесплатную версию Community Edition
  • Удобно размечен текст по блокам, которые можно сопоставить, согласно переменным, которые мы создали в контексте робота. Таким образом вручную настроить, что именно тянем в распознавание.
  • Нашу счет-фактуру он распознал 50/50, некоторые слова подменил как посчитал нужным. :)

    image


Однако, вендор на данный кейс сообщил, что этот вид распознавания адаптирован под простые документы, с текстовой структурой или с легкими формами. И посоветовал для распознавания счета-фактуры использовать другой вид распознавания intellect lab.

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

От сервера получаем ответ (распознает такой тип документа или нет), и если распознается, то передается структура шаблона (переменные для маппинга), для сопоставления переменных, которые необходимо будет записать в RPA процессе.

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

Что отметил по поводу этого распознавания:

  • Здесь уже распознавание работает как программа сканирования документов pdf, и при этом работает и с форматами jpg и png.
  • Качество документа не влияет на эффективность распознавания. Даже документы с плохим качеством распознаются корректно.
  • Счет-фактура распозналась полностью и без подмен переменных.
  • Робот сумел получить скан с почты, распознать его и создать его экземпляр в 1С. То есть автоматически сохранил файл там, где мы ему задали, что, естественно, крайне удобно.
  • Входит в бесплатную Community Edition в виде распознавания документа в облаке. Подходит, если используем стандартные типы (СФ, УПД, АВР и др.), и, например до 100 документов в месяц или до 500 в год. (Стоит заметить, что считаем не в страницах, а в документах непосредственно.)

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

Распознавание документа в блокнот

Соответственно, эти же данные робот записывает в 1С, создавая там новый документ:

распознание документа и создание в 1С

Что удалось выяснить по ценам: Если мы, например, хотим работать масштабно именно с ilab распознаванием, то за наши 10 000 документов придется выложить:
  • примерно 180 000 руб. единовременно,
  • плюс, допустим, 400 000 руб. покупка робота с оркестратором
  • итого: 580 000 руб.

Робот бессрочный, а 10 000 документов на какое-то время хватит. Довольно выгодно получается, как минимум в том, что заплатим за все один раз.

Что понравилось в распознавании в этой платформе в целом:

  • Можно настроить получение документов по событию, а также, например из электронной почты и любых других внешних источников. У меня пока была цель настроить получение с почты.
  • Все считанные данные с документа можно спокойно записать в контекстные переменные и далее их передать в необходимые системы, приложения, сайты, ВМ и т д. И я не переписываю уже ничего руками.
  • Скорость обработки. 15 секунд и объект распознан, а остальной порядок действий это счет по минутам. Если заявиться с потоковым сканированием с большим количеством документов, думаю это не составит больших временных затрат.
  • Много качественного функционала в свободном доступе, для небольших компаний им можно вполне обойтись.


Итого:


  • Бесплатные программы справляются с задачей распознавания документов лучше, чем я предполагал, однако за счет них значительно ускорить работу с большим объемом не удастся
  • ABBYY FineReader хорошо справляется с обработкой и распознаванием документов после, однако, чтобы получить системное решение, нужны большие финансовые возможности.
  • ELMA RPA удивила по качеству распознавания документов, вариативностью, а также возможностям хранения и передачи после распознавания, но стоит учесть, что продукт молодой.
Подробнее..

Зачем бизнесу синергия PRA и AI?

22.10.2020 20:12:41 | Автор: admin

Можно ли извлечь пользу из ИИ?


image

Последнее время искусственный интеллект (ИИ) больше других технологий обсуждается СМИ. При этом технологии, лежащие в его основе и польза, которую он может приносить бизнесу, мало кому понятны. И это не только российский, а общемировой тренд. В 2019 году аналитики MIT Sloan Management Review и BCG провели исследование, в котором опросили более 2,5 тыс. руководителей компаний в 27 отраслях по всему миру. Выяснилось, что зарабатывать на ИИ бизнесу пока получается плохо: 70% бизнесменов заявили, что внедрение ИИ никак не повлияло на их бизнес, а получить хоть какую-то прибыль получилось только у 40% опрошенных.

По данным последнего исследования ВЦИОМ 69% российских компаний отмечают нехватку квалифицированных кадров в сфере ИИ. При этом крупные и высокотехнологичные корпорации осознают выгоды, которые можно получать уже сейчас, внедрив в свои процессы решения на основе ИИ. Но даже большим игрокам не хватает собственной экспертизы для работы с этими технологиями.

Важность вопроса понимается и на государственном уровне. В октябре 2019 года вышел указ Президента о развитии искусственного интеллекта в РФ, в котором предлагается утвердить национальную стратегию развития ИИ до 2030 года.

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

Для большинства компаний ИИ на самом деле очень сложные и малопонятные технологии. IBM в своем исследовании указывает: большинство руководителей считают, что их компании не обладают необходимыми компетенциями в data science, machine learning и других смежных с ИИ технологиях для автоматизации процессов.

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

На рынке стали появляться решения, которые помогают легко интегрировать в свои бизнес-процессы внешние наработки. Стали возникать и цифровые сервисы, которые помогают объединить ИИ с автоматизированными RPA-решениями.

Как ИИ помогает роботам



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

В целом, около 90% нынешних кейсов использования ИИ это работа с документами в различных видах: распознавание паспортов, ПТС, дипломов, чеков и платежек. Особенно актуальным являются кейсы по распознавания полезного контента в письмах. Когда получив со стороны RPA письмо, ИИ помогает выбрать из текста главное, классифицировать письмо соответствующим образом и отправить нужному адресату. Сегодня роботы, с помощью ИИ, помогают бухгалтерии, отделу кадров, продаж, закупок, логистики и другим подразделениям, которые имеют дело со сбором и обработкой информации.

Мерчендайзинг по-новому

Среди трендсеттеров и инноваторов мерчандайзинга можно выделить, к примеру, Walmart, который в конце 2019 года запустил систему на основе искусственного интеллекта, дающую возможность в режиме реального времени делать мониторинг товара на полках. Система была установлена в одном из магазинов будущего, работающем в концепции Intelligent Retail Lab или сокращенно IRL. Камеры с искусственным интеллектом мониторят в реальном времени наличие товаров на полках. Гаджеты будут отслеживать уровень запасов, чтобы определить, например, нужно ли персоналу принести больше мяса из складских холодильников и пополнить запасы на полках, или давать сигнал, если некоторые свежие продукты слишком долго простояли на полке и их нужно оттуда вытащить.

image

Автоматический скоринг резюме

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

Одно из самых продуктивных направлений применения ИИ в управлении кадрами связано с поиском выгоревших работников. Так, американская компания Ultimate Software Group, занимающаяся разработкой программного обеспечения для управления персоналом, создала индекс сохранности сотрудников. Это показатель, по которому на основе 50 индикаторов можно предсказать, собирается ли специалист в ближайшее время уволиться.

IBM для создания похожего решения использовала свой суперкомпьютер с системой AI Watson. Чтобы оценить настроение человека, суперкомпьютер анализирует историю его карьерного роста, продолжительность работы в компании, зарплату, служебные обязанности, расстояние от работы до дома и другие показатели. Теперь HR-служба компании может с 95% вероятностью предсказать, кто собирается уволиться, за шесть-девять месяцев до того, как это произойдет, и принять меры, которые позволят предотвратить увольнение.

Сентимент-анализ в блогах

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

Авторы уже классического исследования применили сентимент-анализ для изучения мнений и отзывов людей о трех автомобильных компаниях: Mercedes, Audi и BMW. Робот извлекал все твиты с упоминаниями брендов, после чего они обрабатывались с помощью методов интеллектуального анализа текста. Все твиты делились на три категории: позитивные, негативные и нейтральные. Результаты этого исследования дали представление о важности анализа отзывов и мнений потребителей в этой отрасли. Авторам удалось получить очень ценную для маркетинга этих брендов информацию.

Результаты анализа твитов ИИ показали, что больше всех положительных отзывов досталось Audi (83%). При этом, и негатива Audi получили меньше (16%), чем другие исследуемые конкуренты. Очевидно, что рекламные предложения на сайте Audi достигнут большего количества лояльных пользователей, чем аналогичные на интернет-ресурсах BMW и Mercedes. Есть над чем задуматься и производителям и маркетологам этих авто.

Как реализовать синергию RPA и ИИ



На рынке есть несколько решений, которые с различным успехом помогают использовать возможности ИИ для роботизированных процессов. Если верить специализированным рейтингам, то лидер в создании сервисов для роботизации это компания UiPath. По статистике в среднем в сквозном бизнес-процессе сегодня автоматизируется около 30-40%. С помощью платформы UiPath, которая включает в себя решения для Process Mining, AI Fabric и другие продукты, можно повысить процент автоматизации таких процессов до 70.

Недавно вендор выпустил платформу AI Fabric, которая помогает получить синергию от работы RPA и ИИ. AI Fabric связующее звено между искусственным интеллектом и автоматизированными процессами. Платформа предназначена для того, чтобы вывести применение ML в бизнес-процессах за пределы небольших высококвалифицированных групп разработки и передать его бизнес-пользователям. Другими словами, с помощью этого решения даже джуниор-разработчик может внедрить ИИ в компании больше не нужно вникать в технические тонкости и самостоятельно разворачивать необходимую инфраструктуру. Для бизнеса платформа полезна тем, что помогает на практике понять пользу и возможности от использования ИИ в реальных бизнес-процессах.

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

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

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

В качестве примера можно рассмотреть кейс по прогнозированию оттока клиентов.
image

Платформа UiPath

  • Извлекает информацию о пользователях из CRM
  • Получает предсказание оттока клиентов от AI Fabric
  • Обновляет CRM на основе этой информации
  • Рассылает информацию о таких пользователях сотрудникам


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

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

Как с помощью UiPath внедрить process mining в компании

31.12.2020 18:20:33 | Автор: admin

Вызовы цифровой трансформации


image

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

  1. Обнаружить проблему
  2. Внедрить изменения
  3. Отслеживать решение
  4. Реагировать на отклонения

На данный момент популярным решением для внедрения изменений является инструмент RPA, который позволяет автоматизировать рутинные действия пользователей. Что касается трех остальных пунктов для этого понадобится process mining или интеллектуальный анализ бизнес-процессов.

Интеллектуальный анализ бизнес-процессов (Process Mining) фокусируется на обнаружении, анализе и оптимизации бизнес-процессов на основе данных из журналов событий (англ. event logs), представляя недостающее звено между классическим анализом бизнес-процессов с использованием их моделей и интеллектуальным анализом данных.

Инструмент process mining позволяет захватить реальные данные из популярных ERP-, CRM-систем и баз данных сквозных бизнес-процессов в закупках, финансах, управлении претензиями, контакт-центрах и т.д. (SAP, Oracle, Salesforce, ServiceNow), визуализировать их для обнаружения узких мест, неэффективности использования ресурсов и исключений; и, наконец, мониторить изменения в процессе после его оптимизации, в том числе с помощью автоматизации.

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

image
Фото с ресурса: http://personeltest.ru/aways/habr.com/ru/post/257563/

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

Кейсы process mining и автоматизации


Аудит и улучшение существующих метрик


Крупная пенсионная, страховая и управляющая компания в Нидерландах нуждалась в более глубоком понимании автоматизации своих контакт-центров, чтобы понять ее влияние на свои бизнес-процессы. Компания развернула UiPath Process Mining, провела сквозную аналитику контакт-центра и выявила проблемы, которые приводили к дополнительной работе и длительному времени ожидания клиентов на линии.

На основе инсайтов UiPath Process Mining компания скорректировала автоматизацию контакт-центра. Это повысило качество и скорость связи с клиентами, а также позволило сильно сократить время ожидания клиентом оператора. В целом оказалось, что 80% всех работ можно было стандартизировать, и за счет этого снизить затраты контакт-центров на 568 тыс. евро.

Поддержка оперативных решений


Один из крупнейших в мире автомобильных поставщиков искал способы для улучшения внутренних процессов. После консультации с UiPath компания решила использовать UiPath Process Mining для оптимизации своего процесса корпоративных закупок, чтобы выявить риски контроля, дублирование поставщиков и задержки на заводах в регионах по всему миру.

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

Data mining и глубокое понимание процессов


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

Крупной телеком-компании из Нидерландов требовалось повысить прозрачность своих корпоративных закупок. Имея 6,3 миллиона абонентов фиксированной телефонной связи, более 33 миллионов абонентов мобильной связи и более 2 миллионов интернет-клиентов в пяти странах, они хотели найти решение для контроля рисков и определения путей снижения затрат.

Оператор развернул UiPath Process Mining для получения информации
и устранения интуитивной оценки процессов, а также ручной передачи данных. Он использовал UiPath Process Mining для оценки более чем 200 000 различных позиций, в том числе заказов на покупку и счета-фактуры.

В результате удалось сократить на 20% трудовые затраты, на 29% уменьшить время на обработку счетов-фактур, а также повысить предсказуемость затрат и улучшить отношения с поставщиками.

Опыт заказчиков


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

Екатерина Сабельникова, консультант по инновациям Philips рассказывает в своем блоге на LinkedIn о главных уроках, извлеченных при использовании process mining в компании.

Сфокусироваться на главном

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

Определить заинтересованных лиц

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

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

Обеспечить поддержку и одобрение высшего руководства

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

Во-вторых, высшее руководство может принимать стратегические решения, влияющие на работу компании. Часто улучшения процессов идут рука об руку с компромиссами.

Наконец, руководство может позиционировать process mining как инструмент, помогающий достигать целевых показателей KPI. Стимулировать вовлечение в изменения всех уровней организации и использование интеллектуального анализа процессов в качестве ежедневного инструмента управления.

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

Как и у любой системы, у process mining существует ряд ограничений:

  • Адекватность отображения хода реального бизнес-процесса данными логов информационной системы;
  • Необходимость интерпретации результатов анализа.

С этими ограничениями мы столкнемся на практике, когда далее на примере UiPath Process Mining будем разбирать весь процесс внедрения аналитики бизнес процессов в организацию.

image
UiPath process mining помогает принимать основанные на фактах рекомендации для улучшения критических процессов

Гайд по развертыванию UiPath Process Mining


Формируем журнал событий

Для создания журнала событий необходимо определить источники данных для него, как правило их бывает не более 2-3. Даже если у компании есть SAP в UiPath и свой ETL, в реальном мире этим не даст воспользоваться принятая в компании стратегия интеграции и наличие КХД/КШД/DataLake или иных решений, которые управляют потоками данных.

Исходные данные получаем из хранилища данных или реплик БД и принятыми в компании средствами ETL, затем собираем/упрощаем их и помещаем в staging area для UiPath. UIPath может брать данные из любой реляционной БД, у которой есть ODBC драйвер. Затем уже из staging таблиц мы собираем журнал событий, с которым будут работать сами алгоритмы UiPath.

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

Проводим сборку журнала событий

Технически сборка журнала событий это просто select/insert из кучи таблиц в одну или две (две, когда есть атрибуты, которые не меняются от шага к шагу процесса). Неочевидная часть, связанная с проектированием структуры такого журнала: как преобразовывать смену статусов объекта или факт изменения значения какого-то атрибута в конкретный шаг. Это задача бизнес-аналитика, тут нет универсальной методики, есть шаблон вендора и ноу-хау у интегратора.

Важно понимать, что некорректно выбранный состав шагов и уровень детализации процесса не даст решить задачи анализа или поддержки решений. И еще 100% цифровизации процесса нет нигде. Значит часть шагов, которые в процессе есть, вы не отразите в журнале. Если помнить, что вы решаете задачи увеличения показателей, а не получения красивой картинки это не страшно. А если не помнить, то можно решить, что process mining бесполезное внедрение.

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

Конфигурируем Process Mining UiPath

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

Важно отметить что у UiPath есть очень полезная функция анонимизации. Которая, например, контрагента Лучшая компания" во всех местах меняет на Контрагент 1. Это можно, конечно, сделать и руками создав временную таблицу справочник или написав очень хитрый запрос, но времени такая фича экономит много. Вообще деперсонализация результатов очень важная вещь, если вы анализируете процессы, отвечающие за финансовые потоки. Может оказаться, что бизнес-аналитику нельзя видеть коммерческую тайну, но для анализа она важна. Вот тут и помогает анонимизация.

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

Проводим аналитику отчетов

Анализировать отчеты технически легко, а вот интерпретировать их результаты совсем не просто это сфера ответственности аналитика. Методика drag-and-drop UiPath значительно упрощает его работу: вытащил виджет, настроил и смотришь данные. Что именно и как анализировать зависит от целей анализа. С технической точки зрения важно, что визуализацию для аналитика готовит дизайнер отчетов, а дальше уже начинается его работа.


Создаем дашборды

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

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

Настраиваем оперативный контроль

В UiPath есть возможность писать правило контроля (например, более 5 правок даты поставки при согласовании сроков это плохо) как функцию, которая применяется при подгрузке свежей порции информации. UiPath умеет делать инкрементальную загрузку данных и значит ETL из прошлых капов можно написать так, чтобы он умел грузить только новые данные.

Результат работы функции можно использовать в дашбордах чтобы метить подозрительные случаи или отсылать в UiPath Action Center, чтобы там записать процедуру по ее устранению. Кстати, так же работает и интеграция с ML можно вызывать программы на R или Python, передавая им на вход данные и записывая результаты работы.

Как видите, работа тут всегда итерационная. Это плохо при планировании и оценке объема работ, потому что нельзя точно оценить потребуется ли еще одна итерация или нет. Но это не свойство UiPath это свойство всех подобного рода продуктов. Это хорошо тем, что появляется возможность делать то, что реально надо и чем будут пользоваться, а не то что зафиксировали в требованиях до начала работ.

Здесь есть техническая проблема как организовать верстанный контроль. Тут у UiPath с самого начала все правильно: конфигурация настроек и дашбордов живет в git. Можно в локальном, можно в корпоративном, можно хоть на gituhub. В других решениях где-то версионности вообще нет (например, конфигурация модели данных), а где-то она достигается старым добрым способом допиши дату или номер версии в название файла. Технически очень много головной боли при наличии верстанного контроля уходит и длительность спринта сокращается.

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

Инструментами платформы UiPath может пользоваться любой конечный пользователь с базовыми скиллами разработчика. Второй критерий успеха process mining проектов сильная экспертиза процессных аналитиков. Максимальный эффект от оптимизации процессов получают не от формирования рекомендаций, а от системного следования им, а инструменты UiPath же помогут здесь с технической реализацией process mining в компании.

Корпорация Everest Group ежегодно оценивает вендоров технологий process mining на основе их влияния на рынок, видения и возможностей их продуктов. В последнем исследовании 2020 года UiPath признали лидером в сфере process mining среди других крупнейших вендоров.

image

Выводы


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

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

Что нужно знать перед началом роботизации процессов?

10.04.2021 12:12:31 | Автор: admin

Robotic Process Automation, или сокращенно RPA, набирает все больше оборотов на рынке СНГ и Казахстана, в частности. Участники рынка обеспокоились непрерывностью своей деятельности, эффективностью и, конечно, экономией. Пандемия указала нам на дыры, которые имеются в процессах, на то, как это опасно подвязывать процессы на людях и что полная диджитализация это не будущее, это сейчас.

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

Почему я могу об этом вещать? И кем выступает моя компания?

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

Для начала давайте поймем, что такое бизнес-процесс

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

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

Видимость начала и конца процесса должно быть в рамках 1 дня, даже 1 часа.

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

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

Итого, процесс должен быть цифровым, рутинным и повторяющимся.

Сколько мне нужно роботов?

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

Робот это, по сути, виртуальный сотрудник. У него в запасе 24 часа. Все что вы сможете уместить в 24 часа робот исполнит. Если процесс масштабный и в день вы совершаете таких операций 10 тысяч штук, где каждая операция занимает 1 минуту, то арифметика проста и ее поймет первоклассник. 10 тысяч штук делим на 1440 минут (столько минут в сутках) = 6.9.

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

И так по каждому процессу.

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

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

Сколько будет стоить проект?

Стоимость проекта включает в себя несколько видов затрат: стоимость робота, то есть виртуального сотрудника, стоимость оркестратора, назовем его распределителем задач, либо менеджером роботов и траблшутером, студия (там где разработчик работает), виртуальные машины для каждого робота (он виртуальный, но все же сотрудник), Office, сервера либо облако.

Из опыта могу сказать, что основная статья расходов это конечно же сами роботы (более 75% чека).

Почему так дорого?

Многие клиенты почему-то ожидают что роботизация всего их отдела в 10 человек должна обойтись им примерно в 1000 баксов XD

Основные поставщики роботов приходят к нам из США. Где стоимость человекочасов достаточно высока. Один робот, который стоит примерно 8-10K USD, что ничтожно в сравнении с годовой заработной платой.

Конечно, для рынка, где средняя заработная плата 500 USD в месяц это может показаться крайне нерентабельно. Но, так ли это на самом деле? Стоит ли нам теперь отказывать себе в удовольствии на роботизацию? Нет. И вот почему.

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

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

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

Расчет эффективности не всегда имеет положительный знак для отдельно взятого процесса

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

Ваш робот ломается, вы плохие ребята

Процесс работает в продуктовой среде, он уже приносит свои плоды, а владельцы бизнес-процессов могут пойти пить чай. Но не все так просто. В процессе роботизации есть несколько степов. Один из финальных степов это стабилизация. Это когда начинают всплывать исключения, которые не были учтены в начале роботизации данного процесса. Вы забыли, что из 1000 файлов в формате docx, у вас все-таки бывают иногда и GPEG-ы, но это о как редко. Все это требует проработки со стороны интегратора и относится к данной стадии нужно с пониманием. Это не робот сломался, это обязательная часть процесса роботизации бизнес-процессов.

Конфликт интересов и саботаж

В самом начале роботизации руководство должно понять: кто имеет в роботизации самый главный интерес, чего мы хотим достичь и как всех объединить. Также, нужно дать понять людям, что станет с ними после того, как часть их работы отдадут цифровому сотруднику. Уволят? Или перенаправят на другую позицию? Если диалог ранее не состоялся между сотрудниками, чья позиция уйдет под роботизацию, и теми, кто в ней заинтересован, то ждать саботажа не придется.

Саботаж может быть как на стороне роботизируемого отдела, так и на стороне IT. Имеет место быть синдром Not invented here, что означает избегание использования или покупки продуктов, исследований, стандартов или знаний из внешних источников, сильное предубеждение против идей извне.

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

Я не знаю с чего мне начать, как создать Roadmap?

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

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

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

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

Подытожим, в первую очередь работаем над простыми процессами в большом количестве, только затем сложные в малом количестве.

Я найму свою команду, и мы будем делать сами

Каждая компания, на самом то деле, может делать роботизацию самостоятельно. Вопрос только в том, насколько она сможет расширяться и продолжать поддерживать сложные операционные процессы, которые затрагивают целые департаменты.

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

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

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

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

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru