Создание oData сервиса. Часть 6. Soft state

Soft State(Гибкое состояние) - позволяет поддерживать сессию на некоторое время и сохранять данные между вызовами в этом периоде. Активируется и настраивается довольно легко.

1. В классе *MPC_EXT необходимо включить это состояние в переопределенном методе DEFINE

2. В классе *DPC_EXT определим две переменных.

MV_SOFTSTATE - переменная по которой мы будем определять, что состояние включено.(В случае, если на настройках сервиса Гибкое состояние деактивируется, переменная будет пустая)
MV_CHECK - статический атрибут, который нужен только в учебном случае для теста. Используем его, чтобы посмотреть, что данные действительно сохраняются между вызовами. На практике каждый сделает необходимые для себя переменные.

3. Переопределим в классе *DPC_EXT два метода OPERATION_START и OPERATION_END
В OPERATION_START взведем флаг MV_SOFTSTATE

OPERATION_END ~ оставляем пустым, однако, переопределить его надо обязательно.

4. Далее настроим сервис. Перейдем в транзакцию /IWFND/MAINT_SERVICE

Soft State неактивно
Первым делом для активации надо настроить время сессии в SICF

Выбираем узел и нажимаем редактирование

Прописываем необходимое время и сохраняем

Возвращаемся в /IWFND/MAINT_SERVICE и активируем Soft State

Готово

Тест сервиса

В классе *DPC_EXT в методе ENTITYSPLISET_GET_ENTITYSET в случае если Soft State активировано, назначим переменной mv_check значение true.

Далее нам понадобится вызывать сервис по ссылке из браузера. Адрес можно узнать в транзакции SICF

 

+ добавляем сущность которую хотим вызвать
Получим примерно такую строку: http://XXXXXXXXXXXXXXX/sap/opu/odata/sap/ZZ_TEST_SERVICE_SRV/EntitySpfliSet

Ставим точку в методе, после чего вызываем один раз, F8 и вызываем второй.
Видим, что сразу после второго вызова переменная GV_CHECK уже заполнена

 

Создание oData сервиса. Часть 6. Soft state: 1 комментарий

  1. После настроек классов *DPC_EXT и *MPC_EXT (перепроверил три раза) в тр-ции /IWFND/MAINT_SERVICE все равно статус гибкого состояния “не поддерживается”, и поставить статус “активно” не дает. Что это может быть?

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

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