Внедрение / регистрация сервиса SAP Gateway oData service ( SEGW)
Рассмотрим следующий шаг – регистрацию сервиса SAP Gateway oData service в транзакции SEGW.
Обращаем внимание на поле Technical Service Name – это имя нашего сервиса для внешнего мира.
Нажимаем на иконку генерации (1), затем на кнопку Ок (2). В дальнейших окнах указываем пакет и номер транспорта или сохраняем как локальный.
В итоге должны получить сообщение об успешной генерации, как показано ниже:
Поздравляю, oData сервис сгенерирован.
По рекомендации SAP, Front-End и Back-End сервера должны быть разделены. Создание, генерацию oData сервиса мы выполняли в Back-End сервере.
Для активации и тестирования oData сервиса идем в Front-End сервер, запускаем транзакцию /IWFND/MAINT_SERVICE – Активация и ведение сервисов. Для добавления созданного сервиса в каталог сервисов нажмем кнопку «Добавить сервис».
В открывшемся окне указываем системный псевдоним (SAP System Alias) и нажимаем кнопку «Получить сервисы». В списке бэкэнд-сервисов выделяем наш сервис (1) и нажимаем на кнопку «Добавить выбранные сервисы» (2).
Откроется окно добавления сервиса:
Присвоим пакет (или укажем локальность объекта) и нажмем Ок. Сообщение «Сервис создан и его метаданные загружены успешно» информирует нас, что сервис активирован.
Выходим из режима добавления сервисов. В общем списке видим наш сервис:
Протестируем работу нашего сервиса. Воспользуемся кнопкой «Клиент SAP Gateway» (1), запуститься транзакция /IWFND/GW_CLIENT – SAP Gateway Client.
Для проверки работы сервиса, посмотрим метаданные oData. Кнопкой «Add URI Option» (1) выбираем опцию metadata, кнопкой «Execute» (2) получим наши типы и наборы сущностей:
Сервис работает.
А что возвращают нам наборы сущностей Entity Sets? Нажмем кнопку «EntitySet», выберем внутреннюю таблицу GroupSet:
Нажмем кнопку «Execute» и получим 501 ошибку.
501 Not Implemented — сервер не поддерживает возможностей, необходимых для обработки запроса. Типичный ответ для случаев, когда сервер не понимает указанный в запросе метод.
Мы получаем сообщение, что метод GROUPSET_GET_ENTITYSET не реализован в классе поставщика данных. Это нормально на данном этапе. Вспоминаем, что для каждого набора сущностей у нас по умолчанию созданы методы исполнения. Но они пустые, не были переопределены.
Мы подошли к следующему шагу разработки oData сервиса. Нам нужно написать ABAP код и логику выбора данных из бэкэнд системы во внутреннюю таблицу (Entity Set) сервиса OData.
Предыдущий шаг: oData: структура типов сущностей на основе ABAP структур (DDIC Structure)
Следующий шаг: Методы исполнения oData сервиса | Service Implementation CRUD
Создание SAP Gateway oData Service (SEGW):
Шаг №1. Определение модели данных. Entity Type. Entity Sets.
Шаг №2. oData: структура типов сущностей на основе ABAP структур (DDIC Structure)
Шаг №3. Внедрение / регистрация сервиса SAP Gateway oData servise ( SEGW)
Шаг №4. Методы исполнения oData сервиса | Service Implementation CRUD
Шаг №5. Внедрение Association и Navigation в SAP oData сервис
Есть вопрос вот к этому месту:
“В открывшемся окне указываем системный псевдоним (SAP System Alias) и нажимаем кнопку «Получить сервисы». В списке бэкэнд-сервисов выделяем наш сервис (1) и нажимаем на кнопку «Добавить выбранные сервисы» (2)”
Как правильно настроить системный псевдоним ?
Я создал RFC соединение, в SPRO создал псевдоним , присвоил ему соединение.
В /IWFND/MAINT_SERVICE указываю этот алиас, нажимаю получить сервисы и в системе фиори я все равно не вижу сервис из системы разработки.
Если всё правильно настроено, то помогут советы от наших крутых базисников:
1. Проблемы с полномочиями в исходной системе (в системе разработки) на S_SERVICE или на S_RFC;
2. Проблемы с cache. Помогут транзакции:
– в back-end системе /IWBEP/CACHE_CLEANUP.
– в front-end системе /IWFND/CACHE_CLEANUP.