Внедрение / регистрация сервиса SAP Gateway oData service ( SEGW)

Рассмотрим следующий шаг – регистрацию сервиса SAP Gateway oData service в транзакции SEGW.

Регистрация сервиса oData SEGW

Обращаем внимание на поле Technical Service Name – это имя нашего сервиса для внешнего мира.

Нажимаем на иконку генерации (1), затем на кнопку Ок (2). В дальнейших окнах указываем пакет и номер транспорта или сохраняем как локальный.

Создание записи каталога объектов

В итоге должны получить сообщение об успешной генерации, как показано ниже:

Runtime objects for project were generated successfully

Поздравляю, oData сервис сгенерирован.
По рекомендации SAP, Front-End и Back-End сервера должны быть разделены. Создание, генерацию oData сервиса мы выполняли в Back-End сервере.
Для активации и тестирования oData сервиса идем в Front-End сервер, запускаем транзакцию /IWFND/MAINT_SERVICE – Активация и ведение сервисов. Для добавления созданного сервиса в каталог сервисов нажмем кнопку «Добавить сервис».

Активация и ведение сервисов oData /IWFND/MAINT_SERVICE

В открывшемся окне указываем системный псевдоним (SAP System Alias) и нажимаем кнопку «Получить сервисы». В списке бэкэнд-сервисов выделяем наш сервис (1) и нажимаем на кнопку «Добавить выбранные сервисы» (2).

Добавление сервиса в бэкэнд систему

Откроется окно добавления сервиса:

Добавление сервиса oData

Присвоим пакет (или укажем локальность объекта) и нажмем Ок. Сообщение «Сервис создан и его метаданные загружены успешно» информирует нас, что сервис активирован.

Сервис oData создан и его метаданные загружены успешно

Выходим из режима добавления сервисов. В общем списке видим наш сервис:

Каталог сервисов odata

Протестируем работу нашего сервиса. Воспользуемся кнопкой «Клиент SAP Gateway» (1), запуститься транзакция /IWFND/GW_CLIENT – SAP Gateway Client.

транзакция /IWFND/GW_CLIENT - SAP Gateway Client

Для проверки работы сервиса, посмотрим метаданные oData. Кнопкой «Add URI Option» (1) выбираем опцию metadata, кнопкой «Execute» (2) получим наши типы и наборы сущностей:

SAP Gateway Client

Сервис работает.
А что возвращают нам наборы сущностей Entity Sets? Нажмем кнопку «EntitySet», выберем внутреннюю таблицу GroupSet:

транзакция /IWFND/GW_CLIENT

Нажмем кнопку «Execute» и получим 501 ошибку.

501 Not Implemented — сервер не поддерживает возможностей, необходимых для обработки запроса. Типичный ответ для случаев, когда сервер не понимает указанный в запросе метод.

501 Not Implemented

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

Методы исполнения oData сервиса

Мы подошли к следующему шагу разработки 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 сервис

2 комментариев для “Внедрение / регистрация сервиса SAP Gateway oData service ( SEGW)”

  1. Есть вопрос вот к этому месту:
    “В открывшемся окне указываем системный псевдоним (SAP System Alias) и нажимаем кнопку «Получить сервисы». В списке бэкэнд-сервисов выделяем наш сервис (1) и нажимаем на кнопку «Добавить выбранные сервисы» (2)”
    Как правильно настроить системный псевдоним ?
    Я создал RFC соединение, в SPRO создал псевдоним , присвоил ему соединение.
    В /IWFND/MAINT_SERVICE указываю этот алиас, нажимаю получить сервисы и в системе фиори я все равно не вижу сервис из системы разработки.

    1. Если всё правильно настроено, то помогут советы от наших крутых базисников:
      1. Проблемы с полномочиями в исходной системе (в системе разработки) на S_SERVICE или на S_RFC;
      2. Проблемы с cache. Помогут транзакции:
      – в back-end системе /IWBEP/CACHE_CLEANUP.
      – в front-end системе /IWFND/CACHE_CLEANUP.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

 

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.