oData Aliases работа с несколькими системами

Представим себе ситуацию, что один веб-интерфейс должен работать с двумя или более системами. Для обеспечения подобного функционала oData позволяет использовать псевдонимы (Aliases).

Давайте рассмотрим на примере.

1. Для начала нам надо сделать два идентичных oData сервиса в системах связанных по RFC. Собственно делать можно только в одном, а во второй уже импортировать готовый во вторую систему.
2. Когда оба сервиса готовы необходимо в системе, в которой происходит обращение к Odata с фронтенда, создать псевдонимы для обоих систем. Заходим в транзакцию /IWFND/MAINT_SERVICE и прописываем псевдонимы.

Пропишем псевдонимы. Один это локальная система(Local). Второй(SAPHR) - удаленная. Отличаются эти настройки в простейшем случае только RFC.
Если ничего не трогать по умолчанию будет вызываться oData в локальной системе, т.к. именно ей мы поставили галки по умолчанию.

Для того, чтобы можно было вызвать удаленную систему необходимо создать реализацию BADI /IWFND/BD_MGW_DEST_FINDER .


Для реализации выбор не велик. Один метод GET_SYSTEM_ALIASES со списком псевдонимов. Также можно настроить фильтр для списков сервисов для которых это будет работать. Поскольку BADI будет вызываться при каждом обращении. 

По условию оставляем нужную запись, а остальные удаляем.
Что-то типа такого:

 

 

 

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

Ваш адрес email не будет опубликован.