7 марта 2024

Блог

Разработка

Как реализовать интеграцию ИТ-систем: внедрили HRMS-систему «Пульс» от «Сбера» в экосистему решений холдинга

На IT-рынке множество готовых корпоративных систем и приложений. Но купить готовую платформу — это лишь часть процессов, важна грамотная интеграция существующих систем и кастомизация решения под нужды компании. Другими словами, важно объединить разрозненные сервисы в единое целое. Нам первыми удалось реализовать интеграцию HRMS-платформы «Пульс» с оргструктурой холдинга нашего партнера.

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

В качестве альтернативы SAP наш партнер выбрал HR-платформу «Пульс» от «Сбера», которая закрывает все их потребности в:

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

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

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

Что нам предстояло сделать в рамках интеграции платформы:

1. Авторизация в HR-платформе

Готовых методов аутентификации в «Пульсе» пока что нет. Но решение поддерживает схему аутентификации с использованием протокола OpenId Connect (OIDC). А это значит, что его можно встроить в корпоративный SSO (Single-Sign-On). (здесь делимся ссылкой на статью, где рассказываем, как удобнее всего обеспечивать единый вход SSO😊)В нашем случае мы используем уже готовый корпоративный Identity Provider холдинга. 

2. Биллинг – реализация сервиса для расчета лицензионных платежей за использование решения

В нашем случае лицензии «Пульса» закупает Управляющая компания Холдинга (ЗАО). Остальные компании используют «Пульс» на платной основе с ежемесячной оплатой в ЗАО. Соответственно, возникает задача – упростить процесс взаиморасчетов, т.е. помочь ЗАО сформировать документы на оплату для каждой дочерней компании, использующей «Пульс», и передать данные в единое для всех компаний холдинга хранилище финансовых документов.

Для этого мы реализовали модуль биллинга, который:

  • Рассчитывает стоимость владения «Пульс» для компаний холдинга. Модуль по каждой компании получает данные по фактическому количеству пользователей, работающих в «Пульс», на последний день месяца, далее применят фиксированную стоимость лицензии на пользователя, которая берется из справочника. 
  • Далее работает автоматизация - сервис формирует 2 документа в формате PDF: счет на оплату и реестр пользователей. 
  • Передает документы в реестр и в финансовое хранилище финансовых документов, и запускается процесс взаиморасчетов между компаниями. 

3. Создание двусторонней связи между «Пульсом» и системами холдинга для обмена данных между различными сервисами

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

В модуле Staff DB содержатся различные данные: подразделения, штатные позиции, сотрудники (информация про сотрудника, опыт, обучение, сертификация, награды, взыскания и т.д.), и связи между ними.

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

Первая задача модуля интеграции - Импорт данных в «Пульс»:

1. Забрать и валидировать данные из Staff DB 

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

 3. Экспортировать данные в «Пульс» с помощью сервиса Pulse Export

Пульс1

Вторая задача модуля интеграции - Экспорт данных из «Пульс»:

В «Пульс» создаются новые различные данные, которые важно синхронизировать с другими системами (Staff DB, Портал, 1C, Центр Уведомлений и др.). Например, процесс трудоустройства заканчивается утверждением кандидата и отправкой соответствующих событий в 1С. Другой пример – когда пользователь в «Пульс» может пройти аттестацию, получить сертификат или дополнить свой профиль дополнительными сведениями о себе: чем он любит заниматься в свободное время или какими достижениями может гордиться, что важно транслировать как минимум в профиль корпоративного портала.

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

Ждем доработок со стороны «Пульс» и переходим на целевую схему – событийную интеграцию с использованием web hook, чтобы при наступлении события, например, завершения кадрового оформления, платформа самостоятельно обращалась к сервису, а интеграционный модуль с помощью BPMN-движка Camunda обрабатывал событие и маршрутизировал уведомления об этом событии другим системам (Staff DB, Портал, 1C, Центр Уведомлений и др.), чтобы они самостоятельно обработали обновления, полученные от «Пульс».

Обмен сообщениями между интеграционным модулем и внутренними системами можно реализовать с помощь Kafka, RabbitMQ, Rest API, SQL запрос и др. В нашем случаем мы используем Kafka. А в этой статье мы больше рассказываем про брокер сообщений RabbitMQ и его типы очередей.

Пульс2

В конечном итоге, мы рассказали в статье самое интересное и важное, что нужно знать и делать при интеграции систем с HR-платформой «Пульс» от «Сбера».

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