Интеграция Directum RX и SAP силами ООО «РН-КрасноярскНИПИнефть»

300

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

до 1-2 минут

с 20-30 минут снизились затраты на обработку документа

на 100%

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

до 30 минут

с 8 часов суммарно снизились трудозатраты в рабочие сутки

Следующий проект

Основные предпосылки к проекту

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

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

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

 

Задачи и цели

Исходя из предпосылок, были определены следующие цели и задачи проекта.

Цели:

  • Анализ текущих требований и ограничений: проанализировать потребности заказчика, определить основные ограничения для достижения поставленных целей.
  • Автоматизация процессов взаимодействия между Directum RX и SAP: Создание решения, которое позволит автоматизировать обмен данными между системами, минимизировать ручной ввод и снизить вероятность ошибок.
  • Повышение эффективности бизнес-процессов: Оптимизация работы сотрудников за счет сокращения времени на выполнение рутинных операций и выполнения бизнес-процессов, связанных с использованием SAP.
  • Связь без прямой интеграции: Разработка решения, которое позволит связать две системы без применения прямой интеграции.

Задачи: 

  • Работа с заказчиком в части определения требований: Провести взаимодействие с заказчиком, определить решаемые задачи. Составить и согласовать техническое задание на разработку.
  • Разработка архитектуры интеграционного решения: Создать архитектуру, которая позволит обмениваться данными между Directum RX и SAP без прямой интеграции.
  • Реализация механизма обмена данными: Разработать механизм для автоматизированной выгрузки и загрузки данных между системами, в том числе версий документов.
  • Разработка инструментария для No-Code настройки интеграции: Разработать необходимые инструменты, которые бы позволили настроить работу с определенным бизнес-процессом без участия разработчиков.

Ожидаемые результаты: 

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

 

Описание и возможности решения

Сроки разработки решения: октябрь-ноябрь 2024 года.

Внедрение решения в промышленную эксплуатацию: декабрь 2024 года.

Вся работа по проектированию и разработке решения была разделена на 3 этапа.

Этап I. Формализация требований к интеграционному решению на основе анализа текущих бизнес-процессов и потребностей заказчика.

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

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

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

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

Этап II. Разработка архитектуры интеграционного решения

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

Поскольку доступ к SAP разрешён только с рабочих устройств сотрудников, было принято решение разработать специальную программу «агента», устанавливаемую непосредственно на компьютеры пользователей (идея реализации была взята от веб-агента Directum). Этот «агент» должен был выступить в роли локального посредника, выполняя операции в SAP от имени сотрудника при его непосредственном контроле.

Интеграция должна была инициироваться непосредственно из карточки документа в Directum RX, так как Directum RX в данном случае является мастер-системой (то есть, первоначальным источником данных). Данный факт требовал наличия возможности отправлять команды «агентам», установленным на локальные рабочие устройства сотрудников. На стадии проектирования архитектуры почти сразу было принято решение не использовать прямые подключения, будь то HTTP-запросы или постоянные прямые подключения между «агентами» и Directum RX, в связи с возможными накладными расходами на управление и поддержание таких подключений.

Для связи «агента» и Directum RX был выбран подход с использованием брокера сообщений RabbitMQ, который уже используется в Directum RX. Брокер сообщений стал связующим звеном между Directum RX и «агентами», который уже решал многие проблемы, такие как: зависимость от доступности «агентов» и Directum RX, удержание постоянных подключений к Directum RX, плохая масштабируемость и т.д.  Команды на выполнение операций должны были отправляться в очереди RabbitMQ, откуда их забирали бы «агенты».

Важным элементом стала схема обмена данными.

Команды, которые были названы «инструкциями», должны были быть универсальными, дабы была возможность масштабировать решение путем внесения минимальных изменений во все участвующие компоненты («агенты», схема данных, прикладное решение Directum RX). Вместе с тем, данные «инструкции» должны были иметь порядок действий, выполняемых в SAP. Так было решено, что «инструкции» будут передаваться в формате JSON и состоять из набора шагов, которые необходимо было выполнить, каждый шаг в свою очередь содержал данные:

  • идентификатор команды;
  • идентификатор элемента управления SAP GUI;
  • массив параметров команды (в большинстве случаев, это данные карточки документа).

Этап III. Реализация решения

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

  1. Разработка библиотеки для непосредственного управления SAP (на основе SAP GUI Scripting).

Принимая во внимание тот факт, что отсутствовала возможность прямой интеграции с SAP, при разработке решения пришлось использовать обходное решение, которое имеет система SAP – SAP GUI Scripting. Проще говоря, SAP GUI Scripting – это интерфейс автоматизации, расширяющий возможности SAP GUI (десктопное приложение для работы в SAP). Данный механизм примерно аналогичен макросам в Microsoft Excel.

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

  1. Разработка программы «агента».

Впоследствии данной программе было дано имя – SyncAgent (производное от «агент синхронизации»).

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

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

  1. Разработка прикладного решения для Directum RX.

На данном этапе требовалось разработать прикладное решение для Directum RX, которое позволило бы следующее:

  1. Администратору – настроить решение, не прибегая к взаимодействию с «агентами» и разработчиками.
  2. Пользователю – отправить данные по документу в SAP.
  3. Системе – удаленно взаимодействовать с «агентами» и обрабатывать ответы от них.

Исходя из обозначенных пунктов, было разработано решение, которое имеет возможность с помощью No-Code настраивать инструкции для SyncAgent и закреплять их за определенными видами документов.

На изображении представлена карточка настройки «инструкции» для SyncAgent. «Инструкция» состоит из некоторых базовых настроек, которые редко, но могут меняться (имя соединения и сессии, идентификаторы базовых полей вроде логина/пароля, строки состояния и т.д.), коллекции «шагов», которые непосредственно необходимо выполнить, и условий, при выполнении которых «шаг» включается в итоговую «инструкцию», отправляемую из Directum RX в SyncAgent.

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

«Шаг» состоит из следующих компонентов:

  • «Контрол» – элемент управления в SAP GUI (например, кнопка). Настраивается в Directum RX на основании идентификаторов элементов управления в SAP GUI.

  • «Тип параметра» и «Параметр» – непосредственно данные, которые необходимо передать в SAP. Может принимать строковые, числовые, а также вычисляемые значения.

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

Также в карточке «инструкции» представлены кнопки для экспорта/импорта «инструкции» в другую систему (например, из тестовой в продуктивную).

Настройка данной «инструкции» в конечном итоге позволяет пользователю в карточке документа нажать кнопку «Отправить в SAP».

После чего SyncAgent получит «инструкцию» и выполнит действия в SAP, согласно «шагам» в «инструкции», в данном случае:

  • запустит транзакцию;
  • выберет из таблицы значение, соответствующее значению, заданному в карточке документа;
  • заполнит поле «Дата начала»;
  • нажмет кнопку «Выполнить»;
  • в дополнительном окне заполнит «Фамилию», «Имя» и «СНИЛС»;
  • будет ожидать пока пользователь не поместит файл в специальную папку на рабочем столе, после чего отправит данный файл обратно в Directum RX.

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

И здесь мы подходим к той функциональности, которая также реализована на прикладном уровне Directum RX и позволяет обрабатывать ответы от «агентов» в фоновом режиме. Данная функциональность была реализована с применением фонового процесса Directum RX, который раз в минуту проверяет очередь в брокере сообщений на предмет наличия ответов от «агентов».

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

«Инструкция» также может быть расширена до любого количества «шагов» с целью выполнения любого набора действий.

 

Результаты

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

Если раньше внесение документа из 10 полей и загрузка версии документа в Directum RX занимало около 20-30 минут, то теперь данный процесс выполняется за 1-2 минуты.

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

 

Потенциал расширения и использования

Решение заранее разрабатывалось с ориентиром на дальнейшее масштабирование. Так, в программном коде SyncAgent заложены абстракции, позволяющие легко добавить новые команды. В прикладном решении Directum RX можно также легко составить любые «инструкции» для SyncAgent, которые позволят перенести в автоматизированном режиме из Directum RX в SAP набор данных и получить обратно файл, который загружается как версия документа, создается как простой документ или загружается в определенную задачу.

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

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

 

Состав команды проекта

 Торгашин Артём, главный специалист по цифровизации.

 Архитектор и разработчик решения.

 

 

 

 Яненко Анастасия, ведущий специалист – системный аналитик.

 Аналитик проекта.

 

 

 

 

1
Поделиться материалом:
11
Авторизуйтесь, чтобы оценить материал.
Пока комментариев нет.
Авторизуйтесь, чтобы написать комментарий

У вас похожая задача?

Обсудите реализацию с экспертом Directum

Обязательное поле
Обязательное поле
Обязательное поле
Обязательное поле
Обязательное поле
Обязательное поле

Благодарим за интерес! Мы свяжемся с вами.

Directum Awards 2025
Какой проект лучше?
Авторизуйтесь, чтобы оценить материал.
Авторизуйтесь, чтобы оценить материал.
Directum Awards 2024
Спасибо за активность!
Ваш голос принят