GlideScopedEvaluator - Global

  • Release version: Yokohama
  • Updated January 30, 2025
  • 2 minutes to read
  • The GlideScopedEvaluator API allows you to evaluate scripts in a GlideRecord field from both scoped and global server scripts.

    This API evaluates scripts within the script field type. The scope of the record defines the scope of the script.

    GlideScopedEvaluator - GlideScopedEvaluator()

    Instantiates a GlideScopedEvaluator object.

    Table 1. Parameters
    Name Type Description
    None

    Scoped equivalent

    To use the GlideScopedEvaluator() method in a scoped application, use the corresponding scoped method: GlideScopedEvaluator().

    GlideScopedEvaluator - evaluateScript(GlideRecord grObj, String scriptField, Object variables)

    Evaluates a script from a GlideRecord field.

    Table 2. Parameters
    Name Type Description
    grObj GlideRecord The GlideRecord containing a script expression.
    scriptField String (Optional) The name of the field containing the script expression.
    variables Object (Optional) A map of variables with name-value pairs. These variables are available to the script during execution of this method.
    Table 3. Returns
    Type Description
    Object The result of the script execution.
    //For this example, we created a table: "x_app_table" with two columns: "short_description", "test_script"
    // "test_script" will store the script to be evaluated by GlideScopedEvaluator.
    var now_GR = new GlideRecord('x_app_table');
    now_GR.short_description = 'Testing GlideScopedEvaluator';
    now_GR.test_script = "gs.getUser().getName() + ' says ' + greeting; ";
    now_GR.insert();
    
    //setup variables to be used by the script
    var vars = {'greeting' : 'hello'};
    
    //Evaluate the script from the field
    var evaluator = new GlideScopedEvaluator();
    gs.info(evaluator.evaluateScript(now_GR, 'test_script', vars));
    
    // Now retrieve the result
    evaluator.evaluateScript(gr, 'u_test_script', null);
    gs.info(evaluator.getVariable('result'));
    Output:
    admin says hello

    Scoped equivalent

    To use the evaluateScript() method in a scoped application, use the corresponding scoped method: evaluateScript().

    GlideScopedEvaluator - getVariable(String name)

    Returns a variable from a GlideScopedEvaluator object.

    Table 4. Parameters
    Name Type Description
    name String The name of the variable.
    Table 5. Returns
    Type Description
    Object The value of the specified variable.
    //setting up a record that contains the script to be executed.
    var now_GR = new GlideRecord('global'); 
    now_GR.u_short_description = 'Calculate Addition';  
    now_GR.u_test_script = "result = x + y"; 
    evaluator.evaluateScript(now_GR, "script")
    now_GR.insert(); 
     
    var evaluator = new GlideScopedEvaluator();
    evaluator.putVariable('x', 100);
    evaluator.putVariable('y', 200);
    evaluator.putVariable('result', null);
    evaluator.evaluateScript(now_GR, "script")
    now_GR.insert();
    Output:
    300

    Scoped equivalent

    To use the getVariable() method in a scoped application, use the corresponding scoped method: getVariable().

    GlideScopedEvaluator - putVariable(String name, Object value)

    Puts a variable into the GlideScopedEvaluator object. These variables are available to the script that this GlideScopedEvaluator object runs.

    Table 6. Parameters
    Name Type Description
    name String The name of the variable.
    value Object The value of the variable.
    Table 7. Returns
    Type Description
    void
    //setting up a record that contains the script to be executed.
    var now_GR = new GlideRecord('u_global_table'); 
    now_GR.u_short_description = 'Calculate Addition';  
    now_GR.u_test_script = "result = x + y";
    evaluator.evaluateScript(now_GR, "script") 
    now_GR.insert(); 
     
    var evaluator = new GlideScopedEvaluator();
    evaluator.putVariable('x', 100);
    evaluator.putVariable('y', 200);
    evaluator.putVariable('result', null);
    evaluator.evaluateScript(now_GR, "script")
    now_GR.insert();
    Output:
    300

    Scoped equivalent

    To use the putVariable() method in a scoped application, use the corresponding scoped method: putVariable().