Neptune DXP 23.10.0005 Changelog

April 24, 2024

Launchpad

Most Used Tiles (43-21144)

In Neptune DXP 23 the very powerful "Recently Used Documents" framework replaced "Most Used Tiles". Implementation of recently used documents is a bit more complex than expected and there is still a demand for the simple most used tiles option. So we’ve added a new widget with the most used tiles to the Neptune launchpad. You can enable the most used tiles widget on each tilegroup, or just have the user access the most used tiles from the global search where the most used tiles will show up.

Semantic Hash Data (09-21034)

Parameters from semantic hash navigation were not parsed on to the onNavigation event handlers in some scenarios.

Open Tile with Spacebar (03-20759)

The spacebar can now be used to open a focused tile.

PWA keeps prompting to be installed even though it is already installed (17-21074)

The dialog that offers an installation of the PWA-enabled Launchpad was being shown to the user, even though the PWA-enabled Launchpad has been installed already. This bug has been introduced with Neptune DXP 23.10.0000 and Neptune DXP 22.10.0010.

Rich Text Editor Buttons(21-21014)

Button configuration was not applied in applications using the Rich Text Editor UI5 control.

Rich Text Editor Theme Support

The Rich Text Editor will now adopt the applied UI5 theme in all fields and setting menus.

Close Tile (34-21168)

When calling sap.n.Shell.closeTile from within an application, the AppCache.Back function was executed after the deletion of the application view from the launchpad navigation stack, causing the navigation to go all the way back to the launchpad home screen, instead of only one step back.

Hidden Elements (40-20994)

Hidden navigation elements would be visible to certain screen readers.

Widget Compact Mode

Not all "Favorites", "Most Used", and "Recently Used" widgets would be updated when the user changed the setting for widget compact mode. In addition to better support, the compact mode has become more compact to allow more of the widget item title to be displayed.

Widget Resize

When adding or deleting an item to one of the "Most Used", "Favorites", or "Recently Used" widgets, the widget size in the launchpad will now automatically update to fit the changed widget items.

Widget Settings (43-21144)

"Most Used", "Favorites", or "Recently Used" widgets will now show all available items. In launchpads with many tiles, the number of items can be limited, so that the widgets fit nicely on the screen. In addition to the number of item configurations, it’s also possible to enable wrapping for widget title and description.

Phonegap Events (44)

The legacy Phonegap events handling events like the Android back button should not be used. Proper global event handlers should be implemented instead. But if the Phonegap event was implemented in an app, it was deleted if the app loaded another app inside a parent object.

Dynamic Tile Info(23)

Fix for usage of sap.n.Launchpad.UpdateTileInfo in apps for updating dynamic tile info.

Fiori Background Image (50-21297)

Background images was not displayed in tiles with the Fiori tile type.

Tilegroup Back Navigation (53-21336)

When navigating back from one tilegroup to another, the CSS needed to display tile layout settings was not generated.

App Designer

UI5 Docs for Deprecated Controls

UI5 docs for deprecated and recently deleted UI5 controls have been added. Developers can now check the documentation for deprecated controls to get an understanding of how the control should be replaced.

UI5 Docs Since Info

Information about when an attribute was added to a UI5 control has been added. If an app is saved & activated in one UI5 version and then later maintained in a lower UI5 version, some attributes might not be present in that version. The attribute will be marked in red and information about when the attribute was added can be found in the attribute documentation.

Aggregation-based Object Placement

If this option was enabled, applications with deprecated controls would break the designer.

Favorite Handling (21017)

Favorites are now updated live, so that the newly added or updated favorites will be placed correctly in the object tree "Add" context menu. If no favorites are present, a helper icon is displayed to notify new users about the possibility to add UI5 controls to the favorite list.

Library tree locked on searched controls (05-21029)

Duplicating the tab of the Web App Designer while a filter was in place in the library tree would cause the library tree to only display the controls matching that filter, even after removing the search term.

Global Ajax Property (24-21110)

The parameter "global" can now be maintained on the Ajax control in the App Designer.

Ajax event beforeSend added

The "beforeSend" event is available on the Ajax and RestAPI controls in the App Designer.

Binding for sap.m.Select is wrong (26-21111)

There has been a bug introduced in Neptune DXP 23.10.0000 that led to wrong bindings for a sap.m.Select when using the "Use Application Class" Model Source in the Neptune Web App Designer.

Application flow update when switching app (29-21119)

After having opened the application flow, when loading a different app in the App Designer, the application flow did not update to reflect the correct data.

Delete Controls (41-21195)

A lot of deprecated UI5 controls, like controls from the sap.ui.commons library, were removed from the App Designer in Neptune DXP 23. Existing applications with those deleted controls should still work though. A few of the deprecated controls were not added to the container migration that also took place in Neptune DXP 23. The result was that the controls would not be rendered in the runtime applications.

New Formatter JavaScript Code can only be 255 characters long in Web App Designer(32-21136)

With the new code editor (Ace → Monaco) the default EndOfLine sign is now a carriage return linefeed instead of a linefeed only. When creating a new formatter, the source code template that will be inserted automatically in the Web App Designer was adding linefeeds only. That misled the Monaco Editor instance to now use linefeeds as the EndOfLine character instead of the carriage return linefeed that is expected by the Neptune framework. Existing formatter source code is not affected from that problem. It will show up in tables /NEPTUNE/EVTSCR and /NEPTUNE/_EVTSCR as one line instead of multiple lines per line break.

Dump in case of deleted MultiModel reference

If you are using a MultiModel in an Attribute Binding and deleted the MultiModel afterward, you would have gotten a dump during runtime "App Object XXXXX does not exist in App YYYYYY". In Design Time (SAP Gui / Web App Designer), you would also have gotten the same dump when trying to open the binding pop-up for the now invalid attribute binding. First, you would have seen a dialog with the message "App Object XXXXX does not exist in App YYYYYY" and then the ST22 Dump would have happened.

/NEPTUNE/CL_NAD_SERVER→API_MESSAGE_CREATE will bring the message in JSONH format to the front end (46-21234)

When using the /neptune/cl_nad_server→api_message_create method to bring messages to the front end we serialized the message as JSONH. When only using a neptune.MessageArea object in the app to handle the messages there are no issues. However, if you were accessing the messages with property data.customerMessage then the payload might have been different compared to the response from Neptune DXP SAP Edition Version 6. We now return a plain JSON for the messages so the payload type is aligned with the old approach.

Import From File

When importing from a file, the enter event handler on the application ID input field would not trigger the import event. Instead, the create event would be triggered creating an empty app.

GUI App Designer model data formatting

Some formatting settings made in the data binding formatter dialog in the GUI App Designer was lost when saving the app in the Web App Designer.

GUI App Designer

Wrong default values when inserting fields through the wizard (49-21263)

When inserting fields using the wizard for tables or simple forms, some properties would have the wrong default values if a deprecated property existed in the object.

Global Script in SAP GUI App Designer Dissapears after activation (48-21260)

When opening the "Global Script" in a Neptune App within the SAP GUI App designer, the content disappeared after activating the app. When reopening the app, the content would come back again.

Applications and MIME folders not added to transport request on deletion (56-21344)

In Neptune DXP 23, a bug was introduced that if an application was in a package that contained the letter "T", when deleting the application, the table entries would not be added to the deletion transport request. This behaviour should only happen when the application is included in a temporary package, meaning packages starting with "$" or "T". Additionally, and independent of the package that it was assigned, during the deletion process of the application, when deleting the MIME objects relevant for that application, all files would be deleted and added to the transport request, except for the folders inside the main folder, usually this would mean the css folder.

API Factory

API Factory calls fail in Swagger UI

With version 23.10.0002 there has been a bug introduced that might have led to API Factory calls perform HTTP scheme calls instead of HTTPS.

Mobile Client

iOS and UI5 version 1.71 (06)

For mobile clients using UI5 version 1.71, it was not possible to log in on an iPad or iPhone. The user would always be returned to the pin code input screen due to a failed attempt to get the UI5 version info.

Check neptune.layout.userSettings (11-20983,21154)

In some circumstances, the neptune.layout.userSettings will not be defined when running a mobile client. This caused an error in the device ready function.

Mobile Client Debug Format

Line breaks and code indentation will now be added when building a mobile client, making the generated code easier to debug.

Editor Script Sort (14-21068)

Script code for custom XML, custom header, and customer login will now be sorted by sequence number, ensuring the correct display of the scripts in the Neptune Cockpit Mobile Client Tool.

Pin Code on Very Small Devices (20-21088)

On the very smallest mobile devices, the pin code screen has been compacted even more to make room for all information.

Custom Login Script generated with additional new lines(32-21155)

When enabling the "Custom Login" in a Mobile Client authentication, you would get some template Javascript code to get you started easily. This code was added with a linefeed instead of a carriage return linefeed, which is the default Monaco Editor EndOfLine character and expected by the Neptune framework. This leads to additional empty lines between each line break. This issue is closely related to #21136.

Config XML not deleted (52-21318)

If a mobile client that had content in the config XML tab was deleted, the content of the config XML was not deleted. If then a new mobile client was created with the same ID as the previously deleted mobile client, it would fetch the content of the old config XML.

Config XML editor EndOfLine (52-21318)

In the config XML tab, the code editor was assuming the EndOfLine of the pasted code, meaning that it could assume as EndOfLine the "newLine" or "linefeed". This would cause when saving, the code would be truncated at 255 characters. This issue would only occur when editing for the first time the config XML. Now the default EndOfLine sign is defined as a carriage return linefeed in the editor itself. Meaning, the code will no longer be cut at 255 characters long.

Cockpit

Custom Login Script Language (31-21155)

The language in the Monaco Editor for the custom login script in the Cockpit Mobile Client Tool was not set to JavaScript, causing formatting to not work.

Recently Used Artifacts

When the "Hide tilegroup from all menus" was set in the tilegroup configuration, the setting for "Include recently used artifacts" was not visible.

General

FileUploader issue in Frontend/Backend setup (17020 & 20959)

When using the FileUploader control in an app with RFC destination specified, the file upload fails with a dump (CALL_FUNCTION_RECEIVE_ERROR) in the backend destination system. This was already fixed in 21.10.0007 but not in Neptune DXP 23.

JSON Stringify (08-21032)

The function neptune.JSON.stringify did not handle an array of simple numbers.

/NEPTUNE/REQUEST_LOCKING enhancements (26-21127)

The function module /NEPTUNE/REQUEST_LOCKING that can be used to perform SAP standard locks in a stateless scenario has been enhanced. A new Exporting-Parameter EXISTING_LOCK has been introduced that would return all information related to an existing lock that previously has been done with the /NEPTUNE/REQUEST_LOCKING function module in a structured way. The lock message could have been truncated, if the lock message together with the message variables had been too long. The lock message is now put into a string field, so the full message will be preserved.

AppSync Dialog Translations (21287)

The Labels of the AppSync Dialog are now translatable. Before the first use of the AppSync Object, add the missing translation with following function AppSync.setTranslation(languageKey, translatedText)

Example:

    AppSync.setTranslation("D", {
        "title": "Synchronisieren",
        "textSelect": "Selektieren",
        "textUpdate": "Aktualisieren",
        "textReceive": "Empfangen",
        "textRecords": "Einträge",
        "messageNoServer": "Keine Antwort vom Server"
    })

SQLite/WebSQL

With the deprecation of WebSQL we now have SQLite via WASM as the new solution. The current approach is to only use the OPFS filesystem to persist the data. This introduces new HTTP Response Header Fields (Cross-Origin-Opener-Policy & Cross-Origin-Embedder-Policy). These might lead to problems when you want to embed an iFrame with a different origin. In addition to OPFS, there are further storage options that we introduce with this new patch:

  • OPFS Shared Access Handle (SAH)

  • Memory in the Main Thread

  • Memory in the Worker Thread

You can learn more about the new Storage Options in our blog https://community.neptune-software.com/topics/planet-8/blogs/chrome-removes-websql below section SQLite types (storage options)

Housekeeping

Extended time for logs (32-21160)

We have added the option on the housekeeping tools to keep both user logs and mobile application logs up to 3 years.

abapGit Integration

Automatic filling of table /NEPTUNE/TADIR (37-21156)

We have removed the automatic filling of table /NEPTUNE/TADIR from the /NEPTUNE/INSTALLATION_CHECK program. The program needs to be executed at the end of the installation of Neptune DXP. Therefore, in every system that is upgraded, entries for applications and APIs that already have a package assigned would be created. Since these artifacts are transportable, this would create double entries in the forward systems. For the artifacts to be available in abapGit with our extension, an entry referencing them needs to be present in the /NEPTUNE/TADIR table. Meaning, if you are upgrading from Neptune DXP 22 to Neptune DXP 23 from this point forward, you need to save/activate these artifacts after the upgrade to create a corresponding entry in the /NEPTUNE/TADIR table. This way, these artifacts will be available in abapGit.

OAuth authentication

Clear Cookies (45-21229)

When logging in and off a Launchpad or Mobile Client with OAuth authentication, all cookies were being deleted. It has come to our attention that this may cause issues when other web applications might run on the same system. We have now implemented an enhancement spot in the method /NEPTUNE/CL_OAUTH_LOGOFF→CLEAR_COOKIES, where you can now implement custom code to decide what cookies to delete/keep. The enhancement spot name is: /NEPTUNE/ES_OAUTH_LOGOFF

Custom UI5 Controls

Custom UI5 controls show previously opened sources (47-21259)

The code in the tabs "Definition" and "Stylesheet" would not be updated when changing between Custom UI5 Controls.