Найти в Дзене

Интеграция SAP R3 c RESTFull API ФИАС часть 1

Прежде чем писать об интеграции SAP c RESTFull API ФИАС стоит определиться с тем, что такое ФИАС и что такое RESTFull API, а также цель интеграции с данным API.

Итак, начнем, аббревиатура ФИАС переводится как федеральная информационная адресная система. Согласно википедии цель создания ФИАС "обеспечение в России унификации структуры адресной информации <…> и единообразного наименования входящих в неё элементов, а также обеспечение предоставления государственных и муниципальных услуг". Данная информационная система пришла на замену классификатору адресов Российской Федерации, или, сокращенно КЛАДР. С вступления в силу требований законодательства по ведению адресов в формате ФИАС все органы государственной власти перешли на ведение адресов в данном формате, однако большинство юридических лиц оставались все также на КЛАДРе, так как законодательных требований по использованию ФИАСа для юридических лиц не было, а загружать в БД еще один справочник адресов никто не хотел. Основное отличие ФИАСа от КЛАДРа заключалось в появлении уникального идентификатора адреса, который предполагалось в дальнейшем использовать в отчетности для юридических лиц, однако от этого вскоре отказались.

И вот все бы так и шло дальше, однако беда пришла оттуда, откуда ее не ждали. С 1 января 2022 года государство начало процесс по переводу начисления выплат по больничному листу в проактивный формат. Вкратце в чем суть, при проактивном формате работы гражданину уже не нужно обращаться на предприятие для начисления выплат по больничному листу, вместо этого все сведения о больничных передаются напрямую в государственный орган, а он в свою очередь дальше передает больничный на предприятие. Таким образом, гражданину не требуется нести больничный в отдел кадров самому, обо всем позаботиться государство. Реализуется это все через программу СБИС онлайн. Интеграция с SAP у СБИС была реализована через специальный модуль SAP, в который передавались данные из СФР, обрабатывались в SAP и затем передавались назад в СФР. И вот тут, при передаче данных через СБИС онлайн и возникла необходимость в этом GUID, который внезапно стал обязательным при передаче сведений о сотруднике в СФР из SAP.

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

Для разработчиков ФНС, которая и занимается поддержкой ФИАС разработала RESTFull API для различных задач, связанных с адресными данными.

Что такое RESTFull API.

Отличительной чертой RESTFull API является использование в основном протокола HTTP в качестве формата запросов и ответов на сервер. Запросы на сервер отправляются в виде URL адреса требуемого формата. Ответ возвращается в основном JSON формате, реже в XML.

Компоненты HTTP

HTTP определяет следующую структуру запроса(request):

строка запроса (request line) — определяет тип сообщения

заголовки запроса (header fields) — характеризуют тело сообщения, параметры передачи и прочие сведения

тело сообщения (body) — необязательное

HTTP определяет следующую структуру ответного сообщения (response):

строка состояния (status line), включающая код состояния и сообщение о причине

поля заголовка ответа (header fields)

дополнительное тело сообщения (body)

Для автоматизации процесса получения адресов было решено использовать два сервиса RESTFull API ФИАС федеральной налоговой службы:

1. /api/spas/v2.0/SearchAddressItems - сервис для получения адресных элементов с GUID, соответствующих заданной произвольной строке адреса

2. /api/spas/v2.0/GetAddressItemByGuid сервис для получения адресного элемента по уникальному идентификатору ФИАС.

Требовалось решение, которое осуществляло поиск адреса в ФИАС через RESTFull API по адресу, полученному из 0006 инфо-типа сотрудника и затем подтягивало его в SAP на экран программы вместе с GUID. А также решение, которое искало адрес в ФИАС по полученному GUID.

Интеграцию SAP с REST Full API ФИАС было решено производить через специальное интеграционное решение от SAP – SAP PI/PO. Так как данная интеграционная шина, которая имеет из коробки REST adapter, идеально подходила для данной задачи.

Прежде чем перейти к описанию самого процесса интеграции стоит сказать несколько слов про SAP PI/PO.

Здесь следует сделать небольшое разделение на SAP PI и SAP PO.

SAP PI(Process Integration) — это платформа корпоративной интеграции, которая обеспечивает плавную интеграцию между приложениями SAP и сторонними приложениями внутри организации A2A (от приложения к приложению) или даже за пределами организации B2B (бизнес для бизнеса). Это позволяет организациям обмениваться информацией между внутренним программным обеспечением внутри компании и внешними системами за пределами компании.

SAP PO (Process Orchestration) — инструмент для автоматизации и оптимизации бизнес-процессов. Он сочетает в себе функции управления бизнес-процессами SAP (BPM), интеграции процессов SAP (PI) и управления бизнес-правилами SAP (BRM). Другими словами, SAP Process Orchestration — это более продвинутая версия SAP PI, в которой есть все инструменты, необходимые для интеграции приложений.

Основными элементами SAP PI являются:

1. System Landscape Directory

2. Enterprise Service Repository

3. Integration Directory

Далее остановимся на этих элементах поподробнее:

System Landscape Directory или системный ландшафт.

В каталоге SLD описаны все компоненты системного ландшафта – сервера, технические данные, программное обеспечение, логические блоки ландшафта – и связи между этими компонентами. Основой для хранения служит Common Information Model (CIM).

Каталог SLD состоит из трех компонентов:

- технического ландшафта,

- бизнес-ландшафта,

- программного обеспечения.

Таким образом, в SLD создаются и настраиваются сами участники обмена данными, с которыми мы строим интеграцию.

Более подробно объекты System Landscape Directory, а также их создание для SAP и non-SAP систем разобраны в данной статье: http://sap.pitroff.ru/sap-netweaver/sap-xi-pi/sap-pi-sozdaem-asinhronnyiy-interfeys-chast-1-2/.

Enterprise Service Repository или репозитарий корпоративных сервисов.

Основная задача Enterprise Service Repository это преобразование данных и преобразование значений.

В Enterprise Service Repository содержаться:

- исходные данные (структура, возможные значения и т.п.);

- целевые данные;

- правила преобразования между исходными и целевыми данными.

Более подробно про Enterprise Service Repository написано в данной статье:http://sap.pitroff.ru/sap-netweaver/sap-xi-pi/sap-process-integration-osnovyi-chast-4-sld-i-integration-directory/.

Integration Directory или Репозитарий интеграции

В Integration Directory происходит

– определение участников обмена;
– настройка
адаптеров для связи с этими системами (создание каналов связи);
– настройка правил маршрутизации.

Адаптер SAP PI – это программа, занимающаяся переводом сообщения и протокола передачи из внешнего формата во внутренний формат SAP PI (SOAP-XML). Адаптеры для SAP-систем и распространенных интерфейсных технологий (например, HTML, SOAP, file/FTP и др.) входят в стандартную поставку SAP Netweaver Process Integration.

Канал связи (communication channel) – это настройки адаптера для связи с конкретной системой.

Правила маршрутизации (routing rules) – это набор объектов конфигурации, которые определяют, каким образом сообщение будет принято, обработано и передано получателю.

Более подробно про Integration Directory можно ознакомиться в данной статье:

http://sap.pitroff.ru/sap-netweaver/sap-xi-pi/osnovyi-sap-pi-chast-5-kak-soobshhenie-nahodit-poluchatelya/.

Там же можно посмотреть информацию про правила маршрутизации и адаптеры.

На этом пока все, про интеграцию SAP R3 с RESTFull API ФИАС в следующей статье.