Skip to Content

Define a Validation Rule in an MDK App

Write a JavaScript logic to validate an email address format in an MDK app.
You will learn
  • How to write a rule to validate an UI field
jitendrakansalJitendra KansalJanuary 30, 2023
Created by
jitendrakansal
October 4, 2022
Contributors
maximilianone
jitendrakansal

When allowing end-users to make updates to data, it is important to add validation rules to verify that they are entering valid information.
If the Update action fails due to the validation rule, the application will display a validation failure message to the end-user.

MDK
  • Step 1

    You will add a rule to the Update action to run the validation before saving any data. If the validation rule is successful, the Update action will save the changes as expected. If the validation rule fails, the end-user receives the validation failure message telling them useful information so they can fix the problem before continuing.

    1. Open Customers_UpdateEntity.action by double clicking on the action in the project explorer pane.

    2. Expand the Common Action Properties and click the Create a rule icon to create a new Validation Rule.

      MDK
    3. Keep the default selection for the Object Type as Rule and Folders path.

      MDK
    4. Enter the Rule Name as EmailValidation and then click Finish.

      MDK

      You can find more details about writing a Rule.

    5. Replace the generated snippet with below code.

      JavaScript
      Copy
      export default function EmailValidation(context) {
          //The following evaluateTargetPath will retrieve the current value of the email control
          if ((context.evaluateTargetPath('#Control:FCEmail/#Value').indexOf('@')) === -1) {
              //If email value does not contain @ display a validation failure message to the end-user
              context.executeAction('/DemoSampleApp/Actions/ValidationFailure.action');
          } else {
              //If @ is present in the email value, return true to indicate validation is successful
              return true;
          }
      }
      

      This rule will handle validation if a @ symbol exists in the email address. In this validation rule, you will grab the data entered by the end-user, validate it and check for the @ symbol then return true if the email address is of a valid format or false if it is not. The returning result of the validation rule can be used in the Update action to determine whether the action succeeds or fails.

    6. Save the changes.

      The indexOf() method returns the index within the calling String object of the first occurrence of the specified value and -1, if no occurrence is found.

      In above code there is a reference to ValidationFailure.action, which doesn’t yet exist in your metadata project. You will create this action in next step.

    7. In the generated EmailValidation.js rule, double-click the red line. You will notice a bulb icon suggesting some fixes, click on it, select MDK: Create action for this reference, and click Message Action.

      MDK
    8. Provide the below information in the ValidationFailaure.action:

      Field Value
      MessageEmail address is not in the correct format recipient @ domain . domaintype
      Title Validate Email
      OKCaptionOK
      OnOK --None--
      CancelCaption leave it blank
      OnCancel --None--
      MDK
  • Step 2

    Deploy the updated application to your MDK client.

    1. Right-click Application.app and select MDK: Deploy.

      MDK
    2. Select deploy target as Mobile & Cloud.

      MDK

      You should see success message for both deployments.

      MDK

      Alternatively, you can select MDK: Redeploy in the command palette (View menu>Find Command OR press Command+Shift+p on Mac OR press Ctrl+Shift+P on Windows machine), it will perform the last deployment.

      MDK

  • Step 3

    Make sure you are choosing the right device platform tab above.

    Once you complete this tutorial you can continue with Enhance Your First MDK App with Additional Functionalities mission.


    For which example, validation rule returns false?

Back to top