Find your people. Pick a challenge. Ship something real. The CreatorCon Hackathon is coming to the Community Pavilion for one epic night. Every skill level, every role welcome. Join us on May 5th and learn more here.

How to use GlideScriptEvaluator to remove eval() method from the existing scripts?

nirwan_ritik
Tera Contributor
 
1st Script:
       
var response1 = r.execute();
        var responseBody1 = response1.getBody();
        var httpStatus1 = response1.getStatusCode();
        var ans = (JSON) ? JSON.parse(responseBody1) : eval(responseBody1);
        for (var i = 0; i < ans.length; i++) {
            if (ans[i].usr_username == userID) {
                str[j] = ans[i].app_pro_title.replace(/_|\-/, " ") + '-' + ans[i].app_number;

                j++;
            }
         }
 
2nd Script:
                var par = [];
                for (var i=levelValue; i < gr.getValue("hierarchy_level"); i++) {
                    par.push(relationalColumn);
                }
                eval("var p = gr."+par.join("."));

how to remove these eval() executions and replace them with GlideScriptEvaluator. 
 Kindly help me regarding this 🙂
2 REPLIES 2

Anand Kumar P
Tera Patron

Hi @nirwan_ritik ,

Creating an object for GlideScriptEvaluator you can use as below mentioned

var response1 = r.execute();
var responseBody1 = response1.getBody();
var httpStatus1 = response1.getStatusCode();
var scriptEvaluator = new GlideScriptEvaluator();
var ans = (JSON) ? JSON.parse(responseBody1) : scriptEvaluator.evaluateString(responseBody1);
for (var i = 0; i < ans.length; i++) {
    if (ans[i].usr_username == userID) {
        str[j] = ans[i].app_pro_title.replace(/_|\-/, " ") + '-' + ans[i].app_number;
        j++;
    }
}
var par = [];
for (var i = levelValue; i < gr.getValue("hierarchy_level"); i++) {
    par.push(relationalColumn);
}
var scriptEvaluator = new GlideScriptEvaluator();
var script = "var p = gr." + par.join(".");
scriptEvaluator.evaluateString(script);

https://www.servicenow.com/community/developer-articles/introduction-to-glidescopedevaluator-api-eva... 

Please mark it as solution proposed and helpful if its serves your purpose.

Thanks,

Anand



nirwan_ritik
Tera Contributor

Hi Anand, 

Thanks for the quick reply. I will execute this in my lower instances. I'll mark the solution helpful post execution. Will revert to you if I see any issues. 
Thanks again 🙂