Skip to content

Instantly share code, notes, and snippets.

@nfreeze
Last active June 6, 2018 18:05
Show Gist options
  • Select an option

  • Save nfreeze/a9803d7f6049aa814d08de31eb80ee95 to your computer and use it in GitHub Desktop.

Select an option

Save nfreeze/a9803d7f6049aa814d08de31eb80ee95 to your computer and use it in GitHub Desktop.
UI Script helper for making GlideAjax calls in ServiceNow and returning JSON
//UI Script
function callFunctionJSON(className, fnName, params, callback){
var cl = new GlideAjax(className);
cl.addParam('sysparm_name', fnName);
if (params){
Object.keys(params).forEach(function(k){
cl.addParam('sysparm_' + k, params[k]);
});
}
cl.getXMLAnswer(function(resp){
callback(JSON.parse(resp));
});
}
//example usage:
//Script Include:
var EasyGliderTest = Class.create();
EasyGliderTest.prototype = Object.extendsObject(AbstractAjaxProcessor, {
findUsersByName: function(){
var userName = this.getParameter('sysparm_username');
var users = new GlideRecord('sys_user');
users.addQuery('name','CONTAINS', userName);
users.query();
var resp = [];
while (users.next()){
resp.push({
name: users.getDisplayValue(),
id: users.getValue('sys_id')
});
}
return JSON.stringify(resp);
},
type: 'EasyGliderTest'
});
//UI Action or elsewhere
callFunctionJSON('EasyGliderTest', 'findUsersByName',{'username':'Bridget'}, function(users){
console.log(users)
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment