🎓beginner⏱25 min.Mobile Development Kit ClientBeginnerIosAndroidMobileSAP Business Technology PlatformSAP Mobile ServicesSAP Build CodeSAP BuildSAP Business Application Studio
You will learn
โHow to create a customer record
โHow to store changes locally on Mobile app and sync these changes with backend
If you didn’t follow the prerequisite then You may clone an existing metadata project from the MDK Tutorial GitHub repository to start with this tutorial.
MDK
Step 1Create new page for new customer record
โ
In this step, you will create a Section page with a Form Cell Section to contain the Form Cell controls. You will add the fields that will be editable by the end-user.
Right-click the Pages folder | MDK: New Page | Section | Next.
MDK
In the Base Information step, enter the page Name as Customers_Create and click Finish to complete the page creation wizard.
MDK
Once the page opens in the page editor, click on the white area to select it’s Action Bar, and set the Caption to Create Customer.
MDK
Now, you will add the fields (like first name, last name, phone, email address & date of birth) for creating a new customer record by the end-user. In the Layout Editor, expand the Static Container group. Drag and drop Form Cell section onto the Page area.
MDK
Form Cell section is used to contain Form Cell controls in a section page.
You will now add Form Cell controls in the Form Cell section. Expand the Form Cell Controls group, drag and drop a Simple Property onto the Page area.
MDK
Drag and drop three additional Simple Property controls onto the page so you have four total controls.
MDK
Select the first Simple Property control and provide the below information:
Property
Value
Name
FCCreateFirstName
Caption
First Name
PlaceHolder
Enter Value
MDK
Select the second Simple Property control and provide the below information:
Property
Value
Name
FCCreateLastName
Caption
Last Name
PlaceHolder
Enter Value
MDK
Select the third Simple Property control and provide the below information:
Property
Value
Name
FCCreatePhone
Caption
Phone
KeyboardType
Phone
PlaceHolder
Enter Value
MDK
To streamline data entry, the keyboard displayed when editing a SimplePropertyFormCell should be appropriate for the type of content in the field. If your app asks for number, for example, it should display the phone keyboard.
Select the last Simple Property control and provide the below information:
Property
Value
Name
FCCreateEmail
Caption
Email
KeyboardType
Email
PlaceHolder
Enter Value
MDK
KeyboardType streamlines the data entry. When entering an email address, it would display the email address keyboard in mobile clients.
Drag and drop a Date Picker control onto the page area for date of birth parameter.
MDK
Provide the below information:
Property
Value
Name
FCCreateDOB
Caption
DOB
Step 2Add a cancel button on the Create Customer page
+
While creating a customer record, you may want to close the current page and cancels or interrupts any execution in process.
Now, you will add a button on the Create Customer page and set it’s onPress to CloseModalPage_Cancel.action.
Drag and drop an Action Bar Item to the upper left corner of the action bar.
Action Bar Item is a button that users can use to fire actions when pressed. You can add an Action Bar Item only to the Action Bar (at the top of the page).
MDK
In the Properties pane, click the link icon to open the Object Browser for the System Item property. Double click the Cancel type and click OK.
MDK
System Item are predefined system-supplied icon or text. Overwrites Text and Icon if specified.
Now, you will set the onPress event to CloseModalPage_Cancel.action.
In Events tab, click the dotted icon for the OnPress property to open the Object Browser. Double click the CloseModalPage_Cancel.action and click OK to set it as the OnPress Action.
MDK
Step 3Store the created data locally
+
The next step is to store newly created record locally for an offline application or send the new record directly back to the backed for online applications.
You will add an Action Bar item on the Customers_Create.page that will call an OData Create Entity action to save the record
You may want to close the page when the OData Create Entity action is successful
You may want to show a failure message if the OData Create Entity action fails to save the changes
First, add an action bar item on the Customers_Create.page.
In Customers_Create.page, drag and drop an Action Bar Item to the upper right corner of the action bar.
MDK
Click the link icon to open the object browser for the System Item property. Double-click the Save type and click OK.
Navigate to the Events tab. Click the dotted icon for the OnPress property and select the Create a rule/action.
MDK
Keep the default selection for the Object Type as Action and Folders path.
MDK
In the Template Selection, choose Data in Category | click OData Action | Next.
MDK
In the Base Information step, provide the below information:
Property
Value
Name
Customers_CreateEntity
Type
Select CreateEntity from the dropdown
Service
Select com_sap_edm_sampleservice_v4.service from the dropdown
EntitySet
Select Customers from the dropdown
MDK
Click Next.
In Property and Create Links step, uncheck City.
Since in Customer_Create.page, you defined five properties (First Name, Last Name, Phone, Email & date of birth) to be added, now in this step, you will bind them to respective UI Controls.
Check the DateOfBirth property and click the link icon to open the object browser.
Change the drop down in the object browser to Controls & ClientData, click the Current Page radio button.
In the search box start typing the control name FCCreateDOB. The list will filter down to show the matching values. Double click the Value (Value) entry under the FCCreateDOB field and click OK to set binding.
MDK
Repeat the above step for remaining properties: EmailAddress, FirstName, LastName and PhoneNumber.
MDK
Click Finish to complete the action creation process. The action editor will open with the Customers_CreateEntity.action loaded.
>You can find more details about [Create Entity Action](https://help.sap.com/doc/69c2ce3e50454264acf9cafe6c6e442c/Latest/en-US/docs-en/reference/schemadoc/Action/ODataService/CreateEntity.schema.html).
When the above OData action is executed, you may want to display messages on its success and failure behavior. For example, on its success, you may want to close the page and allow any execution to continue. On its failure, you may want to display an error.
In the `Customers_CreateEntity.action`, scroll down and expand the *Common Action Properties* section. Click the link icon to open the object browser for the *Success Action* and bind it to `CloseModalPage_Complete.action`.

Create a message action displaying error in case of the update failure. In the Customers_CreateEntity.action, click the Create a rule/action icon for the Failure Action.
In the Template Selection step, choose Message in Category | click Message Action | Next.
MDK
In the Base Information step, provide the below information:
Property
Value
Name
CreateCustomerEntityFailureMessage
Type
Select Message from the dropdown
Message
Failed to Create Customer record - {#ActionResults:Customers_CreateEntity/error}
Title
Create Customer
OKCaption
OK
OnOK
--None--
CancelCaption
leave it blank
OnCancel
--None--
MDK
Customers_CreateEntity is the Action Result value of the Customers_CreateEntity.action. This reference is used to pass the results to subsequent actions in the chain. These actions can reference the action result as needed. In this case if there is a failure, you access the error property of the action result to display the OData failure message.
This is the standard Binding Target Path (also called Dynamic Target Path) syntax used when you need to include a binding with other bindings or within a string as used in the message here.
You could exclude above expression and can just display a generic message.
Click Finish to complete the action creation process.
When Customers_CreateEntity.action gets executed successfully then CloseModalPage_Complete.action will be triggered or if Customers_CreateEntity.action fails then CreateCustomerEntityFailureMessage.action will be triggered.
Step 4Navigate to the Customer Create page
+
You will open the Customers_Create.page from the Customer List page. For this, you will add an action bar item on the List page and will link it to a navigation action. When the action bar item is pressed by the end-user that will open the Customers_Create.page.
In Customers_List.page, drag and drop an Action Bar Item to the upper right of the action bar.
MDK
Click the link icon to open the object browser for the SystemItem property. Double click the Add type and click OK.
MDK
Navigate to the Events tab. Click the dotted icon for the OnPress property and select the Create a rule/action.
MDK
Keep the default selection for the Object Type as Action and Folders path.
MDK
In the Template Selection step, choose UI in Category | click Navigation | Next.
MDK
In the Base Information step, provide the below information:
Property
Value
Name
NavToCustomers_Create
PageToOpen
Select Customers_Create.page from the dropdown
ModalPage
Select true from the dropdown
MDK
Click Finish to complete the action creation process.
Step 5Deploy the Project
+
You will now deploy the updated project to your MDK client.
Click the Deploy option in the editor’s header area, and then choose the deployment target as Mobile Services .
MDK
Step 6Run the Project
+
Make sure you are choosing the right device platform tab above.
Tap Check for Updates in the user menu on the Main page, you will see a New Version Available pop-up, tap Now.
MDK
Tap Customers, click + icon to create a new record.
MDK
Enter the values, and tap save icon. Local record gets created accordingly.
MDK
Since this is an Offline application, new entry is added to the request queue of the local store which needs to be sent or uploaded to the backend explicitly.
MDK template has added a Sync Changes option in the user menu on main page of the app to upload local changes from device to the backend and to download the latest changes from backend to the device. Actions | Service | UploadOffline.action & DownloadOffline.action.
Tap on Sync Changes in the user menu On Main page to push the local changes to the backend, a successful message will be shown once data is submitted.
MDK
Tap Check for Updates in the user menu on the Main page, you will see a New Version Available pop-up, tap Now.
MDK
Tap Customers, click + icon to create a new record.
MDK
Enter the values, and tap Save.
MDK
Local record gets created accordingly.
MDK
Since this is an Offline application, new entry is added to the request queue of the local store which needs to be sent or uploaded to the backend explicitly.
MDK template has added a Sync Changes option in the user menu on main page of the app to upload local changes from device to the backend and to download the latest changes from backend to the device. Actions | Service | UploadOffline.action & DownloadOffline.action.
Tap on Sync Changes in the user menu On Main page to push the local changes to the backend, a successful message will be shown once data is submitted.
MDK
You can cross verify if a record has been updated in the backend.
Share feedback on this tutorial or join the conversation in SAP Community.
Submit detailed feedbackDiscuss in Community
Steps
Step 1 of 6
1. Create new page for new customer record2. Add a cancel button on the Create Customer page3. Store the created data locally4. Navigate to the Customer Create page5. Deploy the Project6. Run the Project
Joule
AI Notice
Joule is an AI assistant. Generative AI may produce inaccurate, incomplete, or biased information. Always verify important details before acting on them.
Conversations are sent to SAP-hosted large language models for processing. Do not include personal data, credentials, or confidential information in your messages.
Joule's responses are based on the SAP tutorial catalog and may not reflect the latest product changes. For authoritative guidance, consult the linked tutorials and official SAP documentation.