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