What’s new in Mobile development kit client 26.9
Share

[[{“value”:”

Dear Community,

I’m happy to announce that a new release of the Mobile development kit (MDK) is now available for all SAP Build and Mobile Services customers. You can download it from the SAP Software Center, or from the community download page.

The SAP Mobile Services Client version 26.9.0 is available on Google Play and Apple App stores.

SAP MDK enables developers and technical business users to build cross-platform mobile applications. It allows you to build your application once, in an integrated development environment (Visual Studio Code / SAP Business Application Studio) and run it natively on Mobile (iOS & Android).  

The following enhancements are available only on iOS and Android platforms:

Support Crash Reporting

With this release, your MDK apps can now automatically capture and report crash data to SAP Mobile Services, giving administrators greater visibility into app stability issues in production. This enables teams to investigate crashes more efficiently.

Key Benefits

  • Faster troubleshooting: Crash logs are automatically uploaded to mobile services and provide valuable diagnostic information that can help developers and administrators investigate and resolve app crashes more efficiently.
  • User privacy and control: Crash data is uploaded only after the user has provided consent, with the consent decision stored per user and device.
  • Mobile Services controlled configuration: Administrators can enable or disable crash reporting through the mobile services admin UI without requiring changes to the app.
    Admin settings for crash log upload
  • In-app consent management:  App developers can expose crash reporting preferences in the app settings, allowing users to view or change their consent.
    Crash Report Collection Consent View
  • Improved app stability monitoring: Administrators can access crash information to better understand app stability and identify recurring issues.
    Uploaded Crash Logs page in mobile services admin UI

Client APIs: Three new client APIs allow apps to query and manage consent from within the app settings page.

  • isCrashReportingEnabled(): Returns true when crash reporting is enabled in the mobile services and app is not in demo mode.

let crashReportStatus = context.isCrashReportingEnabled();​

  • isCurrentCrashConsentAllowed(): Returns true if user has granted consent for crash reporting.

let consentAllowedStatus = context.isCurrentCrashConsentAllowed();​

  • showCrashConsentDialog(): Programmatically displays the crash reporting consent dialog. App developers should expose the crash consent screen in the app settings so users can review or change their preference. An error apperas if crash reporting is not enabled in the mobile services or when running in demo mode.

export default function CrashConsentDialog(context) {
try {
context.showCrashConsentDialog();
} catch (error) {
alert(‘Error showing crash consent dialog: ‘ + error.message);
}
}​

For more information, refer to this documentation.

Improved Sync Error Handling for Multi-User Switching

We have improved sync error handling for multi-user scenarios, particularly when a previous user leaves unresolved business data on a shared device.
Previously, if a user made local changes, encountered a sync error, and logged off without resolving it, the next user could not continue using the app. On devices managed by MDM, where reinstalling the app may not be an option, this could leave the device unusable until the previous user returned to resolve the issue.
By default, when offline conflict handling is not configured, the only available action is Return to Sign In Screen. The previous user must sign in again and resolve the transaction issue before another user can continue using the app.
With MDK 26.9, configurable conflict handling allows the next user to resolve the previous user’s pending transactions directly from the Transaction Issue screen and continue to the app without requiring the previous user to sign in again.

Key Benefits

  • Improved device availability: The next user can continue using the app even when the previous user is unavailable to resolve pending offline transactions.
  • Simplified user switching: Users can resolve or discard the previous user’s pending transactions directly from the Transaction Issue screen without requiring the previous user to sign in again.
  • Administrator control: Administrators can enable offline conflict handling and select how pending transactions should be handled.
  • Data recovery option: When configured, a snapshot of the previous user’s pending offline data can be uploaded before the transactions are discarded, providing an option for administrator recovery.

Configure Conflict Resolution in Mobile Services: To enable conflict resolution for multi-user mode:

  • In the Mobile Services cockpit, navigate to your application.
  • Under Shared Devices, enable Allow Upload of Pending Changes from Previous User.
  • Enable Offline Conflict Handling in Multi-User Mode.

    Admin settings to enable offline conflict handling

  • Select the desired conflict resolution mode:
    •  Discard Pending Transactions: Discards the previous user’s pending transactions immediately.
    • Discard Pending Transactions After Upload: Uploads a snapshot of the previous user’s offline data to the server for potential administrator recovery, and then discards the pending transactions. This requires:

//Excerpt of a .service file
“OfflineOptions”: {
“StoreParameters”: {},
“MultiUserConflictHandling”: {
“UploadEncryptionKey”: “/MyApp/Rules/GenKey.js”,
“UploadRequestQueueOnly”: true
}
},​

Runtime Behavior

When offline conflict handling is enabled, a conflict-handling action is displayed alongside Return to Sign In Screen on the Transaction Issue screen. When the user selects the conflict-handling action, a confirmation dialog is displayed before the selected action is applied. After the user confirms:

  • The configured conflict resolution policy is applied.
  • The app proceeds directly to the new user’s main page without requiring the previous user to sign in.

If the user cancels the confirmation dialog or selects Return to Sign In Screen:

  • No conflict resolution is performed.
  • The previous user can sign in again and resolve the transaction issue manually.

 Runtime behavior on iOS and Android platforms

For more information, refer to this documentation.

Display Attachment Title and File Size in Attachment Form Cell

The MDK Attachment Form Cell now displays the attachment title (file name) and file size, making it easier for users to identify and review files before submission. This display is automatic and no metadata configuration changes are required.  Previously, users could not see the file name or size of an attachment, making it difficult to distinguish between files or understand their size.

Key Benefits

  • Improved file identification: Users can quickly distinguish between multiple attachments by their file name.
  • Better file awareness: Users can see the attachment size before submission or review.
  • Fiori UX alignment: The Attachment Form Cell experience is more consistent with standard Fiori UX expectations.

Examples displaying file name and size in FormCell attachment control

Custom Search Icon Support for Text Input, List Picker, and Section Search

MDK now supports custom icon configuration for TextInput (SimpleProperty), ListPicker, and Section controls, allowing app developers to replace default icons with custom images and provide a more tailored app experience.

All supported icon properties can reference metadata image paths, resource images, SAP icons, and font icons.

  • TextInput (SimpleProperty):  A new BarcodeIcon property allows developers to customize the barcode scanner button icon when AlternateInput is set to Barcode. A corresponding BarcodeIcon style class is available under Styles to customize the icon’s color, font size, and background color.

//Excerpt of a page
{
“BarcodeIcon”: “sap-icon://action”,
“_Type”: “Control.Type.FormCell.SimpleProperty”,
“_Name”: “BarcodeSapIcon”,
“Caption”: “Barcode Field sap-icon://”,
“PlaceHolder”: “Scan here”,
“AlternateInput”: “Barcode”
},

Search icon example in FormCell Simple Property

  • ListPicker and Section Search: New Icons and Styles properties are available under Search for both ListPicker and Section controls with Expandable or Persistent search.

//Excerpt of a page
{
“_Type”: “Control.Type.FormCell.ListPicker”,
“_Name”: “ListPickerSapStyled”,
“AllowEmptySelection”: true,
“Caption”: “sap-icon:// (Styled)”,
“IsEditable”: true,
“Search”: {
“Icons”: {
“Search”: “sap-icon://show-edit”,
“Barcode”: “/mdk269/Images/barcode.png”,
“Clear”: “sap-icon://clear-all”,
“Styles”: {
“Search”: “SearchAndSimplePropertyIconsStylesSmall”,
“Barcode”: “SearchAndSimplePropertyIconsStylesSmall”,
“Clear”: “SearchAndSimplePropertyIconsStylesSmall”
}
},
“Placeholder”: “Search items”,
“BarcodeScanner”: true
},
“PickerItems”: [
“Apple”,
“Banana”,
“Cherry”,
“Date”,
“Elderberry”
]
},

“Search”: {
“Enabled”: true,
“Placeholder”: “Search items”,
“BarcodeScanner”: true,
“Mode”: “Persistent”,
“Icons”: {
“Search”: “sap-icon://show-edit”,
“Back”: “sap-icon://back-to-top”,
“Barcode”: “sap-icon://qr-code”,
“Clear”: “sap-icon://clear-all”
}
},​

Support Section Page as Filter Page

 MDK now supports SectionedTable FormCellSection as a container for Filter pages, giving app developers a more structured and modern way to define filter controls while aligning with the latest recommended UI patterns.

Key Benefits:

  • Modern container structure: Use the consistent SectionedTable > FormCellSection > Form Cell Controls hierarchy, matching the rest of the application’s page structure.
  • Future-proof implementation: FormCellContainer is soon to be deprecated; migrating to SectionedTable FormCellSection ensures long-term compatibility.
  • Unchanged filter logic: Target paths for accessing control values and the creation of filter criteria objects remain fully compatible — no changes needed to existing filter business logic.

Migration Notes:
When upgrading to MDK 26.9, you need to manually migrate existing filter pages from FormCellContainer to SectionedTable FormCellSection. The following changes are required:

  • Container definition structure: Update the page definition from FormCellContainer > Sections > Controls to SectionedTable > FormCellSection > Form Cell Controls.
  • Container retrieval rules: Update any rules that reference the container to reflect the new SectionedTable FormCellSection structure.
    Example of updating from FormCellContainer to SectionedTable
For more information, refer to this documentation.

Automatic Dependencies Checks in MDK Editor VS Code Extension

The MDK Editor extension now checks for all required prerequisites the moment it activates. If anything is missing, you’re greeted with a Setup panel — not an error message.
MDK Editor Setup in VSC

The setup experience handles everything:

  • Missing VS Code extensions (Cloud Foundry Tools, Application Wizard) are installed with a single click using the VS Code Extensions API.
  • @SAP/generator-mdk is installed automatically via an integrated terminal task running npm install -g @SAP/generator-mdk.
  • CF CLI guidance is tailored to your operating system — no hunting for the right installer for Windows vs. macOS.
  • After installation, the extension re-validates your environment automatically.

A Clear Signal When You’re Ready

Once all prerequisites are in place, the Setup panel gives you a full status summary: each prerequisite, its installed version, and whether updates are available. The “MDK Ready” checkmark in the VS Code status bar confirms your environment is good to go.

The MDK Editor Setup panel showing all prerequisites validated, with version details and update status at a glance. The “MDK Ready” indicator in the status bar confirms the environment is good to go.
MDK Editor Setup in Ready state

From MDK Genie to Agentic Development (Applicable in SAP Business Application Studio)

 MDK MCP Server is now accessible in SAP Business Application Studio via AI chat. The MDK MCP Server automatically plugs into your AI assistant and gives it real knowledge of the MDK metadata schema — not just generic code generation, but valid MDK artifacts it can reason about. That means:

  • Spin up a full MDK project from a prompt
  • Generate pages, actions, rules, i18n, services, styles — individually or together
  • Iterate on an existing project conversationally
  • Query MDK component schemas and client APIs inline via mdk-docs — no tab-switching, no docs hunting

Become an SAP MDK Explorer!
Do you have a requirement to build a mobile solution for your enterprise? Take your first steps today by following these tutorials to get started and learn more about the SAP Mobile development kit. We’re excited to see what you build—your feedback and ideas are invaluable!

Submit Improvement Requests
You can submit your improvement request here for Mobile development kit to the SAP Customer Influence site, a central place for all product improvement requests. You can browse all improvement requests, submit improvement requests, comment, vote, receive updates, and see who has voted at the SAP Customer Influence site.

“}]] 

 [[{“value”:”Dear Community,I’m happy to announce that a new release of the Mobile development kit (MDK) is now available for all SAP Build and Mobile Services customers. You can download it from the SAP Software Center, or from the community download page.The SAP Mobile Services Client version 26.9.0 is available on Google Play and Apple App stores.SAP MDK enables developers and technical business users to build cross-platform mobile applications. It allows you to build your application once, in an integrated development environment (Visual Studio Code / SAP Business Application Studio) and run it natively on Mobile (iOS & Android).  The following enhancements are available only on iOS and Android platforms:Supportability EnhancementsSupport Crash ReportingUI EnhancementsImproved Sync Error Handling for Multi-User SwitchingDisplay Attachment Title and File Size in Attachment Form CellCustom Search Icon Support for Text Input, List Picker, and Section Search Support Section page as Filter pageLiquid Glass TestingMDK Editor Updates Automatic Dependencies Checks in MDK Editor VS Code Extension From MDK Genie to Agentic Development (Applicable in SAP Business Application Studio)Support Crash ReportingWith this release, your MDK apps can now automatically capture and report crash data to SAP Mobile Services, giving administrators greater visibility into app stability issues in production. This enables teams to investigate crashes more efficiently.Key BenefitsFaster troubleshooting: Crash logs are automatically uploaded to mobile services and provide valuable diagnostic information that can help developers and administrators investigate and resolve app crashes more efficiently.User privacy and control: Crash data is uploaded only after the user has provided consent, with the consent decision stored per user and device.Mobile Services controlled configuration: Administrators can enable or disable crash reporting through the mobile services admin UI without requiring changes to the app.In-app consent management:  App developers can expose crash reporting preferences in the app settings, allowing users to view or change their consent.Improved app stability monitoring: Administrators can access crash information to better understand app stability and identify recurring issues.Client APIs: Three new client APIs allow apps to query and manage consent from within the app settings page.isCrashReportingEnabled(): Returns true when crash reporting is enabled in the mobile services and app is not in demo mode.let crashReportStatus = context.isCrashReportingEnabled();​isCurrentCrashConsentAllowed(): Returns true if user has granted consent for crash reporting.let consentAllowedStatus = context.isCurrentCrashConsentAllowed();​showCrashConsentDialog(): Programmatically displays the crash reporting consent dialog. App developers should expose the crash consent screen in the app settings so users can review or change their preference. An error apperas if crash reporting is not enabled in the mobile services or when running in demo mode.export default function CrashConsentDialog(context) {
try {
context.showCrashConsentDialog();
} catch (error) {
alert(‘Error showing crash consent dialog: ‘ + error.message);
}
}​For more information, refer to this documentation.Improved Sync Error Handling for Multi-User SwitchingWe have improved sync error handling for multi-user scenarios, particularly when a previous user leaves unresolved business data on a shared device.Previously, if a user made local changes, encountered a sync error, and logged off without resolving it, the next user could not continue using the app. On devices managed by MDM, where reinstalling the app may not be an option, this could leave the device unusable until the previous user returned to resolve the issue.By default, when offline conflict handling is not configured, the only available action is Return to Sign In Screen. The previous user must sign in again and resolve the transaction issue before another user can continue using the app.With MDK 26.9, configurable conflict handling allows the next user to resolve the previous user’s pending transactions directly from the Transaction Issue screen and continue to the app without requiring the previous user to sign in again.Key BenefitsImproved device availability: The next user can continue using the app even when the previous user is unavailable to resolve pending offline transactions.Simplified user switching: Users can resolve or discard the previous user’s pending transactions directly from the Transaction Issue screen without requiring the previous user to sign in again.Administrator control: Administrators can enable offline conflict handling and select how pending transactions should be handled.Data recovery option: When configured, a snapshot of the previous user’s pending offline data can be uploaded before the transactions are discarded, providing an option for administrator recovery.Configure Conflict Resolution in Mobile Services: To enable conflict resolution for multi-user mode:In the Mobile Services cockpit, navigate to your application.Under Shared Devices, enable Allow Upload of Pending Changes from Previous User.Enable Offline Conflict Handling in Multi-User Mode.Select the desired conflict resolution mode: Discard Pending Transactions: Discards the previous user’s pending transactions immediately.Discard Pending Transactions After Upload: Uploads a snapshot of the previous user’s offline data to the server for potential administrator recovery, and then discards the pending transactions. This requires:Enable the offline store upload policy in mobile servicesmetadata changes using OfflineOptions.MultiUserConflictHandling in the .service file//Excerpt of a .service file
“OfflineOptions”: {
“StoreParameters”: {},
“MultiUserConflictHandling”: {
“UploadEncryptionKey”: “/MyApp/Rules/GenKey.js”,
“UploadRequestQueueOnly”: true
}
},​Runtime BehaviorWhen offline conflict handling is enabled, a conflict-handling action is displayed alongside Return to Sign In Screen on the Transaction Issue screen. When the user selects the conflict-handling action, a confirmation dialog is displayed before the selected action is applied. After the user confirms:The configured conflict resolution policy is applied.The app proceeds directly to the new user’s main page without requiring the previous user to sign in.If the user cancels the confirmation dialog or selects Return to Sign In Screen:No conflict resolution is performed.The previous user can sign in again and resolve the transaction issue manually. For more information, refer to this documentation.Display Attachment Title and File Size in Attachment Form CellThe MDK Attachment Form Cell now displays the attachment title (file name) and file size, making it easier for users to identify and review files before submission. This display is automatic and no metadata configuration changes are required.  Previously, users could not see the file name or size of an attachment, making it difficult to distinguish between files or understand their size.Key BenefitsImproved file identification: Users can quickly distinguish between multiple attachments by their file name.Better file awareness: Users can see the attachment size before submission or review.Fiori UX alignment: The Attachment Form Cell experience is more consistent with standard Fiori UX expectations.Custom Search Icon Support for Text Input, List Picker, and Section Search MDK now supports custom icon configuration for TextInput (SimpleProperty), ListPicker, and Section controls, allowing app developers to replace default icons with custom images and provide a more tailored app experience.All supported icon properties can reference metadata image paths, resource images, SAP icons, and font icons.TextInput (SimpleProperty):  A new BarcodeIcon property allows developers to customize the barcode scanner button icon when AlternateInput is set to Barcode. A corresponding BarcodeIcon style class is available under Styles to customize the icon’s color, font size, and background color.//Excerpt of a page
{
“BarcodeIcon”: “sap-icon://action”,
“_Type”: “Control.Type.FormCell.SimpleProperty”,
“_Name”: “BarcodeSapIcon”,
“Caption”: “Barcode Field sap-icon://”,
“PlaceHolder”: “Scan here”,
“AlternateInput”: “Barcode”
},ListPicker and Section Search: New Icons and Styles properties are available under Search for both ListPicker and Section controls with Expandable or Persistent search.//Excerpt of a page
{
“_Type”: “Control.Type.FormCell.ListPicker”,
“_Name”: “ListPickerSapStyled”,
“AllowEmptySelection”: true,
“Caption”: “sap-icon:// (Styled)”,
“IsEditable”: true,
“Search”: {
“Icons”: {
“Search”: “sap-icon://show-edit”,
“Barcode”: “/mdk269/Images/barcode.png”,
“Clear”: “sap-icon://clear-all”,
“Styles”: {
“Search”: “SearchAndSimplePropertyIconsStylesSmall”,
“Barcode”: “SearchAndSimplePropertyIconsStylesSmall”,
“Clear”: “SearchAndSimplePropertyIconsStylesSmall”
}
},
“Placeholder”: “Search items”,
“BarcodeScanner”: true
},
“PickerItems”: [
“Apple”,
“Banana”,
“Cherry”,
“Date”,
“Elderberry”
]
},

“Search”: {
“Enabled”: true,
“Placeholder”: “Search items”,
“BarcodeScanner”: true,
“Mode”: “Persistent”,
“Icons”: {
“Search”: “sap-icon://show-edit”,
“Back”: “sap-icon://back-to-top”,
“Barcode”: “sap-icon://qr-code”,
“Clear”: “sap-icon://clear-all”
}
},​Support Section Page as Filter Page MDK now supports SectionedTable FormCellSection as a container for Filter pages, giving app developers a more structured and modern way to define filter controls while aligning with the latest recommended UI patterns.Key Benefits:Modern container structure: Use the consistent SectionedTable > FormCellSection > Form Cell Controls hierarchy, matching the rest of the application’s page structure.Future-proof implementation: FormCellContainer is soon to be deprecated; migrating to SectionedTable FormCellSection ensures long-term compatibility.Unchanged filter logic: Target paths for accessing control values and the creation of filter criteria objects remain fully compatible — no changes needed to existing filter business logic.Migration Notes:When upgrading to MDK 26.9, you need to manually migrate existing filter pages from FormCellContainer to SectionedTable FormCellSection. The following changes are required:Container definition structure: Update the page definition from FormCellContainer > Sections > Controls to SectionedTable > FormCellSection > Form Cell Controls.Container retrieval rules: Update any rules that reference the container to reflect the new SectionedTable FormCellSection structure.For more information, refer to this documentation.Automatic Dependencies Checks in MDK Editor VS Code ExtensionThe MDK Editor extension now checks for all required prerequisites the moment it activates. If anything is missing, you’re greeted with a Setup panel — not an error message.The setup experience handles everything:Missing VS Code extensions (Cloud Foundry Tools, Application Wizard) are installed with a single click using the VS Code Extensions API.@SAP/generator-mdk is installed automatically via an integrated terminal task running npm install -g @SAP/generator-mdk.CF CLI guidance is tailored to your operating system — no hunting for the right installer for Windows vs. macOS.After installation, the extension re-validates your environment automatically.A Clear Signal When You’re ReadyOnce all prerequisites are in place, the Setup panel gives you a full status summary: each prerequisite, its installed version, and whether updates are available. The “MDK Ready” checkmark in the VS Code status bar confirms your environment is good to go.The MDK Editor Setup panel showing all prerequisites validated, with version details and update status at a glance. The “MDK Ready” indicator in the status bar confirms the environment is good to go.From MDK Genie to Agentic Development (Applicable in SAP Business Application Studio) MDK MCP Server is now accessible in SAP Business Application Studio via AI chat. The MDK MCP Server automatically plugs into your AI assistant and gives it real knowledge of the MDK metadata schema — not just generic code generation, but valid MDK artifacts it can reason about. That means:Spin up a full MDK project from a promptGenerate pages, actions, rules, i18n, services, styles — individually or togetherIterate on an existing project conversationallyQuery MDK component schemas and client APIs inline via mdk-docs — no tab-switching, no docs huntingBecome an SAP MDK Explorer!Do you have a requirement to build a mobile solution for your enterprise? Take your first steps today by following these tutorials to get started and learn more about the SAP Mobile development kit. We’re excited to see what you build—your feedback and ideas are invaluable!Submit Improvement RequestsYou can submit your improvement request here for Mobile development kit to the SAP Customer Influence site, a central place for all product improvement requests. You can browse all improvement requests, submit improvement requests, comment, vote, receive updates, and see who has voted at the SAP Customer Influence site.”}]] Read More Technology Blog Posts by SAP articles 

#SAPCHANNEL

By ali

Leave a Reply