Difference between revisions of "SmartCheck Validation"

From SmartWiki
Jump to: navigation, search
Line 53: Line 53:
 
# Under the Configuration menu click on '''[[Global_Settings|Global Settings]]'''.
 
# Under the Configuration menu click on '''[[Global_Settings|Global Settings]]'''.
 
# Click on the '''Organizations and Users''' tab
 
# Click on the '''Organizations and Users''' tab
# Add a check mark to the '''SmartCheck Validation''' box under ''System Configuration''.
+
# Add a check mark to the '''SmartCheck Validation''' link in the '''Int User & Ext Contact Settings''' section.
 
# Click on '''New Validation'''
 
# Click on '''New Validation'''
 
# Using the '''Code Builder''' or '''Source''' tabs, enter your validation details.
 
# Using the '''Code Builder''' or '''Source''' tabs, enter your validation details.

Revision as of 12:51, 7 December 2015

Template:UnderConstruction

Overview

SmartCheck Validation enables your SmartSimple system to perform server-side field validations ensuring that applications and form inputs meets your requirements.
These validations are performed on “submit” actions and returns failed field entries with your specified error messages. These messages are displayed at the top of the form and on-click will take the user to referenced field.

SmartCheck Validation Structure

Each SmartCheck Validation statement shares the following structure:


  • If Statement (thing to be compared)
  • Result (true or false result)
  • Message (to be displayed on failed result)


In the example below:

if(ssParseNum(form.getStr("cf_Store Value")) > 5)
    {result.isPassed=false;
    result.addMsg('Some message here');
   }

Recognize the If, Result, Message structure:

if(ssParseNum(form.getStr("cf_Store Value")) > 5)

Check If the contents the of the form value (stored in the custom field named cf_Store_Value) is greater than 5,

{result.isPassed=false;

If the statement is false, set the value of the Result to "false" and print the custom message below.

result.addMsg('Some message here');
}

Enabling SmartCheck Validation

SmartCheck Validation can be enabled system-wide, for Users and Companies, or on a UTA-by-UTA basis.

Before you can enable SmartCheck Validation on your system you’ll need Global Administrator privileges.


To enable the feature system-wide:

  1. Under the Configuration menu click on Global Settings.
  2. Add a check mark to the Activate SmartCheck Validation box in the System Configuration section.


To enable the feature for Users and Companies:

  1. Under the Configuration menu click on Global Settings.
  2. Click on the Organizations and Users tab
  3. Add a check mark to the SmartCheck Validation link in the Int User & Ext Contact Settings section.
  4. Click on New Validation
  5. Using the Code Builder or Source tabs, enter your validation details.
  6. Click Save when done


To enable the feature on a specific UTA:

  1. Navigate to the desired UTA-by-UTA
  2. Click on Settings
  3. Under the L1, L2, or L3 click on the SmartCheck Validation link under the Properties menu.
  4. Click on New Validation
  5. Using the Code Builder or Source tabs, enter your validation details.
  6. Click Save when done


Examples

Application Name field black

if(form.getStr("sf_Application Name") == "")
    {result.isPassed=false;
    result.addMsg('Application name cannot be blank');
    }

Requested Amount less than X

if(ssParseNum(form.getStr("cf_Requested Amount")) < "5000")
    {result.isPassed=false;
    result.addMsg('cf_@Requested Amount.id@','Field test message');
    }

Number value greater than 5

if(ssParseNum(form.getStr("cf_Store Value")) > 5)
    {result.isPassed=false;
    result.addMsg('Some message here');
    }

Single field upload field has no file

if("@Single File Field.filename@" == "")
    {result.isPassed=false;
    result.addMsg('Please upload a file here');
    }

Multi file upload field has no files

if(ssParseNum("@level1.MUlti upload.numoffiles@") < 1)
    {result.isPassed=false;
    result.addMsg('Please upload at least one file');    }

Comparing two custom date fields with separate custom time fields storing 24 hour time

if(form.getStr("cf_Event Start Date")+' '+form.getStr("cf_Event Start Time") >= form.getStr("cf_Event End Date")+' '+form.getStr("cf_Event End Time"))
  {result.isPassed=false;
  result.addMsg('cf_@Event End Time.id@','End Time must take place after the Start Time');  } 

To include other scripts into a SmartCheck script:

//@include(AnotherSmartCheckScriptName)@