DXP21.10.0012 Changelog

July 29, 2022

Callback function in close and suspend event handlers. Value object format options. ModelData.Find with undefined fields. AJAX send structures. AppCache.View declared as an object. Tilegroup Title display in cockpit configuration. Enhancement spot View Head Backend not generated. Plugin list in mobile client. Help icon in launchpads with start app. Active App Title. setInitLoad and empty Ajax ID. Home button identifies as back button. Native logon language. Multi client (MANDT) mobile client. sap.m.Table sorting in phones. Highlight disabled objects in the Web App Designer model dialog. Syntax check in disabled objects. App width when navigating back in launchpad. Launchpad side bar width. Set CurrentApp & CurrentView when closing tiles. neptune.PDFView zooming behaviour. PWA App ID. App Designer - create transport task. sap.m.select "Show Key Word" not considering Conversion Exit. SAPUI5 Binding Parser errors when strings contained Binding Characters. /NEPTUNE/CL_NAD_SERVER→API_MESSAGE_CREATE stateful Applications. Integration Cards might not work on Mobile Clients. Empty panels at tile action ABAP Report.


Callback function in close and suspend event handlers (02-17556)

You can now add a callback function as an argument to the default event handler in the beforeClose & beforeSuspend event handlers. If multiple beforeClose & beforeSuspend event handlers have been implemented, either in one app, or across multiple apps in a splitview scenario, the callback function will only be executed if ALL default action functions and therefore the closing process executes. You should take a look at the beforeClose and beforeSuspend event code snippets to get an understanding of the implementation.

if (sap.n) {
    sap.n.Shell.attachBeforeSuspend(function(event, id, config) {
            title: 'Before Suspend...',
            acceptText: 'Ok',
            onAccept: function() {
                config.defaultAction(function() {
                    console.log('After Suspend...');
Value object format options (03-17557 )

Adding a comment at the end in a value object format options on a sap.m.Input object, would create a syntax error.

ModelData.Find with undefined fields (04-17563)

If the NE comparator is used in the ModelData.Find function, undefined values would not be found.

AJAX send structures (05-17559)

A few UI5 objects, like sap.ui.unified.CalendarAppointment, have a special binding type. Sending data from the frontend to the backend did not work, the data array would turn up empty.

AppCache.View declared as an object (06-17564)

Before the AppCache.View was declared as an array, but the first access to the array would AppCache.View into an object. That was a bit confusing. Due to the wonderful Javascript world, it just worked, but it’s nice to have AppCache.View declared correctly as an object in the beginning.

Tilegroup Title display in cockpit configuration (07)

When hiding the tilegroup header in the cockpit tilegroup configuration, the title and subtitle fields are no longer being hidden from the cockpit configuration form.

Enhancement spot View Head Backend not generated (08-17588)

The enhancement spot "View Head Backend" was not generated in the ABAP backend.

Plugin list in mobile client (09)

When saving a mobile client, empty rows in the plugin list was not deleted.

Help icon in launchpads with start app (10-17602)

When running just one application in the launchpad, the content aware help would not work in the application.

Active App Title (11-17607)

When navigating back in the Neptune Standard Launchpad using the back button or calling AppCache.Back(), the active app title would be hidden and not changed to the new active app title. When calling AppCache.Load with the option to load the app into a parent object, this would also mess up the active app title.

setInitLoad and empty Ajax ID (14)

Setting init load on a model only makes sense if the model have an Ajax ID. The syntax check in the App Designer will now check that there is an Ajax ID present if setInitLoad is set.

21 10 12 patch main 0
Home button identifies as back button (15)

When the launchpad home button was clicked, the button did not always send in the "home" identifier in the onBeforeSuspend event handler! Sometimes it would be "back" even though the home button was clicked.

Background: The Neptune Standard Launchpad has a "Home Button" that is always visible. If the user clicks the home button while an app is open, the navigation will be performed so that the last visited launchpad screen will be shown at the exact same scroll position as before the tile action was clicked. Another click on the home button when a launchpad screen is visible, will navigate to the very first screen and scroll to the top. A click on the back button will navigate back to the previous screen/view in the navigation hierarchy.

21 10 12 patch main 1

It is possible to intercept a click on both the home button and the back button from within an application, by implementing the onBeforeSuspend event handler. This event handler will present an ID as the second parameter. The ID will be "home" if the home button is clicked and "back" if the back button is clicked. You can then prevent default and do application specific navigation. This is especially useful if you want to use the launchpad back button for internal application navigation, like in a master/detail application.

Native logon language (17-17524)

When using native logon in the Neptune Launchpad and the language setting was set to "User Default", the language would always be english.

Multi client (MANDT) mobile client (18-17655)

When setting up a mobile client to use multiple SAP clients (MANDT), the client dropdown list would not show up on the first mobile client launch.

sap.m.Table sorting in phones (19)

A relative URL was preventing the Neptune Sorting Framework for sap.m.Table to work in mobile clients in some scenarios.

Highlight disabled objects in the Web App Designer model dialog (22-17686)

Disabled objects with a binding and objects with a binding that is a child of a disabled object have always been shown as disabled in the GUI App Designer model dialog. Now this is also true for the Web App Designer.

21 10 12 patch main 2
Syntax check in disabled objects (23-17687)

The syntax check in the Web App Designer will no longer report double send bindings if one of the objects is disabled.

App width when navigating back in launchpad (24-17702)

When navigating back two or more apps, the application would not be set full width.

Launchpad side bar width (25-17701)

Increasing or decreasing the launchpad sidebar, would not work in UI5 v.1.96 and above.

Set CurrentApp & CurrentView when closing tiles (17743)

When a tile is closed and another application view opened from a tile is present in the navigation stack, this application will be displayed when closing the tile. Now AppCache.CurrentApp & sap.n.currentView will be updated with the new app/view ID in sap.n.Shell.closeTile.

neptune.PDFView zooming behaviour (01-17426)

A new attribute fitToScreenWidth has been introduced for the JS PDFView object. If you set this to true (PDFView.fitToScreenWidth = true;) before showing the first PDF document, the PDF will use the available screen width. In addition, the zooming logic has been improved.

PWA App ID (12-17608)

App ID can now be specified also for PWAs. This feature can be useful when there are restrictions in place for MDM regarding which apps are allowed to be launched.

App Designer - create transport task (27-17741)

There was a bug when entering the Cockpit App Designer in Edit mode for an application where there was already open transport for another user. The app would remain in Display mode after adding a task to the transport, and when manually switching to Edit mode again, there was an error message about the app being locked.

sap.m.select "Show Key Word" not considering Conversion Exit (16-17613)

When you were using a sap.m.select dropdown list and choose "Show Key Word" in the settings, the key value would not have Conversion Exits considered (for example you would have seen leading zeros in the dropdown list).

SAPUI5 Binding Parser errors when strings contained Binding Characters (16-17613)

When you were using a sapui5 component that in his constructor used string properties in a Settings Object those are considered as Binding Values. For "normal" string values that is not a problem but when the string contains special binding characters they need to be escaped otherwise you would get a BindingParser Syntax Error. For escaping you should use sap.ui.base.ManagedObject.escapeSettingsValue. On place where this was relevant is sap.m.select dropdown values. This might also be necessary in other places in the future.

21 10 12 patch main 3
/NEPTUNE/CL_NAD_SERVER→API_MESSAGE_CREATE stateful Applications (20-17580)

When using /NEPTUNE/CL_NAD_SERVER→API_MESSAGE_CREATE in stateful applications the message payload has only been created on the first call. The following calls would have gotten "null" as a object in the message payload. This is now resolved.

Integration Cards might not work on Mobile Clients (26-17713)

When using Integration Cards that will provide their data with a dedicated extra API Call (data is not embedded into the manifest.json itself) it might be possible that the integration Card might not be able to load the data. The card will look like this:

21 10 12 patch main 4

When creating the Integration Card manifest you can specify the API Factory Method that should return the Data for the Header/Content or the whole card. You do this by filling structure /neptune/if_ic_factory⇒ty_dynamic_restapi_definition with the corresponding values. In case of a mobile client you will need to set the component absolute_url to abap_true. Then the API Calls will be targeted against the absolute Mobile Client URL. Otherwise they would only be targeted relatively. In case of a Mobile Client that would be file://index.html/neptune/api/dynamic/…​;. which doesn’t work. This hotfix will use the URL configured in the Launchpad/Mobile Client.

Empty panels at tile action ABAP Report (29-17749)

When using a Tile with Action Type "ABAP Report" and you have chosen a variant that had hidden fields then the panels that only contained non-visible elements would still be shown. Now the panels only containing non-visible elements are hidden.


  • Stanley Wong

  • Radek Chudziak

  • Maximilian Schaufler

  • Timo Müller

  • Hans Rusten Wang

  • Balasubramaniyam Murugan

  • Leander Peichl

  • Roberto De Zuani

  • Tobias Schießl

  • Christof Veratschnig

  • Andreas Tucho

  • Dennis Deile