Now accepting guest editorial from SAP, Oracle, Workday and ServiceNow practitioners.Pitch a guide
The Sign-Off Table

Lesson 1 of 6

UI5 2.x: what changes

11 min

Listen to this lesson

0:00 / 8:35

In late 2023 SAP announced OpenUI5 2.x: a major version that removes deprecated libraries and functionality to make the framework leaner and fit for strict browser security. For owners of custom Fiori and UI5 apps, that read like a deadline. Then, in an SAP Community update in autumn 2026, SAP's UI5 team said that UI5 2.x is on hold from a delivery perspective: technically close to ready, but paused while SAP works out the framework's role in an AI-driven environment. SAPUI5 remains SAP's strategic UI technology, and the cleanup work is being applied to the 1.x line.

So is this course still needed? Yes, because SAP's advice did not change: code written to the current best practices runs on 1.x today and would need no migration for 2.x. Synchronous loading, globals and deprecated APIs are already deprecated in 1.x, already fail Content Security Policy, and already break as SAP cleans up the 1.x core. Contoso Motor Co. treats "UI5 2.x readiness" as what it really is: removing technical debt from its custom UI estate, with regression tests, on a schedule Contoso controls.

The four goals, in SAP's words

GoalWhat it meansTypical legacy code at Contoso
No synchronous code loadingModules load asynchronously; required for CSP compliancejQuery.sap.require
No synchronous data loadingNo sync XHR, which browsers deprecatejQuery.ajax({ async: false })
No global namesModules are required, not reached through namespacesnew sap.m.Button(...), sap.ui.getCore().byId(...)
No deprecated APIsUse the documented replacementssap.ui.getCore(), JSView, HTMLView, tap instead of press

The goals from SAP's "Best Practices for Developers" page in the UI5 documentation, with examples of what they replace.

Around those goals sit concrete rules from the same page: implement the sap.ui.core.IAsyncContentCreation marker interface in Component.js; load views, fragments and resource bundles asynchronously; never set async to false when creating components; use Manifest Version 2; use XML views or typed views instead of JS, HTML and JSON views; use this.byId() instead of sap.ui.getCore().byId(); avoid inline scripts and styles; move tests to QUnit 2 and the Test Starter. Long-deprecated libraries such as sap.ui.commons and sap.ui.ux3 have no future in either line.

The 2.x story so far: the deadline moved, the advice did not. Check SAP's current UI5 status before you plan.
The Sign-Off Table · thesignofftable.com/academy/sap-btp-206

Contoso's custom UI estate

After the conversion, Contoso's front-end server (embedded in CMP) runs SAP-delivered Fiori apps, which SAP maintains, and Contoso's own apps, which Contoso maintains. Kenji's inventory (illustrative numbers) found 38 custom apps: 9 Fiori elements apps (including the RAP core agreement app), 22 freestyle UI5 apps built between 2015 and 2020 for ECC, and 7 freestyle apps that still use sap.ui.commons controls or JS views. The fleet order status app on SAP BTP, built with CAP and Fiori elements, is in the same estate even though it is deployed elsewhere.

Fiori elements V4 appsFramework-owned UI; remediation mostly in custom extensions
Fiori elements V2 appsFramework-owned; check extensions and plan for V4 where the service allows
Modern freestyle appsAsync, AMD modules, XML views; linter findings are few and local
Legacy freestyle appsGlobals, sync loading, jQuery.sap; many findings in every file
Apps on deprecated librariessap.ui.commons or ux3 controls, JS views: rebuild candidates
Contoso's custom UI estate by risk, from least to most remediation work.
The Sign-Off Table · thesignofftable.com/academy/sap-btp-206

Which SAPUI5 version are you on?

Readiness starts with knowing what runs where. Apps on the SAP S/4HANA front-end server use the SAPUI5 version delivered with the S/4HANA release and its feature and support packages; SAP Fiori front-end server 2025 for SAP S/4HANA ships SAPUI5 1.136, a long-term maintenance version, so confirm the exact version in your system (in the launchpad, the About dialog shows it). Apps on SAP BTP can pin a version in their bootstrap or follow the launchpad's version, and BTP receives new SAPUI5 versions far more often. SAP's version overview page lists each version's maintenance status. Contoso records the version per app in the inventory, because a fix proven on one version is only proven for that version.

Why testers care

Every rule above changes how an app loads and renders, not what it shows. That is the worst kind of change to test: the screen looks the same, and the defect appears only on a slow network (async timing), in a browser with a strict Content Security Policy, after a cache refresh, or in a code path nobody clicked. Priya's position is simple: no remediated app moves to CMP without its regression suite passing on the remediated code, and no app without a suite gets remediated before a suite exists.

The first triage of the estate: SAP's apps, unused apps and Fiori elements apps each need far less work than custom freestyle code.
The Sign-Off Table · thesignofftable.com/academy/sap-btp-206

What goes wrong

  • Treating 2.x as a date. Teams that planned a big-bang migration for a release date now have no plan at all.
  • Treating "on hold" as "never". Sync loading and globals are already deprecated, already block CSP, and already produce warnings in 1.x.
  • Ignoring unused apps. Remediating an app nobody opens is wasted effort; retiring it is the cheapest fix.
  • Testing by looking. A remediated app that "looks fine" can still fail on the second navigation or with a slow back end.

What would you do?

After SAP put UI5 2.x delivery on hold, Grace asks whether Contoso can drop the UI remediation from the roadmap. What should Kenji recommend?

Key points
  • SAP put UI5 2.x delivery on hold in autumn 2026; SAPUI5 remains strategic and the cleanup flows into 1.x.
  • The four goals: no sync code loading, no sync data loading, no globals, no deprecated APIs.
  • Best-practice code needs no migration, so remediation is debt reduction on Contoso's own schedule.
  • Inventory first: owner, technology, usage, linter summary and test suite for every custom app.

Check your understanding · not graded

Lesson check

  1. 1. What did SAP's autumn 2026 update say about UI5 2.x?

  2. 2. Why is synchronous code loading a problem beyond 2.x?

  3. 3. Which marker interface should Component.js implement?

  4. 4. Which replacement does SAP recommend for sap.ui.getCore().byId() in a controller?

  5. 5. What is the cheapest fix for a custom app nobody has opened in 90 days?