Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Decision table call via script is throwing exception error

ShAn21
Tera Guru

Hi Team,

I have created a decision table and want to call it via script include and client script. Script below

Script:
var lang = this.getParameter('sysparm_lang').toString(); //passed from client script
//var lang= 'Java';
var dt = new sn_dt.DecisionTableAPI();
var input = new Object();
input.u_language = lang;
var response = dt.getDecision('b7d1c06647832110251f8657536d43af', input);
return response.result_elements.u_type;

 

This works perfectly fine when I hardcode the value in input.u_language. Eg: input.u_language = "Java";

But when I try to pass it dynamically from the value passed from client script it  shows the below error. 

 

errorJavaException: java.lang.IllegalArgumentException: objectToMap: invalid type class org.mozilla.javascript.NativeJavaObject for object property u_language

 

Any help here is appreciated.

 

Thanks

 

1 ACCEPTED SOLUTION

Karan Chhabra6
Mega Sage

Hi @ShAn21,

 

this.getParameter() returns an object and using toString() won't work in this case, rather use String();

Please use the below script, it should work fine

 

var lang = this.getParameter('sysparm_lang'); //passed from client script
lang = String(lang);
//var lang= 'Java';
var dt = new sn_dt.DecisionTableAPI();
var input = new Object();
input.u_language = lang;
var response = dt.getDecision('b7d1c06647832110251f8657536d43af', input);
return response.result_elements.u_type;

 

 

https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB0826476

 

If my answer has helped with your question, please mark it as correct and helpful

 

Thanks!

View solution in original post

1 REPLY 1

Karan Chhabra6
Mega Sage

Hi @ShAn21,

 

this.getParameter() returns an object and using toString() won't work in this case, rather use String();

Please use the below script, it should work fine

 

var lang = this.getParameter('sysparm_lang'); //passed from client script
lang = String(lang);
//var lang= 'Java';
var dt = new sn_dt.DecisionTableAPI();
var input = new Object();
input.u_language = lang;
var response = dt.getDecision('b7d1c06647832110251f8657536d43af', input);
return response.result_elements.u_type;

 

 

https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB0826476

 

If my answer has helped with your question, please mark it as correct and helpful

 

Thanks!