Прежде чем писать об интеграции 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 можно ознакомиться в данной статье:
Там же можно посмотреть информацию про правила маршрутизации и адаптеры.
На этом пока все, про интеграцию SAP R3 с RESTFull API ФИАС в следующей статье.