Skip to Content
Product Information

What’s new in Mobile Services App Development Tools 1910

In case you are still wondering what exactly is “Mobile Services App  Development Tools” ? Well, let me share some insights on this –  

in SAP Web IDE (full Stack) there is now a dedicated extension (aka plugin) for creating and developing Mobile development kit and SAP Mobile Cards based applications along with Mobile Backend Tools (MBT) that provides capabilities enabling you to quickly build an mobile enabled OData service that constitutes your mobile back-end service for mobile applications.  

Here is help documentation for more details.  

 

The main focus of 1910 release are –  

Mobile development kit Editor

MDK Development perspective got a new icon

“MDK Development” icon has been replaced with MDK logo icon.

 

We have enhanced the Search in the wizard, it will now display the items while you input text int the search box.

e.g. searching for “update” results related actions and their types.

  • Application Update Action
  • OData Action>UpdateEntity

 

With this release, you can easily point to a navigation property associated with a parent entity by clicking on a dropdown option under EntitySet .

 

New LanguageURLParam into Service

There is a new parameter option added in service file for Language URL, select this option if this service can accept request with language parameter.

Check the documentation for more details.

Allow use of generic rule extension control in MDK Editor

 

You can now write an extension in metadata project (or WebIDE MDK project) without having to build a custom MDK client.

 

Note: this feature only supports Javascript codes (.ts files). You cant add additional framework/library/module/aar

Place the extension module with controls folders into metadata definition folder:

metadata/"BaseProject"/Extensions/"ExtensionModule1"/controls/[..]

Having extensions under metadata definition would allow them to be bundled into your metadata bundle (MDK app) during deployment process and be updated as part of App Update via SAP Cloud Platform Mobile Services.

Check the documentation for more details.

Support Style Files in CIM

There is now support for Styles in CIM file.

New action type to check for new App Update definitions

This new predefined Action “Application Update action” allows the client to check for an application update manually.

Check is considered

  • successful if the application checks for a new version or downloads a new version.
  • failure if the application fails to either check for a new version or download the new version.

Check the documentation for more details.

Ability to discard objects or transactions on irrecoverable errors

We have introduced a new property when Initializing Offline OData SetEnableIndividualErrorArchiveDeletion – It must be set on an OData Service and will affect how ErrorArchive deletion work.

When set to false (this is default value):
It will behave the same as the current behavior: If you delete one entry of ErrorArchive, it will revert all error states and discards all data from the ErrorArchive. In additions, the requests associated with entries in the ErrorArchive are removed. Note: requests that are not associated with the Error Archive entries will not be removed.

When set to true:
Deleting an individual failed request from ErrorArchive will cause that request and any following requests in the request queue (sent or unsent) that depend on the failed request to be deleted as well.
In this mode, you will need to manage the ErrorArchive entries, individually.

 

Check the documentation (Store Parameters) for more details.

Support Undo Pending Offline Changes of a specified Entity initial & delta sync

We have introduced a new OfflineOData Action UndoPendingChanges that discards all unsent (offline) requests that affect a specified entity So that you can any local changes they’ve made for that entity without needing to send those requests to the backend.

This action allows app to undo a pending changes (local changes that has not been uploaded) as if it never happens:

  • An existing entity will be restored to the original status as if no any changes had been made.
  • A new entity will be removed as if the entity had never been created.

Check the documentation for more details.

Support ServiceOptions in OfflineOptions for OData Service

Service Options is for application to inform the MDK whether your OData Service supports certain features e.g. supportsBind, supportPatch.

  • supportsBind: Service either supports or doesn’t support bind operations. (default value is false)
  • supportsPatch: Service either supports or doesn’t support patch operations. (default value is true)

E.g.  If an OData Service does not accept PATCH method for updating an entity, then the app should set the supportPatch to false. Setting supportPatch to false will tell MDK that your OData Service doesn’t accept PATCH. So, MDK will react accordingly and will no longer use PATCH method when executing UpdateEntity action. Instead, MDK will use PUT method

New “Visible” support to Form Cell sections

You now have ability to hide/show an entire Form Cell Section in a Form Cell Container from the metadata.
use case – When loading a FormCell page, you can hide or show sections based on binding data or logic in a rule.

Support OnResume event in Page

This OnResume event is invoked when the application is resumed and the page is shown. The event is raised after the application OnResume event is raised. For Android platform, if the default language in the device is changed during the application suspension, when the application resuming it will navigate to main page. In this case the page resume event will not be invoked.

Check the documentation for more details.

Support PUT (replace) & PATCH (merge) option for OData transactions

 

We have introduced a new argument RequestOptions in Update Entity action which has an updateMode property that allows user to specify the mode as patch (merge) or PUT (replace).

MDK should expose that in metadata.

RequestOptions.UpdateMode has two possible values:

  • “Replace” (PUT method): Include all of the Entity’s properties in the update request, as in a complete replacement of the resource
  • “Merge” (PATCH method): Include only properties with changed values in the update request, as in patching the resource Default value is “Merge”. If any other value is set to “UpdateMode”, it will be ignored and default will be used.
{    'RequestOptions': { 
       'UpdateMode': 'Replace'
    }
}

 

Mobile Cards Editor

Support preview for adaptive card

with this release we are now fully supporting the Microsoft adaptive card standard
(https://adaptivecards.io/) which enables our customers to build visualization of their data even faster on a mobile device. Adaptive cards simplifies visual representation of the data.

Support Auto-subscription

This feature empowers administrators to now preselect which information will be by default visible to all the users

MCK Emulator in SAP WebIDE

This feature simplifies the development as with standard web tools like the chrome inspector one can now debug the cards inside the web browser. So debugging handlebar helper functions is now just as easy as debugging java script.

Mobile Backend Tools (MBT)

Enhancements on Annotation Editor:guided value input

In this release we have enhanced the Annotation Editor that is part of Mobile Back-End Tools. Previously the user was already able to edit annotations. However, there were various scenarios where the user could have entered the wrong values. To avoid entering wrong values that would be reported on later in the process, we have added various measures and input validation to avoid such mistakes. These new features are accessible in the edit annotation dialog and the right side detail table.

 

 

Annotation values can be in different data types. For each data type, we present them with different controls, and provide convenient support to facilitate the user input. Meanwhile, we also validate the user input.

Data type support

Boolean this type is presented as CheckBox.
Enum this type is presented as Select.
Time this type is presented as a TimePicker.
Date, DateTime, GUID These data types are presented as MaskInput
Number Types
    • DayTimeDuration
    • Byte
    • UnsignedByte
    • Int16
    • Int32
    • Int64
    • Decimal
    • Single
    • Double
    • Float

Some types include multiple parts. We show these parts separately to help the user remember what value to input. Some examples are shown below:

Validation

When the user is editing a value, we validate the input in real time. This prevents the user from inputting any illegal text. If errors are found, we prevent the input.

When the user finishes editing a value, we check whether the value is in the valid range. If not, we restore the value to its previous state and show an error message as shown below

 

Auto deployment of OData service and mobile app binding

Generating and deploying an OData service to Cloud Foundry was already possible with our tooling. However, binding this to a mobile application in SAP Mobile Services on Cloud Foundry and taking care of the security configuration is a non-trivial task that can go wrong in various places. We therefore introduce a new feature that helps you in this tedious configuration process.

After generating the services from your CSDL file and customizing it (optional), you can select the project, right-click and in the context menu select Deploy > Deploy to Mobile Services.

In the first step, you will see a dialog showing you the mobile app configurations currently available in Mobile Services on Cloud Foundry. You might also see a browser popup dialog requesting credentials. You’ll need to provide the credentials for your SAP Cloud Platform on Cloud Foundry account. The username is typically the email address you’ve used to sign up for the SAP Cloud Platform account.

The dialog allows you to select the mobile app and its endpoint that you are going to bind to the OData service. You can also create a new mobile app configuration and endpoint in SAP Mobile Services on Cloud Foundry from this dialog

After clicking OK, the mta (multi target application) project will be built and deployed to Cloud Foundry.

After deployment of the service, it will be bound to the specified endpoint of the mobile app

You can test the endpoint by opening the SAP Mobile Services endpoint url shown in the SAP Web IDE console in a browser (see screenshot above).

The above described flow also works for protected services using authentication through XSUAA. However, it is currently still required to manually configure the Role Collection and Trust Configuration on SAP Cloud Platform. Omitting this results in a ‘Forbidden’ response when you try to access the protected service. We will simplify these steps as well in a future release. Check this blog post for details.

 

Let me know if you have any questions/feedback on MDK topic.

References:

New to Mobile Development Kit development?

Regards

Jitendra Kansal

Product Management, SAP Cloud Platform Mobile Services
SAP SE

P.S. Many thanks to our dev colleagues to share inputs in writing up this post.

Be the first to leave a comment
You must be Logged on to comment or reply to a post.