- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-30-2023 01:28 AM
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
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-30-2023 01:37 AM - edited ‎05-30-2023 01:38 AM
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!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-30-2023 01:37 AM - edited ‎05-30-2023 01:38 AM
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!