Neptune DXP - SAP Edition 24.11.0 Changelog

February 28, 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.

Licensing

License fields length increase

If you were already running Neptune DXP 24 before installing this patch, after upgrading to this patch you’ll need to re-assign your license.

We recommend removing all licenses from your system before upgrading. If this is not the case, you will need to go to our Neptune DXP Portal, in the Account Assignment and unassign the environment.

This happens because there was a need to increase the length of some fields that are required for the license. Due to this change, the license will not be able to identify that your system already contains a license.

License certificates

Due to connection issues in some customer scenarios, the certificates for the license, now need to be imported in transaction STRUST in the folder *SSL Client (Anonymous)*.

Please check the post-installation activities in the latest Installation Guide in the Neptune DXP Portal, on the on how to achieve this.

Message for days without heartbeat

The message about a system exceeding the allowed time without a heartbeat was cut short due to a bug. Now, the message is presented in its full length.

New optional setting for license heartbeat (12-22456)

If your SAP System can only reach public internet via a proxy server and that proxy requires authentication, you can now create an RFC connection in transaction SM59 under the HTTP Connection to External Server.

  • In the Technical Settings tab, the Target Host must be set to licensing.neptune-software.com.

  • Then you can set the authentication in the HTTP Proxy Options.

  • In the Logon & Security tab, make sure that SSL is set to active and SSL Certificate is set to ANONYM SSL CLIENT

  • The name of this RFC connection can then be set in the Cockpit → System Settings → License → Proxy.

New program for license heartbeat (12-22456)

We now make available the program /NEPTUNE/HEARTBEAT. We strongly recommend using this program to set up a job that runs daily in order to ensure that the license heartbeat is executed. Since the heartbeat is only relevant once per day, we recommend scheduling this job during off-peak hours, such as early in the morning, between 00:00 and 01:00 AM. In this program, if needed, you can save a variant with the RFC connection as previously described. If the selection-screen-parameter is left empty, it will execute the heartbeat using the normal proxy server and port that are saved in Cockpit → System Settings → General → Proxy Server.

User cleanup

The automatic user cleanup for users that have not logged in using Neptune DXP in the last 120 days or for users that have reached their expiry date, or have been deleted in SAP, will now happen every day. A description was added in the Licensed Users tool in the Cockpit for the expired users.

AppCache

Semantic action in AppCache.Load

In Neptune DXP - SAP Edition 24, all navigation in the launchpad is based on semantic hash objects. Loading an application using AppCache.Load will not automatically create a change in hash navigation. That can be an issue if the launchpad implementation relies on hash navigation, like using AppCache.Back. Neptune recommends that the param load="nav" is used. This will create a proper hash navigation and an accompanying menu entry with the active application that can be used to navigate to the open application at any time. In case you just want a specific hash navigation we have now introduced the parameter semantic action to the AppCache.Load function. Setting semantic action will create a hash navigation using the following template #neptunenavigation-YOUR_APP_yoursemanticaction.

AppCache.Load("YOUR_APP" {
  semantic: "yoursemanticaction"
});

Launchpad

Launchpad Sidebar

The Neptune Multi Column Launchpad Layout now supports sidebars for section groups (sub-tile groups). An additional navigation column has been added to the Neptune Multi Column Launchpad Layout, so that a true multidimensional 3-column layout can be created in the Neptune Launchpad.

Tile Group Layout

Some settings were not applied correctly for section groups (sub-tile groups).

Element Query

The Neptune Element Query framework can now handle column changes all the way down to XXSmall and XXXSmall, making it possible to handle 1 and 2 cell columns in the Neptune Launchpad. The smallest column sizes can be very useful when implementing the new navbar and sidebar columns in the Neptune Multi Column Launchpad Layout.

Tile Group Message

It’s now possible to add a message in the Neptune Cockpit tile group configuration that will be shown in the Neptune Launchpad in the tile group header.

Semantic Objects

Custom hash navigation can now be used in tiles occurring multiple times in a launchpad.

Tiles in Launchpad Search cannot be opened if they are added as a Tile Group Link (22519)

When a user wants to open a tile via the launchpad search on top within a launchpad and that tile is added via a tile group that is added as an action type "Tile Group" from another tile (nested tile group that is added as a tile group link) then this tile was not opened when clicking on the corresponding search result item.

User locked when entering incorrect credentials in PWA (07-22595)

When a user would enter incorrect credentials on the logon screen of a PWA-enabled launchpad, a pop-up prompt would show asking for username and password. Even if the correct credentials were entered in this pop-up, it would count as an incorrect password attempt, because the credentials entered in the first attempt would still be considered. Due to this, users could get locked even when entering correct credentials. This has now been changed, so there is no pop-up and further attempts are handled properly.

Gateway - Front end/Back end split RFC scenario and UI5 versions (08-22236)

As of version 24.10.0002 it is no longer required to install the SAPUI5 versions on the back-end server when Neptune is used in a front end/back end split scenario.

Splash screen image (22779)

Configured images did not render correctly in splash screens.

Cockpit

Tile Layout Hierarchy

The hierarchy list was not populated with the correct entries.

Launchpad Syntax Check

The launchpad syntax check dialog will now include links to artifacts with the found syntax error. Syntax check has been enhanced to include:

  • Check for identical semantic navigation objects in tiles

Error when opening an app with RFC destination (06-22610)

Opening an app with an RFC destination (application class in a different system), could lead to a runtime error in the back-end system. In the browser one would see error message "AppCache.getView: 200 - OK", while ST22 in the back end would show:

Runtime Errors         OBJECTS_OBJREF_NOT_ASSIGNED
ABAP Program           /NEPTUNE/CL_NAD_URL_HANDLER===CP
Open Dialog Semantic Object (22758)

A tile configured to be opened in a dialog would set a semantic object. This would mess up the launchpad navigation.

Cockpit

Tile Layout Hierarchy

The hierarchy list was not populated with the correct entries.

App Designer

Package change verifications (2)

It is no longer allowed to manually enter a package, instead the package selection dialog must be used.

It is no longer allowed to change from a non-local package to a local package.

When changing from a local package to a non-local package, a confirmation dialog is displayed to inform about not being allowed to change back.

Extension Applications Escape texts (04-22554)

If properties in an app would have text in quotes, such as "My Text" during creation and extension of this application, this text would cause the application to break because the text quotes would not be escaped. This has now been fixed.

Responsive Popover

The association initialFocus has been added to the UI5 control sap.m.ResponsivePopover.

Import App that has a RFC destination (22807)

When importing and saving an app that has an RFC destination, the Web App Designer would only open the app, if the RFC destination as well exists in the system the app was imported to. This has now been fixed: the app can be opened, but not activated.

I18n Text & Translation

Package change verifications (2)

It is no longer allowed to change from a non-local package to a local package.

When changing from a local package to a non-local package, a confirmation dialog is displayed to inform about not being allowed to change back.

API Designer

Package change verifications (2)

It is no longer allowed to change from a non-local package to a local package.

When changing from a local package to a non-local package, a confirmation dialog is displayed to inform about not being allowed to change back.

Influence API Designer HTTP Response Codes in Swagger/OpenAPI (05-22611)

When defining an API endpoint within the API Designer and the corresponding method is using exception classes, you are able to influence the http status codes that should be returned when the exception is raised during run-time of the API by implementing interface /NEPTUNE/IF_HTTP_STATUS_CODE~GET_STATUS in the exception class. However, there was no way to reflect this run-time behavior within the OpenAPI 3.0 specification at design-time. We now introduced a new method /NEPTUNE/IF_HTTP_STATUS_CODE~ENHANCE_EXCEPTION that allows you to set the status code of the exception that is represented in the Swagger specification.

Example:

method /neptune/if_http_status_code~enhance_exception.
" This would show as status code 400 instead of the default 500 Internal Server Error
      io_exception->set_http_status_code( iv_status_code = '400' ).
endmethod.
"Copy to Clipboard" button for Swagger Definition in API Designer fails with JavaScript error (11-22712)

When pressing the button "Copy to Clipboard" in the dialog of the Swagger Definition in the API Designer, a JavaScript error would occur.

SAP UI5 Themes

Package change verifications (2)

It is no longer allowed to change from a non-local package to a local package.

When changing from a local package to a non-local package, a confirmation dialog is displayed to inform about not being allowed to change back.

Packages Overview

Package change verifications (2)

It is no longer allowed to change transportable artifacts (App, I18n Text & Translation, API and SAP UI5 Theme) from a non-local package to a local package.

When changing translatable artifacts from a local package to a non-local package, a confirmation dialog is displayed to inform about not being allowed to change back.

GUI Designer

Package change verifications (2)

When manually entering a package, a verification is added to ensure that the package is valid.

It is no longer allowed to change from a non-local package to a local package.
When changing from a local package to a non-local package, a confirmation dialog is displayed to inform about not being allowed to change back.

abapGit Extension

These changes are valid from abapGit Extension version 1.0.4

Artifacts not added to transport on deletion

New parameter added to the method DELETE_ARTIFACT of interface /NEPTUNE/IF_ARTIFACT_TYPE. With this, artifacts that are transportable will now be added to the transport request when being deleted.

New method to exclude MIME files from the list

A new method /NEPTUNE/CL_ABAPGIT_USER_EXIT⇒DELETE_TADIR is now available to be able to exclude the MIME files related to applications. This method can be added to the abapGit exit CHANGE_TADIR. Full documentation on how to implement the exit here.

Here is an example:

// Change supported object types to recognize Neptune DXP Artifacts
  method zif_abapgit_exit~change_tadir.

    data: lt_neptune_tadir type /neptune/cl_abapgit_user_exit=>ty_tadir_tt,
          ls_neptune_tadir like line of lt_neptune_tadir,
          ls_options       type /neptune/cl_abapgit_user_exit=>ty_options.

    data ls_tadir like line of ct_tadir.

    lt_neptune_tadir = /neptune/cl_abapgit_user_exit=>change_tadir( iv_package = iv_package
                                                                    iv_ignore_subpackages = iv_ignore_subpackages ).

    loop at lt_neptune_tadir into ls_neptune_tadir.
      move-corresponding ls_neptune_tadir to ls_tadir.
      append ls_tadir to ct_tadir.
    endloop.

    ls_options-del_nep_app_mimes = abap_true.

    /neptune/cl_abapgit_user_exit=>delete_tadir(
      exporting
        is_options = ls_options
      changing
        ct_tadir   = ct_tadir ).

  endmethod.

Neptune Sort Framework

Sort on Additional Render

If the Neptune sorter is enabled on a sap.m.Table, the table is sorted on the first rendering. If the table used in a dialog or similar UI control that will render the table over and over again, the sorting was not called. If the data had changed, the sorting could potentially be incorrect.

Mobile Client

Mobile Client Name shows i18n binding instead of the real name

With Neptune DXP - SAP Edition 24 a mobile client name can have an i18n binding assigned to be translatable. When creating a mobile client ZIP for a mobile client that has such an i18n binding assigned to the name, we now resolve that to the default attribute value to be used in Cordova and MBS.

Default Logo #469

The default Neptune logo and branding image have been updated to new format.

App CSS and Manifest

Use of MIME repository for app CSS and app manifest discontinued

The files app.css and manifest.appcache are no longer created, updated, or served from the MIME repository (path /neptue/public/application). Instead, they are generated from the activated app data upon request.

All existing such files in the MIME repository are now obsolete from a standard Neptune perspective, but will not be deleted automatically. If you have no custom usage for these files outside of standard Neptune, you can safely remove them manually, or use the provided report named /NEPTUNE/DELETE_APP_MIMES to help with this. This report will identify the following files for each app:

/neptune/public/application/app_name (folder)

/neptune/public/application/app_name/css (folder)

/neptune/public/application/app_name/css/app.css (file)

/neptune/public/application/app_name/manifest.appcache (file)

/neptune/public/application/app_name/js (folder)

Should there exist any other file or folder inside the app_name folder tree, the report will notify you of this and no files will be deleted for that app. After verifying the result list, clicking the 'Delete MIME files' button will delete files and folders where the status indicates that MIME files and folders will be deleted. MIMEs assigned to non-local packages will be added to a transport.

There is no change in maintaining the corresponding data in the App Designer. This change will not affect the loading of other files placed in the MIME repository, either by you or by Neptune.

SAP Standard Fiori Launchpad

Neptune Apps cannot be opened in SAP Standard Fiori Launchpad (09-22679 & 22689)

With Neptune DXP - SAP Edition 24.10.0000 there was a bug introduced that led to an error when opening a Neptune App from an SAP Standard Fiori Launchpad.