Neptune DXP 23.10.0002 Changelog

January 31, 2024

AppCache Load

Check View (20696)

When Neptune applications are running in the Neptune Launchpad, the applications are running as Javascript views. AppCache.Load can be used to load a Neptune application into another application, also in this case the application is loaded into a JS view. These application views are cached both in the ABAP backend and in the Javascript frontend.
The Neptune launchpad has always checked the change date for each cached application and reloaded the changed applications into the cache. When application views are loaded using AppCache.Load, Neptune will now perform an online Ajax call to get the change timestamp from the server. If the timestamp does not match the timestamp in the cached view, the application view is requested from the server.
No matter how you update your applications, if it’s done directly using save/activate in the App Designer, or if the changes are transported between systems, Neptune will detect changes and make sure that the latest app version is used.

Mobile Client

Inactivity Timeout (17-20630)

The inactivity timeout has been tweaked to begin on the last user activity, instead of when the client is suspended. The recent development did focus on PWA functionality, causing certain configurations to not trigger the timeout on dedicated mobile clients.

Mobile Build ZIP files (22-20670)

The first time a mobile client is built in the Neptune Cockpit Mobile Client build service, a ZIP file including the UI5 source files will be stored in the ABAP server. All the following builds will read this ZIP file, resulting in a greatly reduced build time. The storage of the ZIP file was initially done in the SAP MIME repository, but some system has a change restriction on the MIME repository, resulting in an error when storing the ZIP file. Now, the ZIP file is stored as a base64 file in a dedicated Neptune table. Reading and writing speed is about the same or maybe even faster.

iPhone Screen Height

Newer iOS versions do not play well with the Cordova StatusBar plugin, the soft-key-footer overlays some of the Neptune Mobile Client canvas. The StatusBar is needed on Android to control the device header, but not on iOS. So the StatusBar plugin is no longer added to iOS Mobile Clients. A side effect is that you will need to build dedicated Android and iOS Mobile Clients.
We’ve seen the same happen to other non-essential plugins, so it makes sense to split Mobile Client builds into dedicated platforms. This should not be any big hassle because a Mobile Client build only takes about ~10 seconds.

AppSync Framework can Fail(2-20351)

In mobile clients that use the Cordova SQLite plugin, you would get an error when using the AppSync framework. This is related to the new implementation we did for the SQLite implementation (deprecation of WebSQL). As we introduced these Promises the Sqlite Plugin would have finished transactions in an AppSync synchronization which would lead to the error.

AppSync Framework might stop with syntax error(11-20468)

In mobile clients that use the Cordova SQLite plugin you might have gotten an error "syntax error or other error code: 1 message: near ")".

Build Mime Export (6-20547)

At the end of the Mobile Client build process, the enhancement spot "Mobile Build Mime Export" is called. In this enhancement spot, the final ZIP file can be manipulated. 2 new parameters have been added to the function module interface, one that is set to ABAP_TRUE if the developer has ticked off for Android build and one that is set to ABAP_TRUE if the developer has ticked off for iOS build.

Pin code Input (20773)

It is now displayed how many digits are required when defining the pin code. Bugfixes: Verification that the repeated pin code matches the first entered pin code. Deleting and re-entering digits of a pin code would also lead to errors such as seemingly allowing a pin code definition that was too short according to the requirements, and the pin code would still contain the deleted digit behind the scenes. These changes also apply to PWA-enabled launchpads.

iOS Pin code Input (20628)

The liveChange event on an input field would fire on iOS, even though the max amount of numbers was entered. An extra check has been added in the pin code liveChange event handlers, to handle the pin code entry on iOS.

Change Password (20761)

If password change for a user is not permitted by the system (i.e. the password has already been changed the same day), there was no informative error message about this. The error message was "Client, name, or password is not correct; log on again". The login flow has now been corrected to be the same as in SAP standard (for instance SAP GUI), where the user receives an informative message telling that the password cannot be changed, and the reason for this. After receiving this message, the user is already authenticated and does not have to enter credentials again. This change also applies to PWA-enabled launchpads.

Launchpad

Launchpad Menu Generation (4-20527)

In some scenarios with hidden sections (sub tilegroups) in the launchpad, the Javascript code would dump due to a missing screen (tilegroup).

Launchpad Section Navigation (5-20351)

The launchpad back button would not be displayed when a tile that opens a new section (action type "tilegroup") was clicked.

Hide Header

The drag-down functionality to bring back a hidden Launchpad header would not work on mobile devices.

Sidepanel Draggable (8-20551)

If tile customization is disabled in the launchpad configuration, jQuery UI Draggable is not loaded. The Neptune Sidepanel uses the jQuery UI Draggable framework, so the sidepanel load would fail in this scenario.

Semantic Navigation (20561)

If a tile has the action to open a screen, the semantic object would not be updated. The result was that the URL hash didn’t change making further navigation fail.

Section Padding

The padding around sections has been adjusted to match the margin around tiles.

Hash navigation lost after login through /webapp icf node (13-20391)

When login into a launchpad with sap username and password via the /neptune/webapp icf node you could have lost the hash navigation value (semantic navigation) after the authentication is done.

Tile Icon UI5 1.120

If the launchpad runs on UI5 1.120, the card header avatar would show a default icon, even though no icon was configured in the tile settings.

Dynamic Tile Icon Placement (20652)

A check for the existence of an icon placement configuration was missing in the dynamic tile update function.

SAP User Default on Neptune DXP - Open Edition (20709)

The neptune.Utils.userDefault object is implemented on both the Neptune DXP - SAP Edition and Neptune DXP - Open Edition. When you run an SAP App view in an Neptune DXP - Open Edition launchpad, the neptune.Utils.userDefault object would be overwritten by the Neptune DXP - SAP Edition neptune.Utils.userDefault object, with potential network errors. Now the SAP App View will no longer overwrite the Neptune DXP - Open Edition user default object, so any storing of user defaults will be done correctly on the Neptune DXP - Open Edition system using the logged on Neptune DXP - Open Edition user.

FileUploader Error (20729)

When running the Neptune Launchpad with UI5 1.71, the user image uploader would throw an error due to the usage of an unknown UI5 attribute added in UI5 1.102.

FlattenedDataset on iOS (32-20734)

Running applications that use the Viz library that includes the sap/viz/ui5/data/FlattenedDataset module would fail on iOS, because the FlattenedDataset module was missing in the require statement in the view creation process in AppCache.initView.

Help From Embedded App

Documentation added in the Neptune Cockpit Documentation tool is only meant to be used from an app running in a tile in the Neptune Launchpad. Enabling documentation in the tile configuration will open the application documentation in the Neptune Launchpad Side Panel. It’s not possible to turn on documentation for applications running embedded inside another application from the tile configuration.
To overcome this limitation, we’ve added support for custom application ID in the Neptune Documentation app, so that you can open the launchpad side panel and supply the application ID for the documentation that should be displayed. Like this:

sap.n.Documentation.openAppDoc(localAppID, {
    tabTitle: 'Embedded',
});
Syntax check in Launchpad (35-20722)

If any application in the launchpad contained a custom UI5 control, the popup for the syntax check would always be triggered. This has now been fixed.

App Designer

GridList Layout (1)

The customLayout aggregation of the UI5 control sap.f.GridList accepts any subclass of the type sap.ui.layout.cssgrid.GridLayoutBase. These CSSGrid layouts were left out in the runtime generation of the GridList causing the framework to believe that the layout was added as the items aggregation.

Search (12-20617)

If you are searching special string combinations in the Neptune Web App Designer eg JSON.parse(JSON.stringify( there would be a syntax error about an Invalid Regular expression and the search would not work.

"Wizard → Insert Fields" is empty (14-20619)

When having a binding assigned to a parent object in the application hierarchy and then having a child object that supports the Wizard (sap.ui.layout.form.SimpleForm or sap.m.Table) but this child object itself doesn’t have a binding the Wizard dialog didn’t show any fields. What should happen is the fields from the parents' object binding should be shown in the dialog. This problem existed both the the SAP GUI App Designer as well as in the Web App Designer.

Version Management (16-20632)

The diff tool in the Version Management application, has been updated to use the Monaco editor. The version management app has also been updated to use the new Neptune App Designer icon set.

Radio Button Group Aggregation

The buttons aggregation for the sap.m.RadioButtonGroup has been added to the App Designer and support for the aggregation has been added to the Neptune Server Class.

Enable Aggregation-based Object Placement (03-20522)

Corrected "sap.ui.core.HTML" aggregations.

Carousel Page Aggregation (20690)

Support for the sap.m.Carousel page aggregation has been added so that you can add content dynamically to the carousel based on server content.

Import from file (20700)

It was possible to create an app from a file while no file was selected.

Transport request for temporary packages (20700)

While creating an app, if a temporary package other than '$TMP' was selected, a prompt asking for a transport request would show up. Now all temporary packages (starting with '$' or 'T') will not require a transport request.

Add UI5 Control

It’s now possible to add a UI5 control from the context menu.

23.10.0002 add ui5 control
Page Header Content Aggregation

Support for the sap.m.Page headerContent aggregation has been added. It acts basically the same way as controls added to the page header (sap.m.Bar) contentRight aggregation.

API Designer

Search (21-20100)

When using an XSLT Transformation and switching on compression via the compression flag, then deep nested structures and tables were not removed if they were empty (compression did only work on field level). This is a different behavior than compression without XSLT Transformations as there the nested empty arrays or objects wouldn’t be included. We now aligned the behavior by also compressing deep nested structures and tables in the case of XSLT compression.

API Factory

Open API Server URLs always http scheme

When you were opening the Open API Specification for an API Factory Class the Server URL inside of it was always constructed with the http scheme. This now is changed to consider the scheme that the current request is made from.

GUI App Designer

Default code editor (23-20693)

The default code editor in the GUI Application Designer, has now been changed to Monaco. This will require your SAP GUI Browser Control to be Edge.
However, if you are still using Microsoft Internet Explorer (not supported anymore) as your default browser control on SAP GUI, the editor will be automatically switched to Ace editor.
If you need to use Ace editor, a new transaction /NEPTUNE/NAD_ACE has been created and will use Ace as the code editor.
Using Internet Explorer as your Browser Control will make you lose access to the following features:

  • Icon Explorer

  • Version Management

  • Run in Designer - Preview

  • Show Data Flow

  • Naia

  • Typescript files

How to change SAP GUI Browser Control:

23.10.0002 control settings browser control
Click to navigate (15-20610)

While using Edge as the Browser control of SAP GUI, for some versions of SAP GUI, when running the preview of the app in the designer, the click to navigate in the app tree would not work This has now been fixed.

Monaco Editor HTML code (20-20669)

Corrected an issue that prevented Monaco Editor from loading HTML code into HTML files.

Click to navigate (26)

When switching tabs in the SAP GUI App Designer (Monaco Editor) the scroll position and highlighted text have not been remembered and you were always put to the top of the Monaco code editor when opening a tab. Now the whole state of an opened script editor is remembered and if you come back to a previously opened tab you will see it in the same state you "left" it.

Icon Explorer

The App Designer Icon Explorer has been updated with support for SAP TNT & Business Suite Icons and icon tag search. Instead of bringing the new functionality to all the other places where it’s possible to select or view a UI5 Icon, a unique standalone Icon Explorer has been created. The Neptune Icon Framework exposes functionality to let you use this Icon Explorer in your very own applications. This piece of code will open the Icon Explorer in a dialog. Add a callback to handle the selected icon URI. If no call is provided, the icon URI will be added to the clipboard when the user selects an icon.

neptune.IconExplorer.open({
    callback: (icon) {
        console.log(icon);
    }
});

You can also embed the Icon Explorer into your applications by providing a parent object in the IconExplorer open function.

neptune.IconExplorer.open({
    parentObject: myFlexbox,
    callback: (icon) {
        console.log(icon);
    }
});

All the SAP and FontAwesome icons are grouped in logical collections. In addition, each icon will be searchable by multiple tags across the groups.

23.10.0002 icon explorer

Cockpit Code Editors

All Ace code editors used in Neptune Cockpit Tools, have been replaced with the Monaco Editor.

FontAwesome

FontAwesome Updated to v.6.5.1

In Neptune DXP, you can use the free FontAwesome icons together with standard UI5 icons. FontAwesome in Neptune DXP has been updated to version 6.5.1, bringing you a lot of new icons to choose from in the Neptune Icon Explorer.

FontAwesome 5 Support

In FontAwesome v.6, some icon names have changed. But don’t worry, the old FontAwesome 5 files will still load, the old FontAwesome font family will still be available and all your existing icon configurations will still work. If you are not using any of the old FontAwesome 5 icons, you can disable FontAwesome 5 in the Neptune Cockpit "Settings" tool. This will reduce the network load a little. Font Awesome 5 will be disabled by default in new Neptune installations.

Installation Check

Apps With Deleted Controls (20635)

A lot of very old UI5 libraries have been deleted. Finding applications that use any of these deleted controls could be difficult. The SE38 installation check report will now scan all Neptune applications for the usage of deleted UI5 controls and present an error message in the report result if any apps with deleted controls were found. In the Cockpit, details can be found in the new "Apps With Deleted Controls" tool.

Installed UI5 versions (20663)

This report will now show what UI5 versions are locally installed on the system.

Table Index

/NEPTUNE/OBJ_AT (20614)

When running a launchpad or mobile client, configuration data is selected from the ABAP backend. When the system contains a lot of Neptune applications, a select from /NEPTUNE/OBJ_AT would take a lot of time the first time after any app was updated. An index for the selected fields has been added to table /NEPTUNE/OBJ_AT.

Extension applications

Extension of sap.ui.table.Column (33-20721)

When extending object sap.ui.table.Column an error saying "No child for table column" would always be triggered. This has now been corrected.