Skip to content

5.0 Release Notes

Mobile Development Kit Client 5.0.1

This patch release provides the following minor update and important bug fixes.

  • On navigation between 2 diff tabs pages, progress banner shows 2 progress bars
  • mobile services Client - App crash when rotating from landscape to portrait mode
  • The appEventData is undefined when the back button is clicked
  • Failed to send post request with empty body on Android
  • Mobile client throw exception when clicking tab in certain scenarios on Android
  • Banner message cannot be shown in PopoverMenu action
  • Extension section with banner image failed to redraw when the mobile device changes orientation
  • Side Drawer rules don't evaluate on open of drawer
  • AppUpdate caused mobile client crash on Android
  • Contact List Page crashes Web Client
  • DatePicker FormCell control throws error: this._dom.formatValue is not a function on Web Client
  • Failed to initialize application data service with allowCaseConflicts in CSDLOptions on Web Client
  • MasterDetail page throws error - cannot read property 'backStack' of undefined on Web Client

Mobile Development Kit Client 5.0

Notable new or changed features for the Mobile Development Kit Client 5.0

New UI Controls

Flexible Column Layout

Flexible Column Layout This control renders a flexible column layout with 2 columns in a page.

Each column's content is rendered as a page.

When the left most column is rendered with a section list, the right column next to it is used to render the detail of a selected item from list.

Side Drawer

Side Drawer is a global navigation menu which allows for lateral navigation across various pages in the app. Only one page can contain this control and this page has to be added as the 'MainPage' in file to enable the side drawer. The first item in the first section of this control will define the landing page of the application.


Support Header Type Control & Tabs in a Page

You can now add 2 container controls as root controls of a page.

  • The first control must be a Sectioned Table that contain a single section with a header type control e.g. Object Header or Profile Header
  • The second control must be a Tabs control.

Any other combination is not supported.

PullDown Event for Page

Page's PullDown allows app to define action or rules to be executed when the page pull down operation is performed i.e. when user swipes down on the page.

Support Loading Indicator for Sectioned Table

Sectioned Table's LoadingIndicator - You can enable the loading indicator and customize the text. The loading indicator will be displayed when the page is first loaded and will be dismissed when its content is rendered.

Support Data Paging Loading Indicator

DataPaging property are supported in:

You can enable the loading indicator and customize the text. The loading indicator is displayed when the user scrolls to the bottom of the list and the app starts loading the next set of data. It gets dismissed when the next set of content is rendered.

Avatar and Circular Icon Support for Action Bar Item

IconText and IsIconCircular are 2 new properties introduced in Action Bar. IconText property is used to generate a text based avatar image and IsIconCircular can be used to render a circular icon.

Action Support in the Banner Message

Banner Message now supports interactivity which can be used to execute an action or rule on click. Following new properties have been introduced to support this new behavior:

Action Support in Progress Banner

Progress Banner now supports interactivity which can be used to execute an action or rule on click. Following new properties have been introduced to support this new behavior:

getCircularImage and getIconTextImage Client API

getCircularImage API generates a circular image and getIconTextImage API generates an image using couple of characters.

SetFocus API for Form Cell Controls

FormCellProxy setFocus API - Calling this function sets the focus on the control. Supported only on the following controls:

  • Title Form Cell
  • Simple Property Form Cell
  • Note Form Cell

Support Auto Select Default Value in List Picker

List Picker AllowDefaultValueIfOneItem - Support auto assigning default value if there is only one item in the list picker's value list.

Support Password Input Type in Simple Property Control

Simple Property Form Cell now support keyboard type Password and NumberPassword. NumberPassword shows only numeric keyboard.

Enabling Search Across Multiple Sections in a Page

Search is now supported across multiple searchable section controls in a page. This is an enhancement over earlier release where Search would be disabled in case of more than one control in a page.

Support Rules, Logical Operators and Functions in Filter and Sort Control

Filter and Sorter form cell control have now been enhanced to support the following:

  • Rules support for filter and sorter form cell.
  • Support of standard OData logical operators such as less than, greater than, not equals and others.
  • Support of standard OData functions such as startswith, endswith and others.
  • Support of standard ascending and descending operators for sorter form cell.

Font Icon Styling

We have now introduced support for styling on font-icon e.g. sap-icon://add.

OData Service

Unified OData Initialize Action

We have now unified the Offline OData Initialize, OData Service Create and OData Service Open actions into a single action: OData Service Initialize (Action.Type.ODataService.Initialize).

This new action can be used to initialize both offline or online OData service.

With the introduction of this new action, the following actions are now deprecated:

  • Offline OData Initialize (Action.Type.OfflineOData.Initialize)
  • OData Service Create (Action.Type.ODataService.Create)
  • OData Service Open (Action.Type.ODataService.Open)

Partial Upload for Offline OData

UploadCategories provides capability to selectively upload a subset of local changes to OData back end. This is an enhancement over earlier release where all the local changes had to be uploaded in one single request.

Support OData Deep Insert

Deep insert is now supported in OData Create Entity action. You can now create an entity together with other related entities (navigation properties) inline as part of the entity's Properties.

Note: For Offline OData, you can only do deep insert on navigation property for which the ToRole refers to an association end with cardinality 0..1 or 1. Inline entities cannot be added using a navigation property for which ToRole refers to an association end with cardinality . In short, A navigation property that refers to a set of entities* cannot be used for deep inserts.

Action Result Error responseBody and responseCode for OData Actions

ActionResult of all online OData actions will now contain new property in the error when an error occurred, this applies only to online OData service calls. For Offline OData service call, the error is still found in the ErrorArchive entity set after an upload operation.

ActionResult.error now contains the following new properties

  • responseCode - this is the HTTP error code in the response returned by the OData service.
  • responseBody - this is the response body payload returned by the OData service in string format. If the payload is a JSON string, you can parse it to be an JSON object for further processing.

REST Service

In 5.0, we now support defining a non OData destination as a service in your app. You can then use bind that service to any controls that support Target binding such as Object Table. You can find the structure of the binding for such service here

You can find a new Send Request action. This actions is the equivalent of the ClientAPI.sendRequest API.

We have also enhanced the ClientAPI.sendRequest API to support setting the request body directly with:

  • JSON object which will automatically be converted to JSON string with header Content-Type: application/json, if you have not provided your own Content-Type header.
  • Binary data, you need to set the appropriate Content-Type.
  • Array for multiple part form data by setting the header Content-Type: multipart/form-data

Mobile Development Kit Client Client

Support In-App QR Code Onboarding From SAP Mobile Services Cockpit in Cloud Foundry

Client now supports the In-App QR code available in SAP Mobile Services cockpit of Cloud Foundry. This QR code is supported only from the in-built scanner of client and not from third party QR scanner.

ILOData Tool

Mobile Development Kit Client Client package now include ILOData tool that can be found in the Tools/ilodata folder. Interactive Local OData (ILOData) is a command line utility that lets you execute OData requests, upload and download against a local offline store (.udb file). For more information, see the README.html in the folder.

Last update: December 1, 2022