Dear Community,
I am 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, and also available on the community Download page.
The SAP Mobile Services Client has been updated to version 25.9.0 on both the Google Play Store and the Apple App Store.
SAP Mobile Development Kit 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 (SAP Business Application Studio / VSCode extension) and run it natively on Mobile (Android & iOS).
Below UI enhancements are available only on iOS and Android platforms:
Support Date Range Selection in Calendar Control
MDK now supports date range selection in the Calendar Section control, in addition to single-date selection. The date range selection displays the calendar in a month-view format and allows multiple months to be shown. Users can scroll vertically through the calendar months. Use this option to enable the selection of a continuous date range.
The first date selected becomes the start date of the range.The second date selected becomes the end date of the range.
//excerpt of an MDK page
{
“Height”: 0,
“EventLoadRange”: 1,
“OnSelectedDateRangeChange”: “/MDK2509/Rules/Calendar/OnSelectedDateRangeChange.js”,
“_Type”: “Section.Type.Calendar”,
“_Name”: “Calendar”,
“Header”: {
“_Type”: “SectionCommon.Type.Header”,
“_Name”: “SectionCommonTypeHeader0”,
“Caption”: “Caption”,
“Items”: [{
“_Type”: “SectionHeaderItem.Type.Label”,
“_Name”: “SectionHeaderItemTypeLabel0”,
“Title”: “Range Selection”
}]
},
“CalendarType”: “DateRange”,
“StartDayOfWeek”: “Sun”,
“IsPersistentSelection”: true
},
Additional Features:
OnSelectedDateRangeChange event: This event is triggered when the selected date range is changed.getSelectedDateRange / setSelectedDateRange APIs: These APIs allow you to get or set selected date range programmatically via CalendarProxy.
Platform Behavior
iOS:
To modify the selected range, tap any selected date within the range. That date becomes the new end date, and all later dates are deselected.To clear the selection, tap outside the selected range anywhere in the calendar view.
Android:
Tapping any date—whether within or outside the selected range—will select that date.
Date Range Selection in Calendar Control on iOS and Android
For more information, refer to the Calendar documentation.
Support Event Indicators in Calendar Control
MDK now supports identifying special events or statuses directly on the calendar. This feature helps users to quickly spot important dates and plan more effectively. Indicators can have customizable appearances and can be assigned statically (via metadata) or dynamically (at runtime), providing an efficient way to manage and view calendar events.
//excerpt of an MDK page
{
“_Type”: “Section.Type.Calendar”,
“_Name”: “Calendar”,
“CalendarType”: “Month”,
“StartDayOfWeek”: “Sun”,
“IsPersistentSelection”: true,
“Height”: 0,
“EventLoadRange”: 1,
“Indicators”: [{
“_Name”: “StartDateIndicator”,
“Icon”: “sap-icon://begin”,
“Styles”: {
“Icon”: “BlueIndicator”
},
“Title”: “Start Date”
}, {
“_Name”: “DueDateIndicator”,
“Icon”: “sap-icon://project-definition-triangle-2”,
“Styles”: {
“Icon”: “RedIndicator”
},
“Title”: “Due Date”
}],
“Events”: “/MDK2509/Rules/Calendar/GetEventData.js”
}
Event Indicator in Calendar Control on iOS and Android
For more information, refer to the Event Indicator documentation.
Support Read-Only State in FormCell Attachment Control
MDK now supports restricting attachment management within a FormCell Attachment control. When disabled, the control automatically hides the Add button as well as the Remove (or delete) option for each attachment.
This behavior is controlled via the IsEditable property in the metadata, which accepts a boolean value.
“IsEditable”: true
You can control this dynamically at runtime using the setEditable() and getEditable() APIs in a rule.
formcell.setEditable(true)
editable = formcell.getEditable()
Support Attachment Limit in FormCell Attachment Control
//excerpt of an MDK page
{
“_Type”: “Control.Type.FormCell.Attachment”,
“_Name”: “InitialLimits”,
“IsEditable”: true,
“MaxAttachments”: 2,
“MaxFileSize”: 1,
“AttachmentActionType”: [“AddPhoto”, “TakePhoto”, “SelectFile”],
“AttachmentTitle”: “Initial Values (%d)”
},Maximum Attachment Count: You can now configure FormCell Attachment control to restrict how many attachments a user can upload. Once the specified limit is reached, the control disables the Add button to prevent further uploads.
In metadata, configure the maximum limit using the MaxAttachments property.”MaxAttachments”: 4
Note:
If the property is not configured—or is set to zero or a negative value—no limit is enforced by default. Platform behavior: iOS: The limit is applied directly to the native file picker, which prevents additional file selection once the maximum is reached.Android: The native file picker does not restrict selection. Users may select more files than allowed, but only the first N attachments (where N is the configured limit) are retained after confirmation.
At runtime, you can set or query the limit using the APIs (setMaxAttachments and getMaxAttachments .
attachment.setMaxAttachments(4);
maxAttachments = attachment.getMaxAttachments();
Support Required Field Indicators for FormCell Controls
This feature allows developers to add a Mandatory Fields Indicator to FormCell controls, indicating that the field must be filled out.
Note: This feature does not enforce the user to fill out the form cell—it only provides visual indicator that the field is required.
By default, the indicator is a red asterisk (*) placed at the end of the caption. Developers can customize this indicator by specifying a different character in the metadata using the RequiredIndicator property.
Only a single character is allowed for customization.If more than one character is defined, the system will revert to using the default indicator. Additionally, the appearance of the indicator can be styled through metadata.
//excerpt of an MDK page
{
“Value”: “Enter Date”,
“_Type”: “Control.Type.FormCell.DatePicker”,
“_Name”: “fcDatePicker”,
“RequiredIndicator”: true,
“Caption”: “Date Picker”,
“Mode”: “Datetime”
},
The form cells that support this feature include:
Attachment Form Cell
DatePicker Form CellDurationPicker Form CellInlineSignatureCapture Form CellListPicker Form CellNote Form CellSignatureCapture Form CellSimpleProperty Form Cell
For more information, see this documentation.
Introduce Additional Properties in Timeline Cell Control
With this release, MDK now supports displaying additional text properties—such as StatusText, SubstatusText, and Subattribute—on the right side of the timeline cell.
“StatusText”: “Status1”
“SubstatusText”: “Status2”,
“Subattribute”: “Subattribute”,
For more information, see this documentation.
Support Viewing Password-Protected PDFs in Native File Viewer (Android only)
MDK now supports viewing password-protected PDF files in the native file viewer on Android.
Fiori Dialog box when opening a password protected PDF on Android
Enable Nested Scrolling on SectionExtension (Android only)
In case you’re using a Section Extension control for a custom extension implementation and the height of the extension area cannot display the full content, you can use the new IsScrollable property in the Section Extension control to enable nested scrolling within the extension view. The default setting is false.
Become and 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!
Dear Community,I am 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, and also available on the community Download page.The SAP Mobile Services Client has been updated to version 25.9.0 on both the Google Play Store and the Apple App Store.SAP Mobile Development Kit 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 (SAP Business Application Studio / VSCode extension) and run it natively on Mobile (Android & iOS). Below UI enhancements are available only on iOS and Android platforms:Support Date Range Selection in Calendar Control MDK now supports date range selection in the Calendar Section control, in addition to single-date selection. The date range selection displays the calendar in a month-view format and allows multiple months to be shown. Users can scroll vertically through the calendar months. Use this option to enable the selection of a continuous date range.The first date selected becomes the start date of the range.The second date selected becomes the end date of the range.//excerpt of an MDK page
{
“Height”: 0,
“EventLoadRange”: 1,
“OnSelectedDateRangeChange”: “/MDK2509/Rules/Calendar/OnSelectedDateRangeChange.js”,
“_Type”: “Section.Type.Calendar”,
“_Name”: “Calendar”,
“Header”: {
“_Type”: “SectionCommon.Type.Header”,
“_Name”: “SectionCommonTypeHeader0”,
“Caption”: “Caption”,
“Items”: [{
“_Type”: “SectionHeaderItem.Type.Label”,
“_Name”: “SectionHeaderItemTypeLabel0”,
“Title”: “Range Selection”
}]
},
“CalendarType”: “DateRange”,
“StartDayOfWeek”: “Sun”,
“IsPersistentSelection”: true
},Additional Features: OnSelectedDateRangeChange event: This event is triggered when the selected date range is changed.getSelectedDateRange / setSelectedDateRange APIs: These APIs allow you to get or set selected date range programmatically via CalendarProxy.Platform BehavioriOS:To modify the selected range, tap any selected date within the range. That date becomes the new end date, and all later dates are deselected.To clear the selection, tap outside the selected range anywhere in the calendar view.Android:Tapping any date—whether within or outside the selected range—will select that date.Date Range Selection in Calendar Control on iOS and AndroidFor more information, refer to the Calendar documentation.Support Event Indicators in Calendar ControlMDK now supports identifying special events or statuses directly on the calendar. This feature helps users to quickly spot important dates and plan more effectively. Indicators can have customizable appearances and can be assigned statically (via metadata) or dynamically (at runtime), providing an efficient way to manage and view calendar events.//excerpt of an MDK page
{
“_Type”: “Section.Type.Calendar”,
“_Name”: “Calendar”,
“CalendarType”: “Month”,
“StartDayOfWeek”: “Sun”,
“IsPersistentSelection”: true,
“Height”: 0,
“EventLoadRange”: 1,
“Indicators”: [{
“_Name”: “StartDateIndicator”,
“Icon”: “sap-icon://begin”,
“Styles”: {
“Icon”: “BlueIndicator”
},
“Title”: “Start Date”
}, {
“_Name”: “DueDateIndicator”,
“Icon”: “sap-icon://project-definition-triangle-2”,
“Styles”: {
“Icon”: “RedIndicator”
},
“Title”: “Due Date”
}],
“Events”: “/MDK2509/Rules/Calendar/GetEventData.js”
}Event Indicator in Calendar Control on iOS and Android For more information, refer to the Event Indicator documentation.Support Read-Only State in FormCell Attachment Control MDK now supports restricting attachment management within a FormCell Attachment control. When disabled, the control automatically hides the Add button as well as the Remove (or delete) option for each attachment. This behavior is controlled via the IsEditable property in the metadata, which accepts a boolean value.”IsEditable”: trueYou can control this dynamically at runtime using the setEditable() and getEditable() APIs in a rule.formcell.setEditable(true)
editable = formcell.getEditable()Support Attachment Limit in FormCell Attachment ControlMaximum File Size: You can also configure the maximum file size (in MB) allowed for each attachment added to the FormCell Attachment control. If not specified, or set to a value less than or equal to 0, no file size limit is enforced.//excerpt of an MDK page
{
“_Type”: “Control.Type.FormCell.Attachment”,
“_Name”: “InitialLimits”,
“IsEditable”: true,
“MaxAttachments”: 2,
“MaxFileSize”: 1,
“AttachmentActionType”: [“AddPhoto”, “TakePhoto”, “SelectFile”],
“AttachmentTitle”: “Initial Values (%d)”
},Maximum Attachment Count: You can now configure FormCell Attachment control to restrict how many attachments a user can upload. Once the specified limit is reached, the control disables the Add button to prevent further uploads.In metadata, configure the maximum limit using the MaxAttachments property.”MaxAttachments”: 4Note:If the property is not configured—or is set to zero or a negative value—no limit is enforced by default. Platform behavior: iOS: The limit is applied directly to the native file picker, which prevents additional file selection once the maximum is reached.Android: The native file picker does not restrict selection. Users may select more files than allowed, but only the first N attachments (where N is the configured limit) are retained after confirmation. At runtime, you can set or query the limit using the APIs (setMaxAttachments and getMaxAttachments . attachment.setMaxAttachments(4);
maxAttachments = attachment.getMaxAttachments();Support Required Field Indicators for FormCell Controls This feature allows developers to add a Mandatory Fields Indicator to FormCell controls, indicating that the field must be filled out.Note: This feature does not enforce the user to fill out the form cell—it only provides visual indicator that the field is required.By default, the indicator is a red asterisk (*) placed at the end of the caption. Developers can customize this indicator by specifying a different character in the metadata using the RequiredIndicator property.Only a single character is allowed for customization.If more than one character is defined, the system will revert to using the default indicator. Additionally, the appearance of the indicator can be styled through metadata.//excerpt of an MDK page
{
“Value”: “Enter Date”,
“_Type”: “Control.Type.FormCell.DatePicker”,
“_Name”: “fcDatePicker”,
“RequiredIndicator”: true,
“Caption”: “Date Picker”,
“Mode”: “Datetime”
},The form cells that support this feature include:Attachment Form CellDatePicker Form CellDurationPicker Form CellInlineSignatureCapture Form CellListPicker Form CellNote Form CellSignatureCapture Form CellSimpleProperty Form CellFor more information, see this documentation. Introduce Additional Properties in Timeline Cell ControlWith this release, MDK now supports displaying additional text properties—such as StatusText, SubstatusText, and Subattribute—on the right side of the timeline cell. “StatusText”: “Status1”
“SubstatusText”: “Status2”,
“Subattribute”: “Subattribute”,For more information, see this documentation. Support Viewing Password-Protected PDFs in Native File Viewer (Android only)MDK now supports viewing password-protected PDF files in the native file viewer on Android.Fiori Dialog box when opening a password protected PDF on AndroidEnable Nested Scrolling on SectionExtension (Android only)In case you’re using a Section Extension control for a custom extension implementation and the height of the extension area cannot display the full content, you can use the new IsScrollable property in the Section Extension control to enable nested scrolling within the extension view. The default setting is false.Become and 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! Read More Technology Blog Posts by SAP articles
#SAP
#SAPTechnologyblog