- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2 weeks ago - last edited 2 weeks ago
I'm trying to convert List Collector sys_ids to user names using GlideAjax. The List Collector returns comma-separated sys_ids, which I pass to a client-callable Script Include. However, the GlideAjax response is always null.
Script include
var getwatchlistusernames = Class.create();
getwatchlistusernames.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getName: function() {
var ids = this.getParameter('sysparm_ids');
var names = [];
var gr = new GlideRecord('sys_user');
gr.addQuery('sys_id', 'IN', ids);
gr.query();
while (gr.next()) {
names.push(gr.getValue('name'));
}
return names.join(',');
},
type: 'getwatchlistusernames'
});
Catalog Client script
var ga = new GlideAjax('getwatchlistusernames');
ga.addParam('sysparm_name', 'getName');
ga.addParam('sysparm_ids', g_form.getValue('user'));
ga.getXMLAnswer(callback);
function callback(response) {
alert(response);
// g_form.setValue('short_description', response);
}
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Monday - last edited Monday
Hi @NishmithaS ,
i looked into the your both script include and catalog client script. i have made one change in script include function name and it worked in my PDI
Script include:
var getwatchlistusernames = Class.create();
getwatchlistusernames.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getNames: function() { // getName changed to getNames
var ids = this.getParameter('sysparm_ids');
var names = [];
var gr = new GlideRecord('sys_user');
gr.addQuery('sys_id', 'IN', ids);
gr.query();
while (gr.next()) {
names.push(gr.getValue('name'));
}
return names.join(',');
},
type: 'getwatchlistusernames'
});
Catalog client script:
var ga = new GlideAjax('getwatchlistusernames');
ga.addParam('sysparm_name', 'getNames');// from getName to getNames
ga.addParam('sysparm_ids', g_form.getValue('user'));
ga.getXMLAnswer(callback);
function callback(response) {
alert(response);
// g_form.setValue('short_description', response);
}
can you try this and let me know still your getting null as the resposne
Thanks,
BK
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
a week ago
Hi @NishmithaS
Try this:
1. Script include
var getwatchlistusernames = Class.create();
getwatchlistusernames.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getName: function() {
var ids = this.getParameter('sysparm_ids');
if (!ids) {
return '';
}
var names = [];
var sysIdArray = ids.split(',');
var gr = new GlideRecord('sys_user');
gr.addQuery('sys_id', 'IN', sysIdArray); //corrected here
gr.query();
while (gr.next())
{
names.push(gr.getValue('username')); //corrected here
}
return names.join(',');
},
type: 'getwatchlistusernames'
});
2. Catalog Client script
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var ga = new GlideAjax('getwatchlistusernames');
ga.addParam('sysparm_name', 'getName');
ga.addParam('sysparm_ids', g_form.getValue('user'));
ga.getXMLAnswer(callback);
}
function callback(response) {
alert(response);
if (response) {
// g_form.setValue('short_description', response);
}
}
Regards
Tanushree Maiti
ServiceNow Technical Architect
LinkedIn: https://www.linkedin.com/in/tanushreemaiti
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Monday
@NishmithaS Try Below Scripts
Script include:
Client Script
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Monday
Hi @NishmithaS
1. Please ensure the client callable is checked.
2. If your Client Script is running in a scoped application (or Global) and the Script Include is in a different scope. ServiceNow will block the call unless:
The Script Include's Accessible from field is set to All application scopes.
You can add the name to your GlideAjax call (e.g., new GlideAjax('x_abc_scope.getwatchlistusernames')).
If my response helped mark as helpful and accept the solution.