Версионность oData сервиса

Пример создания новой версии oData сервиса в системе SAP с последующим его применением в SAPUI5 приложении.

Технология SAP Gateway предоставляет консультантам и разработчикам возможность задействовать старушку версионность при совершенствовании/доработке своих oData сервисов. Одним из приятных моментов в этом всем является то, что старые версии oData сервиса доступны для использования наряду с новыми. Что я имею ввиду? При разработке новых версий oData сервиса, старые могут использоваться в вашем приложении без каких-либо ограничений.

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

Шаг #1. Создание нового oData сервиса (версия 001)

На следующем видеофрагменте представлена последовательность действий в результате которой создается первая версия oData сервиса.

Пример создания oData сервиса ранее также был рассмотрен в одной из уже опубликованных заметок.

Создание Web приложения с помощью фреймворка SAPUI5 (6)
Создание Web приложения с помощью фреймворка SAPUI5 (6)

Шаг #2. Подготовка к созданию новой версии oData сервиса

Важным составляющим каждого oData сервиса, разрабатываемого в системе SAP, является пара классов: Model Provider Class и Data Provider Class. Для последующих манипуляций по созданию новой версии, мне потребуется задействовать один из этих классов. В проектной жизни, скорее всего, понадобится выполнить создание новых версий обоих типов классов. Для демонстрации в этой заметке, задействован будет только Data Provider класс.

Я скопирую ранее созданный DPC_EXT класс в новый, и внесу в него небольшие косметические изменения. На следующем видеофрагменте представлена соответствующая последовательность действий.

Шаг #3. Создание и регистрация новой версии oData сервиса (версия 002)

На следующем видеофрагменте представлена последовательность действий, в результате которой в системе создается новая версия oData сервиса с обязательным присвоением ей новой версии DPC_EXT класса (см. пункт Шаг #2. Подготовка к созданию второй версии oData сервиса. Создание нового *DPC_EXT класса). Регистрация новой версии oData сервиса выполняется в транзакции /IWBEP/REG_SERVICE

Пожалуйста, обратите внимание на то, что для вновь создаваемой версии oData сервиса также необходимо указать Model Provider класс, даже если его новая версия вами не создавалась (как в рассматриваемом примере).

Шаг #4. Активация новой версии oData сервиса в системе

Активируйте вновь созданную версию сервиса под номером #002 в системе, используя транзакцию /IWFND/MAINT_SERVICE.

Шаг #5. Проверка вызова новой версии oData сервиса

Посредством все той же транзакции SEGW, проверяю вызов второй версии oData сервиса. Вызвать определенную версию oData сервиса можно, указав соответствующий номер в запрашиваемом URI. Например,

/sap/opu/odata/SAP/ZDEMO_VERS_SRV;v=2/

Проверяю, что получилось.

Шаг #6. Параллельный вызов двух версий oData сервиса из SAPUI5 приложения

Для подтверждения и демонстрации факта параллельного вызова нескольких версий oData сервиса в пределах одного SAPUI5 приложения, предлагаю ознакомиться с короткой демонстрацией работы приложения со следующим исходным кодом его контроллера