UI5 und der Cache

UI5/Fiori und der Cache!

Viele kennen die Situation. Man hat im Entwicklungssystem eine super coole UI5/Fiori App für ein S/4HANA System gebastelt, aber nach dem Import in das Produktivsystem (oder Q-System) geht erstmal gar nix. Target was not found, Type Error, Unknown Setting, Cannot read properties, …

Sehr oft liegen die Gründe der Probleme am Cache! Nicht nur am Browser Cache, auch im SAP Backend gibt es mehrere zu berücksichtigende Caches. Nachfolgend eine Auflistung der Cache Themen, die mir im Zuge meiner Arbeit untergekommen sind.

Eigentlich unglaublich, wie viele Caches man ggf. löschen / invalidieren muss.

Wichtiger Hinweis: Das sind meine persönlichen Erfahrungen, bitte verwendet die Reports oder Transaktionen nur nach vorheriger Prüfung. Es kann durchaus sein, dass der eine oder andere Report obsolet wird oder in gewissen System nicht verwendet werden darf! Ich übernehme keine Garantie, dass die Reports oder Transaktionen in euren Systemen einwandfrei und korrekt funktionieren.

Welche Caches gibt es in UI5/Fiori

UI5/Fiori nutzt mehrere unabhängige Caching-Ebenen, die sich auf die Sichtbarkeit von Änderungen auswirken können. Wer die verschiedenen Caches kennt, kann Probleme nach Transporten oder Updates schneller beheben. Die wichtigsten Caches sind:

Browser Cache

  • Speichert statische Ressourcen wie JavaScript, CSS und Bilder.
  • Änderungen werden oft nicht sofort sichtbar, bis der Browser-Cache gelöscht wird
  • Test z.B. im Incognito Mode oder mit Hard-Reload (Ctrl+Shift+R)

UI5 Application Index (APP_INDEX)

  • Enthält eine Übersicht aller UI5-Apps im Launchpad.
  • Wird nach Deployment oder Änderungen an Apps aktualisiert via /UI5/APP_INDEX_CALCULATE

UI2 / Launchpad Caches

  • Speichert Kataloge, Gruppen und Pages im Fiori Launchpad.
  • Änderungen an Katalogen oder Pages erfordern ein Invalidate über die Transaktion /UI2/INVALIDATE_GLOBAL_CACHES

OData Metadata Cache

  • Hält Metadaten von OData-Services im Frontend- und Backend-Cache.
  • Aktualisierung über /IWFND/CACHE_CLEANUP und /IWBEP/CACHE_CLEANUP

Gateway / Backend Caches

  • Server-seitige Caches, z. B. ICM Cache, die Inhalte zwischenspeichern.
  • Werden selten automatisch geleert und können bei großen Änderungen Probleme verursachen.

Merksatz: Bei Problemen nach einem Transport immer von oben nach unten prüfen: Browser → App Index → UI2 → OData → Gateway/Backend. So lässt sich der Fehler systematisch lokalisieren.

Technische Caches in UI5/Fiori: Reports, Transaktionen und Server-Caches

UI5/Fiori verwendet verschiedene technische Caches auf Server- und Frontend-Ebene, die Einfluss auf die Sichtbarkeit und Funktionsweise von Apps haben. Dazu zählen spezielle Reports, Transaktionen und der ICM-Server-Cache. Die folgende Übersicht listet die wichtigsten Caches auf und zeigt, wann und wie sie geleert werden sollten.

NameTypErläuterungBereich
/UI5/APP_INDEX_CALCULATEReportAb UI Add-On 2.0+ Sollte periodisch eingeplant seinUI / App
/UI2/DELETE_CACHEReportLöscht UI2 Services & Target Mapping CachesUI / App / Lpd
/IWFND/CACHE_CLEANUPTransaktionClean Frontend OData CacheGW
/IWBEP/CACHE_CLEANUPTransaktionClean Backend OData CacheGW
ICM Server CacheGlobal InvalidierenUI / App / GW
/UI2/INVALIDATE_CLIENT_CACHESReportClient Cache Invalidation Fiori Launchpad / Cache BusterUI / App
/UI2/INVALIDATE_GLOBAL_CACHESReportInvalidiert alle UI2 Caches (Alle Services mit /UI2/*, SHMM, … )UI / App
/UI5/UPD_ODATA_METADATA_CACHEReportOData Cache – Cache Buster TokensUI / App
/UI5/UPDATE_CACHEBUSTERReportNur für UI Add-On 1.0UI / APP
CL_SADL_LOAD_AREAShared MemoryShared Memory invalidierenUI / APP
/UI2/FLP_DEL_PERSONALIZATIONReportSAP Fiori Launchpad PersonalisierungenUI / APP
/UI2/PAGE_CACHE_SYNCHRONIZE
/UI2/SYNC_PBC
Report
Transaction
Synchronization of the User-Independent CacheUI / APP
/UI2/EAM_BUILD_CACHEReportApp Finder Performance CacheUI / APP
Browser CacheIE, Chrome, … Cache UI / APP

/UI5/APP_INDEX_CALCULATE

Das ist mein Lieblingsreport in dem Zusammenhang, da er mir in den meisten Fällen immer die Probleme löst. Es gibt einen Applikationsindex und Caching für Apps, Komponenten und Libraries. Dieser Report löscht bzw. invalidiert diese Caches / Indextabellen und ist im Normalfall automatisch eingeplant.

Ich habe jedoch die Erfahrung gemacht, dass nach einem Transport von Änderungen einer UI5 Anwendung, ein explizites Ausführen des Reports für die jeweilige Anwendung notwendig ist.

Der Report ist im Normalfall regelmäßig als Job eingeplant.

Weiter Informationen zu dem Report können hier entnommen werden:

/UI2/DELETE_CACHE

Hier geht es um das Löschen des UI2 Cache. Dieser kann für einen User oder generell gelöscht werden.

/IWFND/CACHE_CLEANUP und /IWBEP/CACHE_CLEANUP

Invalidiert / Löscht das oData Model (SEGW oder RAP) am Frontend- und Backend-Server.

/UI2/INVALIDATE_CLIENT_CACHES

Dieser Report sollte überhaupt nur in Ausnahmefällen notwendig sein – wenn der UI5 Cache Buster im Einsatz ist.

/UI2/INVALIDATE_GLOBAL_CACHES

Invalidiert alle globalen UI2 Caches. Kann auch über die Transaktion /UI2/INVAL_CACHES aufgerufen werden. Invalidiert wird:

  • UI2 Cache – Tabelle: /ui2/cache
  • NWBC Cache Table: Tabelle: nwbc_nav_tree
  • UI2 Chip Cache – Tabelle: /ui2/chip_chdr

Ausführung wird im Applikationslog mit Objekt /UI2/CLEANUP_CACHES aufgezeichnet.

Für weitere Details, bitte die Dokumentation des Reports im System beachten.

/UI5/UPD_ODATA_METADATA_CACHE

Der Report löscht die OData Caches Tokens. Bitte auch hier die Dokumentation des Reports beachten.

/UI5/UPDATE_CACHEBUSTER

Der sorgt dafür, dass der Cache Buster mit dem aktuellsten UI5 Metadaten arbeitet. Der Report ist jedoch nur bei Systemen mit UI Add-On 1.0 einzusetzen. Bei Systemen mit einem höheren UI Add-On Release ist hingegen /UI5/APP_INDEX_CALCULATE zu verwenden.

/UI2/FLP_DEL_PERSONALIZATION

Fiori Launchpad Homepages können normalerweise durch den Anwender personalisiert werden. Es können neue Gruppen angelegt werden, Apps entfernt oder hinzugefügt werden. Manchmal ist es notwendig, solche Personalisierungen zurückzusetzen. Beispielsweise nach Änderungen im Fiori Katalog oder einer Fiori Gruppe. Ein Erklärung zu der Funktion ist hier beschrieben.

/UI2/PAGE_CACHE_SYNCHRONIZE

Der Report bereinigt Cache Probleme im Bereich der Launchpad Catalogs/Groups. Laut SAP sollte der Report regelmäßig eingeplant werden. Der Report ist auch über die Transaktion /UI2/SYNC_PBC erreichbar.

/UI2/EAM_BUILD_CACHE

Hier geht es um die Performance im Bereich App Finder. Weiter Informationen zu dem Report können hier entnommen werden:

Sonstiges

Änderungen an Service-Definitionen müssen manchmal manuell in Transportaufträgen aufgenommen und transportiert werden.

Fazit

Caching ist bei UI5/Fiori ein zweischneidiges Schwert: Einerseits sorgt es für Performance, andererseits kann es bei Änderungen schnell zu „Geisterproblemen“ führen. Die verschiedenen Caches – Browser, App Index, UI2, OData – müssen im richtigen Kontext berücksichtigt werden. Für Entwickler empfiehlt es sich, eine standardisierte Cache‑Checkliste im Deployment‑Prozess zu verankern und wiederkehrende Cleanup‑Jobs zu planen, damit Änderungen zuverlässig sichtbar werden.

Weiterführende Links

Veröffentlicht in Fiori Elements, High-Class Development und verschlagwortet mit , , .