Name

sn_rf.RFScriptingEvaluator

Description

Evaluation script for Scripting Evaluation type

Script

var RFScriptingEvaluator = Class.create();
RFScriptingEvaluator.prototype = Object.extendsObject(sn_rf.RFEvaluatorSNC, {
  category: 'rf_evaluation_script', // DO NOT REMOVE THIS LINE!

  getEvaluationOutputSchema: function(param) {
      var rfLogger = new RFLogger('RFScriptingEvaluator - getEvaluationOutputSchema');
      var scriptIncludeSysId = param.inputs.script_include;
      var scriptGr = new GlideRecord(RFConstants.tables.SYS_SCRIPT_INCLUDE);
      if (scriptGr.get(scriptIncludeSysId)) {
          var apiName = scriptGr.getValue(RFConstants.fields.SYS_SCRIPT_INCLUDE_API_NAME);
          var funcName = RFConstants.evaluatorFunction.GET_EVALUATION_OUTPUT_SCHEMA;

          var script = RFConstants.evaluatorVariable.RESULT +
              ' = new ' + apiName + '().' + funcName + '();';

          var inputs = {};
          var res = RFUtils.evaluateScript(script, inputs, RFConstants.evaluatorVariable.RESULT);
          if (res.status == RFConstants.EXCEPTION) {
              var errorMessage = res.error.message;
              rfLogger.logError('Error executing script ' + script + '. Error: ' + errorMessage);
              return {
                  'status': RFConstants.ERROR,
                  'errorCode': 40001,
                  'errorMessage': errorMessage
              };
          }
          return res;
      }
      var errorDetails = new RFExceptionManager('INVALID_SCRIPT_INCLUDE');
      rfLogger.logError('Script include ' + scriptIncludeSysId + ' is invalid');
      return {
          'status': RFConstants.ERROR,
          'errorCode': errorDetails.getCode(),
          'errorMessage': errorDetails.getMessage()
      };
  },

  getEvaluationOutputs: function(param) {
      var rfLogger = new RFLogger('RFScriptingEvaluator - getEvaluationOutputs');
      var scriptIncludeSysId = param.inputs.script_include;
      var scriptGr = new GlideRecord(RFConstants.tables.SYS_SCRIPT_INCLUDE);
      if (scriptGr.get(scriptIncludeSysId)) {
          var apiName = scriptGr.getValue(RFConstants.fields.SYS_SCRIPT_INCLUDE_API_NAME);
          var funcName = RFConstants.evaluatorFunction.GET_EVALUATION_OUTPUTS;

          var script = RFConstants.evaluatorVariable.RESULT +
              ' = new ' + apiName + '().' + funcName +
              '(' + RFConstants.evaluatorVariable.PARAM + ');';

          var inputs = {};
          var trimmedParam = {
              contextRecord: param.contextRecord
          };
          inputs[RFConstants.evaluatorVariable.PARAM] = trimmedParam;
          var res = RFUtils.evaluateScript(script, inputs, RFConstants.evaluatorVariable.RESULT);
          if (res.status == RFConstants.EXCEPTION) {
              var errorMessage = res.error.message;
              rfLogger.logError('Error executing script ' + script + '. Error: ' + errorMessage);
              return {
                  'status': RFConstants.ERROR,
                  'errorCode': 40001,
                  'errorMessage': errorMessage
              };
          }
          return res;
      }
      var errorDetails = new RFExceptionManager('INVALID_SCRIPT_INCLUDE');
      rfLogger.logError('Script include ' + scriptIncludeSysId + ' is invalid');
      return {
          'status': RFConstants.ERROR,
          'errorCode': errorDetails.getCode(),
          'errorMessage': errorDetails.getMessage()
      };
  },

  type: 'RFScriptingEvaluator'
});

Sys ID

1a88fc67531330107234ddeeff7b125c

Offical Documentation

Official Docs: