Limpieza de la caché de metadatos de Gateway
La limpieza de la caché de metadatos de Gateway es el procedimiento que borra los modelos de servicios OData almacenados en caché en SAP Gateway: /IWFND/CACHE_CLEANUP borra la caché en el hub y /IWBEP/CACHE_CLEANUP la borra en el back-end. Esta limpieza es necesaria cuando una app SAP Fiori sigue mostrando campos, etiquetas o anotaciones antiguos tras un cambio en el servicio.
Datos clave
- Tipo
- Procedimiento de administración de SAP Gateway
- Capa
- Servicios y API
- Caché del hub
- Modelo de metadatos, modelo de anotaciones, textos de anotaciones; /IWFND/CACHE_CLEANUP
- Caché del back-end
- Modelo de metadatos y de anotaciones; /IWBEP/CACHE_CLEANUP
- También en
- SAP Gateway Client, menú Metadata (limpiar o reconstruir)
- Quién lo ejecuta
- Administradores de Basis, desarrolladores SAP Fiori y ABAP
- Se aplica a
- SAP S/4HANA on-premise y Private Edition, SAP ERP (ECC)
Capa: Servicios y APIDónde se ubica ▾
Capa: Servicios y API
Abrir el mapa de arquitectura →¿Cómo funciona la caché de metadatos de SAP Gateway?
SAP Gateway almacena en caché los metadatos de cada servicio OData para no reconstruir el modelo en cada solicitud:
- En el hub, almacena el modelo de metadatos, el modelo de anotaciones y los textos de las anotaciones.
- En el back-end, almacena el modelo de metadatos y el modelo de anotaciones.
- En una implementación embedded, hub y back-end son un único sistema, y el almacenamiento en caché se produce una sola vez.
Para los servicios construidos con el modelo OData Channel, una clase model provider modificada desencadena una actualización automática: en cada solicitud del documento de servicio o del documento $metadata, la caché compara timestamps y recarga los metadatos obsoletos. Por eso, la caché de metadatos de SAP Gateway se actualiza sola en el caso habitual y solo necesita una limpieza manual cuando esa comprobación no puede detectar el cambio.
¿Cuándo hay que borrar la caché de metadatos?
Borre la caché cuando:
- un cambio en el ABAP Dictionary, como un nuevo tipo de campo en una estructura, altera el modelo sin modificar la clase model provider, porque ningún mecanismo lo detecta;
- se importó una clase model provider modificada en un sistema productivo, donde SAP recomienda una limpieza tras cada importación de ese tipo;
- se importaron support packages, algo que SAP incluye entre las correcciones de caché del launchpad;
- una app SAP Fiori muestra propiedades, etiquetas o anotaciones antiguas aunque el servicio en el back-end es correcto.
En los sistemas de desarrollo, la caché del hub está desactivada de forma predeterminada, por lo que allí los metadatos obsoletos suelen proceder del navegador o de la caché del back-end. La limpieza de la caché de metadatos de Gateway es una corrección puntual para los cambios de modelo que la comprobación automática no detecta.
¿Cómo se borra la caché de metadatos paso a paso?
Alder Manufacturing transporta un campo nuevo a su servicio de proveedores, y la app sigue sin mostrarlo:
- En el sistema hub, ejecute /IWFND/CACHE_CLEANUP. Seleccione Cleanup Cache for all Models, o limítela al modelo afectado, y ejecute.
- En el sistema back-end, ejecute /IWBEP/CACHE_CLEANUP de la misma forma. En una implementación embedded, ambas se ejecutan en el mismo sistema.
- Como alternativa, abra /IWFND/GW_CLIENT, llame al servicio y use el menú Metadata para limpiar el hub, el back-end o ambos, o para reconstruir la caché del servicio actual.
- Solicite $metadata en SAP Gateway Client y confirme que el campo nuevo aparece.
- Recargue la app; si el navegador sigue mostrando el modelo antiguo, borre la caché del navegador.
Ambas limpiezas también están disponibles como actividades IMG en SPRO. Verificar $metadata antes de probar la app distingue un problema de la caché de metadatos de Gateway de un problema de la caché del navegador.
¿Cómo almacena el navegador los metadatos OData en caché?
El SAP Fiori launchpad también almacena en caché los metadatos y las anotaciones OData en el navegador web, protegidos por tokens de cache buster. El front-end server recopila estos tokens de los hubs de SAP Gateway mediante el report /UI5/UPD_ODATA_METADATA_CACHE, que SAP recomienda programar periódicamente en producción, pero no en los sistemas de desarrollo. Cuando los tokens cambian, los navegadores cargan los nuevos metadatos.
Si ese report no se ha ejecutado desde un cambio, los usuarios pueden seguir viendo metadatos antiguos después de una limpieza de Gateway. /UI2/INVALIDATE_GLOBAL_CACHES borra las cachés del launchpad, no los metadatos OData, por lo que no sustituye este paso. La limpieza de la caché de metadatos de Gateway y la actualización de los tokens en el navegador, en conjunto, hacen visible un cambio de modelo de extremo a extremo.
/IWFND/CACHE_CLEANUP vs. /IWBEP/CACHE_CLEANUP vs. /UI2/INVALIDATE_GLOBAL_CACHES: ¿cuál es la diferencia?
| /IWFND/CACHE_CLEANUP | /IWBEP/CACHE_CLEANUP | /UI2/INVALIDATE_GLOBAL_CACHES | |
|---|---|---|---|
| Se ejecuta en | Hub de SAP Gateway | Sistema back-end | SAP Fiori front-end server |
| Borra | Metadatos, modelos de anotaciones y textos del hub | Metadatos y modelos de anotaciones del back-end | Cachés de los servicios del launchpad (UI2) |
| Motivo típico | Metadatos antiguos tras un cambio en el servicio | Cambio en el Dictionary no detectado por el modelo | Contenido del launchpad transportado no visible |
Las dos limpiezas de Gateway actualizan los modelos OData; el report UI2 actualiza el contenido del launchpad.
Preguntas frecuentes
¿Necesito ejecutar tanto /IWFND/CACHE_CLEANUP como /IWBEP/CACHE_CLEANUP?
En una implementación hub, sí, cuando no está seguro de dónde se encuentra el modelo obsoleto: ejecute /IWFND/CACHE_CLEANUP en el hub y /IWBEP/CACHE_CLEANUP en el back-end. En una implementación embedded, ambas se ejecutan en el mismo sistema, que según la documentación de SAP almacena el modelo en caché una sola vez; si los metadatos antiguos persisten tras una limpieza, ejecute también la otra.
¿Puedo desactivar la caché de metadatos de SAP Gateway?
Para OData V2, la caché del hub se puede activar o desactivar en SPRO; SAP recomienda desactivarla en desarrollo y mantenerla activa en los sistemas productivos y de pruebas de rendimiento. Para OData V4, SAP Gateway no ofrece ninguna opción para desactivar la caché de metadatos.
¿Es arriesgado borrar la caché de metadatos en producción?
Borrarla no es destructivo: la siguiente solicitud reconstruye el modelo a partir de la implementación del servicio. Las primeras llamadas tras una limpieza completa son más lentas, por lo que limitar la limpieza a los modelos afectados reduce el impacto.
¿Por qué la app sigue mostrando anotaciones antiguas después de la limpieza?
Es posible que el navegador conserve todavía los metadatos anteriores. Verifique primero $metadata en SAP Gateway Client; si allí es correcto, el problema está en el cliente, y la actualización programada de los tokens o un reinicio de la caché del navegador lo resuelven.
Fuentes
- SAP Help Portal: Metadata Cache (SAP Gateway Foundation, hub and backend caching)
- SAP Help Portal: Metadata Cache (access scenarios and recommended settings)
- SAP Help Portal: SAP Gateway Client — Metadata menu
- SAP Help Portal: Cache Buster for OData Metadata of SAP Fiori Apps
- Se aplica a
- SAP S/4HANA on-premise · SAP S/4HANA Cloud Private Edition · SAP ERP (ECC)
- Última revisión