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 Enhancements
UI EnhancementsMDK Editor Updates
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.
- 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.
- isCurrentCrashConsentAllowed(): Returns true if user has granted consent for crash reporting.
- 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.
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.
- 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 services
- metadata changes using OfflineOptions.MultiUserConflictHandling in the .service file
- Enable the offline store upload policy in mobile services
“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.
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.
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.
{
“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.
{
“_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.
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.
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.
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.