DXP21.10.0004 Changelog

November 23, 2021

Single language in mobile clients. ModelData operations with empty search strings. Disable Application Cache. Disable Backend Server Cache. Disable Frontend Client Cache. Lock handler. Offline logon. CSRF protection in mobile clients. OData Where-used tab. Transport API Designer. ProcessFlow not working after upgrade. Launchpad Custom Start App. neptune.ValueHelpField changing wrong model. RTL language in mobile clients. Language text in dropdown list in desktop logon screen. Mobile client build status colors. Mobile client file upload cleanup. Using different splash screens. Syntax check for duplicated binding in AJAX send. Neptune Belize Layout. Strange characters in Launchpad description.

Details

Single language in mobile clients (16551)

In DXP21, the language is no longer set when bootstrapping UI5. In mobile clients the replacement call to sap.ui.getCore().getConfiguration().setLanguage() was not performed when only one language is set in the mobile client configuration.

ModelData operations with empty search strings (16546, 16554)

ModelData operations like Find, FindFirst and Delete would return and empty result if one or more of the search parameters would be an empty string.

Disable Application Cache

It is now possible to disable caching of Neptune application more targeted. Until now you only had the option to have all application cached on the ABAP server, or to disable caching all together. The existing method of disabling cache was only targeting caching on the ABAP server, applications would still be cached in the frontend client.

Disable Backend Server Cache

As before you can disable backend server caching of Neptune applications globally in the Neptune cockpit system service. Disable backend server caching of Neptune applications on launchpad/mobile client level. You’ll find the settings In the Neptune cockpit launchpad and mobile client service under the general settings tab. Disable backend server caching of a single Neptune application at design time in the application settings. Disable backend server caching of a single Neptune application at runtime in the Neptune Cockpit Application Management Service.

Disable Frontend Client Cache

The first time a Neptune application is loaded in a Neptune launchpad or mobile client, the application JS view is stored on the client, so that it can be served very fast the next time. You can now also disable the frontend client caching of Neptune applications. Like for the backend server caching, you can disable frontend client caching of Neptune applications on 3 levels:

  • Disable frontend client caching of Neptune applications globally in the Neptune cockpit system service.

  • Disable frontend client caching of Neptune applications on launchpad/mobile client level. You’ll find the settings In the Neptune cockpit launchpad and mobile client service under the general settings tab.

  • Disable frontend client caching of a single Neptune application in the application settings.

  • Disable frontend client caching of a single Neptune application at runtime in the Neptune Cockpit Application Management Service.

Lock handler (16471)

It is now possible to request multiple locks at once. This has a great impact on performance, and especially if many objects needs to be locked at the same time. To use this new functionality you can call the new function module /NEPTUNE/REQUEST_LOCKING_MULTI. Here you pass a nested internal table with headers and corresponding parameter table, and this is returned with messages for each record. TL;DR: The lock handler framework have been made more robust, preventing lock conflicts. There has been identified a flaw in the lock handler framework, that lock objects that are specified with lock mode 'E' could allow simultaneous locks from different users. This could happen because the lock mode accepts cumulative locks from the same user in the same session, and since the locks are requested in a background job, the same object can be successfully locked for this same background user within a very short timespan. To resolve this, the lock mode is now always overridden to be 'X' to not allow cumulative locks. This way it is ensured that only one user can successfully lock an object, even if another user requests the same lock at the exact same time.

Offline logon (16547)

There was an issue with offline logon with pin code in mobile client. After getting online, the user would no longer be able to communicate with SAP, but this has now been corrected.

CSRF protection in PWAs and mobile clients (16495)

If protection against CSRF attacks was enabled in PWA or Mobile Client, fetching of the CSRF token from the ABAP server was in some scenarios not done at the correct time. If just one POST request is send without the CSRF token/cookie, the result would be a 403 - Forbidden error. Now a CSRF token is always fetched fresh from the server on each logon or unlock.

OData Where-used tab (11183)

There was no Where-used tab in the Neptune Cockpit OData Service detail page.

Transport Info for API Designer (6339)

If an API build with API Designer is added to a Transport Request you did not see which transport this API has been assigned to after the assignment. Now we introduced a new Tab "Transports" which gives you an overview about all Transports (Released and Open) the specific API has been assigned to.

21 10 4 patch main 0
ProcessFlow not working after upgrade (16488)

The sending of model data with AJAX calls for the UI5 element ProcessFlowNode did not work.

Launchpad Custom Start App (16505, 16531 )

Launchpads with custom start apps could not be started due to the Javascript error: "AppCacheAppBtnLayout is not defined".

neptune.ValueHelpField changing wrong model (16528)

If you have been using a neptune.ValueHelpField and have chosen "Single Select" as an option then the parent Model has been changed when there was a change in the ValueHelpField and not the range Model of the ValueHelpField. This issue was introduced in DXP 21.10.003 (Ticket #12056 in Release Notes) and is now resolved.

Set RTL language on mobile devices (16480)

Setting a language with right-to-left text direction would not add the dir="rtl" to the HTML tag.

Language text in dropdown list in desktop logon screen

Translated language text in the language dropdown list in the Neptune launchpad desktop logon screen, was set based on the 2 character LAISO field and not the 1 digit SPRAS field. The result was that the text next to the language key could be wrong. Example: Text for Norwegian was set to "Dutch" because the N from NL was used and not the O which is the SPRAS for Norwegian.

Mobile client build status colors

The colors in the dialog keeping track of the progress when building a mobile client are now following the UI5 Quartz Light & Dark colors.

Mobile client file upload cleanup

When uploading .ipa, .apk, .appx & .pdf files, the fileuploaded will now only accept these files. This will make it easier to find the relevant files. If the mobile client configuration has been changed, the popup asking you to save the changes will now perform the original upload action, so that the upload operation is not interrupted by the save process.

Using different splash screens

When switching between layouts using different splash screens, the loading of the new splash screen would not always be applied correctly.

Syntax check for duplicated binding in AJAX send (16514, 16581)

The syntax check to highlight if the same binding is sent to SAP multiple times would not work correctly in all scenarios.

Neptune Belize Layout

If you are running both Fiori Launchpads and Neptune Launchpads in your organization, it can be a good thing to give the users a similar experience in both platforms. The Neptune Belize layout delivered with DXP21 has been tweaked a little to mimic the look’n’feel of the Fiori Launchpad even better. The layout is now full screen and the tile icons follow the style set by the Belize theme.

21 10 4 patch main 1

You can of course spize up the Fiori style user experience if you add additional layouts to the launchpad, so that users can choose them from the settings menu. Fiori looks pretty cool in dark :)

21 10 4 patch main 2

Create your own UI5 Theme. If you use UI5 1.84, you can create both light and dark custom UI5 themes.

21 10 4 patch main 3
Strange characters in Launchpad description (16584)

When a launchpad description would include strange characters or line breaks, the Neptune standard launchpad would get stuck in the splash screen. The description is now cleared before sending the launchpad/mobile client configuration to the frontend.

Contributors

  • Nicolay Aarstad Wildhagen

  • Kaan Altinsoy

  • Yaniv Rosenthal

  • Akshat Kumar

  • Peter Nigg

  • Soeren Baek

  • Ralf Killmayer

  • Martin Sommer

  • Sushant Ranade

  • Andreas Schilling

  • Michael Morent