Метаданные SAPUI5 не обновляются после изменений

У нас возникла проблема с SAPUI5 сервисным обслуживанием. После внесения изменений в объекты службы через SEGW транзакцию метаданные, загруженные в GW клиенте, остаются в состоянии до изменений.

Например, было поле даты, измененное на строку, и GW выдает ошибки invalid or no mapping to system data types found. Причиной является попытка поместить строковое значение даты, например «16.05.2019», в тип даты (метаданные сущностей почему-то не обновляются).

Мы попытались обновить эти кеши:

  • Пересчет индекса
  • Смайм
  • Глобальные кеши

С помощью:

  • /iwfnd/cache_cleanup
  • /ui2/invalidate_global_caches
  • /ui5/app_index_calculate

Мы также перезагрузили метаданные и даже удалили сущность и создали ее заново — все это не удалось.

В транзакции /IWFND_GW_CLIENT отображаются обновленные метаданные.

Только воссоздание объекта с другим именем, похоже, решает эту проблему, но это не похоже на хороший способ поддерживать службу...


person Dorad    schedule 16.05.2019    source источник
comment
Мы попытались обновить любой известный кеш. Не могли бы вы указать это со списком того, что вы определенно сделали?   -  person futu    schedule 16.05.2019
comment
@футу конечно. меня выбрали, чтобы задать несколько вопросов моей команде, и мы все покинули офис до воскресенья. я постараюсь спросить их и ответить здесь как можно скорее.   -  person Dorad    schedule 16.05.2019
comment
@futu я дополнил недостающую информацию.   -  person Dorad    schedule 16.05.2019
comment
Если вы тестируете приложение в приватной вкладке браузера и оно работает, то, скорее всего, проблема в кеше браузера. Вы пробовали это?   -  person fabiopagoti    schedule 16.05.2019
comment
да. и Он терпит неудачу до уровня браузера, при отладке кода sap в GW мы могли видеть старые метаданные, загруженные в код до того, как он поступит в браузер   -  person Dorad    schedule 16.05.2019


Ответы (1)


/IWFND/CACHE_CLEANUP относится только к OData, остальные кеши предназначены для развернутых приложений UI5. если вы находитесь в среде GatewayHub с несколькими серверными системами, вы должны выполнить транзакцию в обеих системах.

Если транзакция этого не делает, для обеих систем выполняется еще одна очистка кеша, которая реализована в SAP по-разному. Вот что я делаю после смены службы в бэкэнд-системе SEGW:

  1. Серверная часть SEGW: перегенерировать объекты среды выполнения
  2. GatewayHub (GW) /IWFND/GW_CLIENT выполнить /sap/opu/odata/ZyourService_SRV/$metadata. Сервис без изменений
  3. в той же транзакции в верхнем меню: Metadata -> Cleanup Cache -> on both systems
  4. выполнить снова /sap/opu/odata/ZyourService_SRV/$metadata. Сервис с изменениями
  5. Теперь во фронтенде остался только кеш браузера, в котором могла быть устаревшая информация. Обычно при жестком обновлении вашего приложения браузер перезагружает метаданные. В консоли разработчика браузера Chrome на вкладке «Сеть» вы также можете отключить кеширование при открытой консоли.
  6. Для новейших систем GatewayHub компания SAP представила кэширование Odata с помощью CacheBuster и программа, которую следует периодически планировать

Чтобы обеспечить актуальность токенов, необходимо периодически выполнять отчет /UI5/UPD_ODATA_METADATA_CACHE.

person futu    schedule 16.05.2019
comment
спасибо @футу. С нетерпением жду возможности попробовать. О результатах сообщу в воскресенье... - person Dorad; 16.05.2019
comment
Мы пробовали, и это не сработало. Я попрошу своих коллег написать их резюме, и я сообщу вам. - person Dorad; 20.05.2019