Neptune DXP - SAP Edition 24.12.0 release notes
August 29, 2025
Starting with Neptune DXP - SAP Edition 24.11.0, we have adopted a semantic versioning approach to improve clarity around updates. This release remains fully supported in the LTS 24 scope, ensuring continued stability and long-term maintenance. |
API Designer
- Include RFC destination when calling API #512
-
It is now possible to pass the RFC destination for the API dynamically when calling the API. To do so, the parameter
$rfcdest
must be passed in the API.Example:
getOnline<APIObjID>({ headers: { "X-Id": "Zzz" // Optional }, parameters: { "$rfcdest": "RFC", // Optional Name of RFC Destination "PARAM1": "Xxx", // Optional "PARAM2": "Yyy", // Optional } });
- Method parameters in operations response #547
-
The clarity of the Response tab in API operations was improved. Previously, method parameters relating to
exporting
andretrieving
were incorrectly displayed. These are now removed, and only relevant importing and changing parameters are shown for a more accurate and streamlined view. - Neptune DXP - SAP Edition API integration with Neptune DXP - Open Edition mobile client #557
-
An issue was resolved where Neptune DXP - SAP Edition APIs could return errors when used within a Neptune DXP - Open Edition mobile client. The problem was caused by an empty JSON payload being sent in the request.
- Stateful APIs deprecated #602
-
Despite the
stateful
flag being set in the API settings, the DPC session did not keep its state. This setting is working as expected now, but this feature is slated for deprecation and removal in the future. - Swagger UI - #547
-
The Swagger UI was enhanced by refining the API operation definitions. Previously, parameters marked as
exporting
were incorrectly included and required, leading to the need for placeholder data during testing. Now, onlyimporting
andchanging
parameters are shown when applicable, resulting in a cleaner and more effective testing experience.
App Designer
- Display i18n texts on binding hover #567
-
In the attributes tree of an object, when a property value contains i18n bindings, their base texts are displayed as the tooltip on mouse hover.
- i18n binding for data element texts #523
-
An i18n equivalent of the current
~
attribute binding has been implemented. Manually binding an attribute to{sapddic>matnr}
will be equivalent to~MATNR
. To specify a length,{sapddic>matnr.l}
will be equivalent to~MATNR~L
. These text attributes are loaded using the i18n framework. (No changes have been made to the existing~
features) - JavaScript on a created and deleted object might survive #549
-
When creating a new object in the App Designer, adding multi-line JavaScript in an event for it, activating the app, and then deleting the object, the model of the Monaco editor still remained in memory. Following that, deleting that object and creating a new object that has the same event available, that model then interfered with the opening an editor window for the event JavaScript for the new object, and the code from the deleted object was then restored, based on identical ID, into the new editor window.
- New warning popup #584
-
When one of the license certificates reach 25 days before expiration date, a new notification popup is displayed to show this information and alert users.
- New worklist feature #570
-
A personal worklist feature is added, which allows a user to add specific objects in the application tree to a worklist, using the context menu. The worklist objects are then available from a popover table in the top left of the application tree, and from a separate tab in the search area of the designer. Selecting an object in the worklist opens the application tree hierarchy to that object and navigate to it.
- OData sources that contain complex types did not show correctly in the binding browser #603
-
When using an OData source that has complex types defined, the binding browser did not show correct values for that OData source. Complex types are now ignored. Proper handling of complex types will be implemented in an upcoming patch.
- Rich Text Editor #541
-
sap.ui.richtexteditor.RichTextEditor
has been added to the UI5 controls. - SAPUI5 security patch - new property to prevent HTML injection #558
-
Ref SAP note 3601169. As of the following SAPUI5 versions,
sap.m.formattedText
andsap.m.FeedListItem
have a new property,disableStyleAttribute
, with default valuefalse
: 1.71.75, 1.84.53, 1.96.40, 1.108.41, 1.120.28. Activation of the property removes inline styles prior to rendering the controls in the UI. Please make sure to download and import the latest UI5 patch versions from Neptune DXP Portal. The new propertydisableStyleAttribute
is now available forsap.m.formattedText
andsap.m.FeedListItem
in the App Designer. - Saving property values as user defaults #559
-
In the Object properties pane, clicking a property name opens its documentation. Here, it is now possible to set a personal user default value for the specific property, which is then set on newly created objects of this object type. A property which has a user default value for the current object type is now indicated with a
*
. - Send/Receive dialog falsely puts Send and Receive checkboxes into read-only mode #550
-
When using an API Factory component in the Web App Designer and you wanted to select an attached multi-model for the query parameters in the Send/Receive dialog, both checkboxes were in read-only mode. Now you can select the Send checkbox for query parameter model assignments.
setInitLoad
=online
for elements with OData binding roots brings syntax error #505-
When you assigned an OData source to an element that had the
setInitLoad
option set toonline
, user got a syntax error about a missingajax_id
which does not make sense in the context of OData. - Stateful apps #602
-
Despite the
stateful
flag being set in the application settings, the DPC session did not keep its state. This setting is working as expected now. - Stricter aggregation-based object placement
-
The aggregation-based object placement was too permissive and was made stricter and more correctly aligned in relation to object types, placement and parents
App extensions framework
- Adding multiple extensions #525
-
Having multiple extensions to the same base anchor object is now possible.
- App extensions in Web App Designer #525
-
The app extensions framework is now available also in the Web App Designer. See App Extension Framework for more details.
- Edit description of modified object #525
-
The description field of a changed or deleted object is open for edit.
- i18n binding #525
-
In the binding dialog, local i18n attributes from both base app and extension app are available for selection
- Runtime i18n #525
-
At runtime, the loaded local i18n attributes will include both base app and extension app attributes.
- Specification of relative position of extensions #525
-
It is now possible to specify the position relative to the base anchor object as
above
,inside
, orbelow
when adding an extension. - Version management #525
-
The version management for an extension app is more detailed, and will indicate changes for both the base app and extension app. Base app objects and modified objects are annotated for clarity.
Cockpit
- Cockpit System Colors #581
-
Changing the colors in the Cockpit and App Designer are now client-dependent.
- Match system colors to background image #589
-
Enabling the setting Match system colors to the background image in the Cockpit and App Designer caused an error because of a missing system color settings array.
- Mobile client Allow Users to Select Logon Language # 519
-
This option was not working properly. When a user tried to close the dialog for language selection, it threw JavaScript errors.
- New warning popup and widget #584
-
When one of the license certificates reaches 25 days before expiration date, a new widget in the Cockpit is displayed to show this information and alert users. When this timeframe is reached, a notification popup is also displayed.
- OData V4 source can only be created with proxy enabled # 571
-
OData V4 sources can only be created when the
enable Proxy
flag is enabled and the Proxy Version is set to Version 2, because otherwise the dropdown to select the OData version is hidden. When a proxy is enabled, this makes sense because only the proxy version 2 can handle OData V4 endpoints. This logic, however, does not then allow creation of OData V4 sources when no proxy is required. - Texts updated when global i18n model changed #594
-
When creating, deleting, or updating a model or attribute in the I18n Text & Translation Cockpit app, the texts are immediately refreshed and available in other tools in the Cockpit that may bind to global i18n attributes.
Cockpit Policy
- Copy policy #508
-
The function to copy a policy in the Cockpit Policy app did not work at all. This has been fixed and now works as expected.
Launchpad
- Confirmation dialog when deleting user #509
-
When deleting a user in the user selection screen, a confirmation dialog will be presented to prevent unintended deletion of user credentials.
- Customization header buttons
-
The customization header buttons have been made responsive to fit better on mobile screens.
- Endless refresh in launchpad with single sign-on #534 & #517
-
The endpoint
/apptimestamp
that is called when a user clicks on a tile that has a Neptune application assigned to it (action type Neptune Application) might not send the SAP session cookies in SSO launchpad configurations. This then can lead to an endless refresh loop on the launchpad when the user clicks on such a tile.
- Hide Show Password on login page #582
-
An option to hide the Show Password field was added to the Login Page Cockpit tool.
- Hide tile groups with no visible tiles #542
-
Section tile groups would still be visible even though they included no tiles.
- Inline header menu
-
A header menu configured to be displayed inline among the standard header controls did not render using the correct width, causing the menu items to overflow into the other header controls.
- i18n properties files are not put into cache of PWA-enabled launchpads #573
-
PWA-enabled launchpads solely relied on the browser cache for properties files to be fetched when the PWA was opened in offline mode. Now the i18n properties files are also cached with the
StaleWhileRevalidate
strategy in the Service Worker. - Launchpads configured with an external alias will not load all assets from the external alias path #574
-
When a PWA-enabled launchpad uses an external alias, all static assets should be loaded from the path of the external alias.
- Live app not loading when offline #511
-
The
AppCache
status was not set toinitialized
if the mobile client was offline when reloaded, causing live applications to not load.
- Missing translation for tile group Action #591
-
Tile groups opened from a tile click did not have translation included.
- Non-proxied OData (V2 and V4) calls do not work on PWA-enabled launchpads or mobile clients #564
-
Non-proxied OData calls (OData services that are hosted on the same SAP system) go the path prefix of
/neptune/native
in our generated app views leading to errors because the OData service was not reachable. This happened in apps using non-proxy OData services in mobile clients as well as PWA-enabled launchpads. - OData mock server not working in PWA-enabled launchpads or mobile clients #564
-
If
sap.ui.core.util.MockServer
was used in an app that was opened through a PWA-enabled launchpad or a mobile client, therootUri
property was assigned the full URL of the SAP system. That property, however, requires a relative URL. This led to a failure when using the mock server in these scenarios.
- SM02 System messages for targeted users #579
-
An option to add system messages was added to the After Menu Items enhancement spot.
Launchpad and Mobile Client configuration
- Syntax Check
-
When running the syntax check in the launchpad & mobile client config tool, there was no reaction if the syntax check did not reveal any errors. Now, a dialog informs the user that the syntax check was successful and that no syntax errors were found.
- Public ICF subnode #520
-
When using a public ICF subnode in the launchpad or mobile client, the tiles did not load properly. An error message referring to `reading 'LANGU_SAP'`was displayed in the console.
Licensing
- Special characters #504
-
If the license contained any special character coming from the company name or any description that is retrieved for the license, when applying the license, it was removed once the Cockpit refreshed.
- Offline activation with multiple environments #513
-
Clients other than the client where the license was introduced were not flagged as
offline
, triggering system dumps on the license check. - Public ICF subnode #520
-
When running a launchpad, mobile client, or standalone application while using a public ICF node, the error
404 (No API found)
or401 (ICF Subnode "name of ICF subnode" is not allowed)
occurred for/NEPTUNE/*
API’s. In this scenario, please replicate the same ICF public node under the nodeNEPTUNE/API
in the transaction ICF.
Mobile Client
- Active app title #544
-
The active app title was not cleared when the launchpad was locked.
- Azure authentication always asks for reauthentication in mobile client with PIN code #555
-
When using a mobile client with Azure authentication and a PIN Code configured, the user is prompted again to authenticate in Azure when selecting Lock / Log Out and entering the correct PIN code afterward. The expected behavior is that the user does not need to reauthenticate in Azure after entering the correct PIN Code again.
- Azure authentication fails when device-related conditional access policy is active #555
-
A mobile client that has the Azure authentication method configured might fail during logon with the error message
SAML Response: Network error. Azure Server not reachable
. This can happen when there are conditional access policies configured that relate to the device ID, even though those might only be configured with Report Only, and are not explicitly blocked. The reason for this is that the SAML authentication flow requires some intermediate requests to be performed betweensamlRequest
andsamlResponse
that are now executed during the Azure authentication mechanism. - Cookie clearing on Electron #587
-
When using Electron Mobile Client, the cookies were not cleared when the user logged out.
- CORS settings - add default scheme for iOS and Android #595
-
When using the CORS settings for mobile client in the Cockpit, the default scheme for iOS (
app
) and Android (https
) is now correctly added automatically as allowed domains. For instance, if a user addsexample.com
as a domain, andapp
as a scheme, an Android build which defaults tohttps
is allowed to access the server fromhttps://example.com
. - Disable Frontend Client Application Cache cannot be unset in mobile clients #533
-
Once a view is loaded with the option Disable Frontend Client Application Cache, either in the global System Settings or within the app itself, it is always considered to be a forced online load—even if the setting is turned off later. In addition to that, the behavior of the Disable Frontend Client Application Cache setting was enhanced. The view is always fetched online, but it is also saved into the
AppStorage
index db. When the mobile client will eventually get offline then this latest cached version of the view is used. Before this change, the tile could not open as the forced online logic was so strict that even in offline scenarios, the online fetching was the only implemented way to get the view. - Expired password or locked user (PWA and Mobile Client) #524
-
The handling of an expired password in SAP was improved in scenarios with reauthentication (PIN code or biometric). In a multi-user scenario, other users could be locked in the event of using a PIN code for a user with an expired password. For a single user, the user did not realize that the password was expired or that the user was locked when using PIN code or biometric reauthentication. This is now fixed so that the user is properly prompted to change the password or is informed about the lock status.
- MDM feature for iOS and iPadOS #385
-
For MDM-enrolled devices, it is now possible to push changes made in the Cockpit to the mobile client without the need to rebuild and redeploy the app. This is done by using the MDM feature Push App Configuration. The configuration made in the Cockpit can easily be copied and pasted into the MDM configuration and pushed to the devices from MDM (such as Microsoft Intune). See this section for more details.
- Offline login with Okta #586
-
When using Okta as authentication provider, the offline login with PIN code did not work.
Neptune DXP - Open Edition integration
- getOnline… url strings are created with ?…&sap-client=undefined #563
-
When adding a Neptune - SAP Edition application as a tile in Neptune DXP - Open Edition the
getOnline…
function calls would have usedneptune.sapClient
as a property to be attached to the URL. As the corresponding SAP CLI Azure Authentication fails when the device-related conditional agent to be called is added to the proxy authentication and not available inneptune.sapClient
, thesap-client
query parameter in the case of Neptune DXP - Open Edition scenarios is now added.
Neptune JSON parser
- New data element added to JSON parser #560
-
The JSON parser now fully supports the
ABAP_BOOLEAN
data element, ensuring it is correctly serialized astrue/false
. To help you adapt to this improvement, a utility in the/NEPTUNE/INSTALLATION_CHECK
program was included that identifies applications and API classes using this data element as an attribute. If you have implemented logic involvingABAP_BOOLEAN
, we recommend reviewing it to align with this update.
Standalone Applications
- Unexpected token ',' at sap.m.MessageBox.error #532
-
This error could occur while running standalone applications if the user was not logged in with English as the selected language, due to a missing text.
System Settings
- New notifications framework #584
-
In the System Settings app in the Cockpit, a new tab called NOTIFICATIONS was added. In this tab, you can now configure emails that receive notifications when:
-
license certificates are about to expire (25 days before expiration date)
-
Neptune DXP User usage has reached 75%, 90%, or 100%
-
Tile
- Short dump or model not loaded for combinations of i18n usage #539
-
Using an i18n binding in the tile title and/or icon, and not using the same i18n model in the subtitle led to a short dump or the potential of the required i18n model not being loaded.