- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-04-2024 09:58 PM
When trying yo publish the Automated Scripted Factor , then getting the Error :" Script validation failed with the error: Not a number. "
This is my code below :
/*************************************************************************************/
/* 1. Use the predefined variables from the Variables field.
/* 2. You can define your own script variables within the script itself. For example, var x = 1;
/* 3. Factor response must be set to variable result.score;
/*************************************************************************************/
function getFactorResponseValue(factorSysId, assessmentId, assessmentType) {
var gr_resp = new GlideRecord("sn_risk_advanced_risk_assessment_instance_response");
gr_resp.addQuery("assessment_instance_id", assessmentId);
gr_resp.addQuery("factor", factorSysId);
gr_resp.addQuery("assessment_type", assessmentType);
gr_resp.query();
if (gr_resp.next()) {
return gr_resp.factor_response;
}
}
try {
/***Start of Custom Code. Please write your scoring formula below. */
gs.info("TEst final rahul"+typeof responseId+" id "+responseId);
var ram_factors = global.JSON.parse(gs.getProperty('sn_risk_advanced.ram.factors'));
var gr_asmt = new GlideRecord("sn_risk_advanced_risk_assessment_instance_response");
if (gr_asmt.get(responseId)) {
var instanceId = gr_asmt.assessment_instance_id.toString();
var factorValue = parseInt(getFactorResponseValue(ram_factors.financial_impact, instanceId, '1'));
if(factorValue>=1)
result.score = factorValue;
else
result.score = 0;
}
/***End of Custom Code. Do not modify anything below. */
if (isNaN(result.score)) {
throw 'Not a number.';
} else if (result.score == Infinity) {
throw 'Divide by zero error.';
}
} catch (ex) {
result.error = ex;
}
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-04-2024 10:20 PM
Hi Rahul,
Try this
/*************************************************************************************/
/* 1. Use the predefined variables from the Variables field.
/* 2. You can define your own script variables within the script itself. For example, var x = 1;
/* 3. Factor response must be set to variable result.score;
/*************************************************************************************/
function getFactorResponseValue(factorSysId, assessmentId, assessmentType) {
var gr_resp = new GlideRecord("sn_risk_advanced_risk_assessment_instance_response");
gr_resp.addQuery("assessment_instance_id", assessmentId);
gr_resp.addQuery("factor", factorSysId);
gr_resp.addQuery("assessment_type", assessmentType);
gr_resp.query();
if (gr_resp.next()) {
return gr_resp.factor_response;
}
}
try {
/***Start of Custom Code. Please write your scoring formula below. */
gs.info("TEst final rahul" + typeof responseId + " id " + responseId);
var ram_factors = global.JSON.parse(gs.getProperty('sn_risk_advanced.ram.factors'));
var gr_asmt = new GlideRecord("sn_risk_advanced_risk_assessment_instance_response");
if (gr_asmt.get(responseId)) {
var instanceId = gr_asmt.assessment_instance_id.toString();
var factorValue = parseInt(getFactorResponseValue(ram_factors.financial_impact, instanceId, '1'));
if (factorValue >= 1)
result.score = factorValue;
else
result.score = 0;
if (isNaN(result.score)) {
throw 'Not a number.';
} else if (result.score == Infinity) {
throw 'Divide by zero error.';
}
}
/***End of Custom Code. Do not modify anything below. */
} catch (ex) {
result.error = ex;
}
Above works. but it is up to you how to handle proper exception handling.
Thanks,
Naveen

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-04-2024 10:20 PM
Hi Rahul,
Try this
/*************************************************************************************/
/* 1. Use the predefined variables from the Variables field.
/* 2. You can define your own script variables within the script itself. For example, var x = 1;
/* 3. Factor response must be set to variable result.score;
/*************************************************************************************/
function getFactorResponseValue(factorSysId, assessmentId, assessmentType) {
var gr_resp = new GlideRecord("sn_risk_advanced_risk_assessment_instance_response");
gr_resp.addQuery("assessment_instance_id", assessmentId);
gr_resp.addQuery("factor", factorSysId);
gr_resp.addQuery("assessment_type", assessmentType);
gr_resp.query();
if (gr_resp.next()) {
return gr_resp.factor_response;
}
}
try {
/***Start of Custom Code. Please write your scoring formula below. */
gs.info("TEst final rahul" + typeof responseId + " id " + responseId);
var ram_factors = global.JSON.parse(gs.getProperty('sn_risk_advanced.ram.factors'));
var gr_asmt = new GlideRecord("sn_risk_advanced_risk_assessment_instance_response");
if (gr_asmt.get(responseId)) {
var instanceId = gr_asmt.assessment_instance_id.toString();
var factorValue = parseInt(getFactorResponseValue(ram_factors.financial_impact, instanceId, '1'));
if (factorValue >= 1)
result.score = factorValue;
else
result.score = 0;
if (isNaN(result.score)) {
throw 'Not a number.';
} else if (result.score == Infinity) {
throw 'Divide by zero error.';
}
}
/***End of Custom Code. Do not modify anything below. */
} catch (ex) {
result.error = ex;
}
Above works. but it is up to you how to handle proper exception handling.
Thanks,
Naveen
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-04-2024 10:27 PM
Than you @Naveen Kumar4 . It helps , but I didn't understand what change did you make . Could you please explain me ?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-04-2024 11:08 PM
Moved below code inside if
if (isNaN(result.score)) {
throw 'Not a number.';
} else if (result.score == Infinity) {
throw 'Divide by zero error.';
}