Administração e troubleshooting

Limpeza do cache de metadados do Gateway

Limpeza do cache de metadados do Gateway é o procedimento que limpa os modelos de serviços OData armazenados em cache no SAP Gateway: a /IWFND/CACHE_CLEANUP limpa o cache no hub, e a /IWBEP/CACHE_CLEANUP limpa o cache no back-end. A limpeza do cache de metadados do Gateway é necessária quando um app SAP Fiori continua mostrando campos, rótulos ou anotações antigos após uma alteração no serviço.

Resumo

Tipo
Procedimento de administração do SAP Gateway
Camada
Serviços e APIs
Cache do hub
Modelo de metadados, modelo de anotações, textos de anotações; /IWFND/CACHE_CLEANUP
Cache do back-end
Modelo de metadados e de anotações; /IWBEP/CACHE_CLEANUP
Também em
SAP Gateway Client, menu Metadata (limpar ou reconstruir)
Quem executa
Administradores de basis, desenvolvedores SAP Fiori e ABAP
Aplica-se a
SAP S/4HANA on-premise e Private Edition, SAP ERP (ECC)
Camada: Serviços e APIsOnde se encaixa ▾
Onde se encaixa: L4 · Serviços e APIsCamada: Serviços e APIs.L1L2L3L4L5L6BTP

Camada: Serviços e APIs

Abrir o mapa de arquitetura →

Como funciona o cache de metadados do SAP Gateway?

O SAP Gateway armazena em cache os metadados de cada serviço OData para não reconstruir o modelo a cada requisição:

  • No hub, ele armazena o modelo de metadados, o modelo de anotações e os textos das anotações.
  • No back-end, ele armazena o modelo de metadados e o modelo de anotações.
  • Em uma implantação embedded, hub e back-end são um único sistema, e o cache acontece uma só vez.

Para serviços construídos com o modelo OData Channel, uma model provider class alterada dispara uma atualização automática: a cada requisição do service document ou do documento $metadata, o cache compara timestamps e recarrega os metadados desatualizados. Por isso, o cache de metadados do SAP Gateway se atualiza sozinho no caso comum e só precisa de limpeza manual quando essa verificação não consegue enxergar a alteração.

Quando é preciso limpar o cache de metadados?

Limpe o cache quando:

  • uma alteração no ABAP Dictionary, como um novo tipo de campo em uma estrutura, altera o modelo sem alterar a model provider class, porque nenhum mecanismo a detecta;
  • uma model provider class alterada foi importada em um sistema de produção, onde a SAP recomenda uma limpeza após cada importação desse tipo;
  • support packages foram importados, o que a SAP lista entre as correções de cache do launchpad;
  • um app SAP Fiori mostra propriedades, rótulos ou anotações antigos, embora o serviço no back-end esteja correto.

Em sistemas de desenvolvimento, o cache do hub vem desativado por padrão, então metadados desatualizados ali normalmente vêm do navegador ou do cache do back-end. A limpeza do cache de metadados do Gateway é uma correção pontual para alterações de modelo que a verificação automática não detecta.

Como limpar o cache de metadados passo a passo?

A Alder Manufacturing transporta um novo campo para o seu serviço de fornecedores, e o app ainda não o mostra:

  1. No sistema hub, execute a /IWFND/CACHE_CLEANUP. Selecione Cleanup Cache for all Models, ou restrinja ao modelo afetado, e execute.
  2. No sistema back-end, execute a /IWBEP/CACHE_CLEANUP da mesma forma. Em uma implantação embedded, as duas são executadas no mesmo sistema.
  3. Como alternativa, abra a /IWFND/GW_CLIENT, chame o serviço e use o menu Metadata para limpar o hub, o back-end ou ambos, ou para reconstruir o cache do serviço atual.
  4. Solicite o $metadata no SAP Gateway Client e confirme que o novo campo está lá.
  5. Recarregue o app; se o navegador ainda mostrar o modelo antigo, limpe o cache do navegador.

As duas limpezas também estão disponíveis como atividades IMG na SPRO. Verificar o $metadata antes de testar o app separa um problema de cache de metadados do Gateway de um problema de cache do navegador.

Como o navegador armazena metadados OData em cache?

O SAP Fiori launchpad também armazena metadados e anotações OData em cache no navegador, protegidos por tokens de cache buster. O front-end server coleta esses tokens dos hubs do SAP Gateway pelo report /UI5/UPD_ODATA_METADATA_CACHE, que a SAP recomenda agendar periodicamente em produção, mas não em sistemas de desenvolvimento. Quando os tokens mudam, os navegadores carregam os novos metadados.

Se esse report não foi executado desde uma alteração, os usuários ainda podem ver metadados antigos após uma limpeza no Gateway. O /UI2/INVALIDATE_GLOBAL_CACHES limpa os caches do launchpad, não os metadados OData, portanto não substitui esse passo. A limpeza do cache de metadados do Gateway e a atualização de tokens no lado do navegador, juntas, tornam uma alteração de modelo visível de ponta a ponta.

/IWFND/CACHE_CLEANUP vs. /IWBEP/CACHE_CLEANUP vs. /UI2/INVALIDATE_GLOBAL_CACHES: qual é a diferença?

/IWFND/CACHE_CLEANUP/IWBEP/CACHE_CLEANUP/UI2/INVALIDATE_GLOBAL_CACHES
Executa emHub do SAP GatewaySistema back-endSAP Fiori front-end server
LimpaModelos de metadados e de anotações e textos do hubModelos de metadados e de anotações do back-endCaches dos serviços do launchpad (UI2)
Gatilho típicoMetadados antigos após uma alteração no serviçoAlteração no Dictionary não detectada pelo modeloConteúdo do launchpad transportado não visível

As duas limpezas do Gateway atualizam os modelos OData; o report UI2 atualiza o conteúdo do launchpad.

Perguntas frequentes

Preciso executar a /IWFND/CACHE_CLEANUP e a /IWBEP/CACHE_CLEANUP?

Em uma implantação hub, sim, quando não se sabe onde está o modelo desatualizado: execute a /IWFND/CACHE_CLEANUP no hub e a /IWBEP/CACHE_CLEANUP no back-end. Em uma implantação embedded, as duas são executadas no mesmo sistema, que a SAP documenta como armazenando o modelo em cache uma só vez; se os metadados antigos persistirem após uma limpeza, execute também a outra.

Dá para desativar o cache de metadados do SAP Gateway?

Para OData V2, o cache do hub pode ser ativado ou desativado na SPRO; a SAP recomenda desativá-lo em desenvolvimento e mantê-lo ativo em produção e em sistemas de teste de performance. Para OData V4, o SAP Gateway não oferece opção para desativar o cache de metadados.

Limpar o cache de metadados é arriscado em produção?

A limpeza não é destrutiva: a próxima requisição reconstrói o modelo a partir da implementação do serviço. As primeiras chamadas após uma limpeza completa são mais lentas, por isso restringir a limpeza aos modelos afetados limita o impacto.

Por que o app ainda mostra anotações antigas após a limpeza?

O navegador pode ainda guardar os metadados anteriores. Verifique primeiro o $metadata no SAP Gateway Client; se estiver correto ali, o problema está no lado do cliente, e a atualização agendada de tokens ou a limpeza do cache do navegador o resolve.

Fontes

Aplica-se a
SAP S/4HANA on-premise · SAP S/4HANA Cloud Private Edition · SAP ERP (ECC)
Última revisão

SAP, SAP Fiori, SAPUI5, SAP S/4HANA, SAP BTP e os demais produtos e serviços SAP mencionados são marcas comerciais ou marcas registradas da SAP SE (ou de uma empresa afiliada da SAP) na Alemanha e em outros países. Este guia é independente e não é afiliado, patrocinado nem endossado pela SAP SE.