Script Validators API

Example validator code

Below is sample code that shows how to can use the input and how data should be returned:

function callService(context) {
    let input1 = context.getFirstParameter("input1");
    if (input1 === "api") {
        return [{
                'key': 'pl.error',
                'parameters': [input1, "parameter {0} is invalid"]
            }
            ];
    } else if (input1 != null && input1 !== "") {
        return [{
                'key': 'pl.error',
                'parameters': [input1, "another hardcoded parameter"]
            }];
    } else {
        return [];
    }
}

Input to the script validator

As input (parameter context in the above code) there is an object that provides the following methods:

  • List<String> getParameters(final String name) - retrieves a specific list from the input data map,

  • String getFirstParameter(final String name) - retrieves the first element from a specific list in the input data map or returns the value "null",

  • String getFirstParameter(final String name, final String defaultIfEmpty) - retrieves the first element from a specific list in the input data map, and if it is missing or empty returns the value "defaultIfEmpty",

  • Map<String, List<String>> getInputParameters() - returns the entire input data map that it stores,

  • String isVisible(final String id) - retrieves information whether the component with the specified id is visible,

  • String getValue(final String id) - retrieves the value of the component (also a session variable) with the specified id,

  • String getData(final String id, final String attribute) - retrieves the value of a specific attribute for the component with the specified id (NOTE! The attributes that can be retrieved depend on the component),

  • List<Map<String, String>> callService(String name, Map<String, List<String>> input) - allows calling a ServiceProxy,

  • ValidatorOutput validate(String name, Map<String, List<String>> input) - allows calling a validator,

Example of retrieving a list (e.g. for fields in a repeatable section):

Output from the validator

  1. List of maps: an array of objects containing the fields "key" and "parameters".

  2. Optional fields:

    1. type - the validator type is set to INLINE by default, another option is POPUP,

    2. parameters - variables that we can send to the script validation message

    3. attributes - for example POPUP attributes adding a 'next' button and changing e.g. the value of a component after pressing 'next':

for example attributes for row validation in GesTable:

Sample INLINE validation - GesTable rows

Logging

Logging of input data is automatic.

Manual logging should comply with the description in Logging in ScriptCode

Throwing business exceptions

It is possible to throw a business exception from within the script. Sample code:

Possible methods that can be called on the 'context' object:

Examples of validators:

demoEmailValidator, demoPESELValidator, demoIDCardValidator, demoMinMaxValidator

Last updated

Was this helpful?