- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-08-2022 05:28 AM
Hi All,
How to add group members in list collector variable,after selecting the group name.
I have used below code but ,It is not working for me.Can you please correct my code.
Script Include:
var GroupMembers = Class.create();
GroupMembers.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getMembers: function() {
//var user_array = [];
var grpID = this.getParameter('sysparm_gid');
var grpMembers = new GlideRecord('sys_user_grmember');
grpMembers.addQuery('group', grpID);
grpMembers.query();
var nArray = [];
var vArray = [];
while (grpMembers.next()) {
nArray.push(grpMembers.user.getDisplayValue().toString());
vArray.push(grpMembers.user.toString());
}
var retValue = nArray.toString() + "," + vArray.toString();
return retValue;
},
type: 'GroupMembers'
});
Client Script:
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
//g_form.setVisible("eu_domain",'');
var ga=new GlideRecord('GroupMembers');
ga.addParam('sysparm_name','getMembers');
ga.addParam('sysparm_gid',newValue);
ga.getXML(membersList);
function membersList(response){
var answer=response.responseXML.documentElement.getAttribute("answer");
var memArray=answer.split(",");
var memNames = memArray[0];
var memValues = memArray[1];
alert(memArray+"msg");
g_form.setValue('eu_domain',memValues);
}
//Type appropriate comment here, and begin script below
}
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-08-2022 05:38 AM
Hi,
There were few mistakes in your code like you used GlideRecord instead of GlideAjax, I have corrected all.
Please try below,
getMembers: function() {
var user_sys_ids = "";
var grpID = this.getParameter('sysparm_gid');
var grpMembers = new GlideRecord('sys_user_grmember');
grpMembers.addQuery('group', grpID);
grpMembers.query();
while (grpMembers.next()) {
if(user_sys_ids=="")
user_sys_ids=grpMembers.user.toString();
}
else{
user_sys_ids=user_sys_ids+","+grpMembers.user.toString();
}
}
return JSON.stringify(user_sys_ids);
},
type: 'GroupMembers'
});
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
//g_form.setVisible("eu_domain",'');
var ga=new GlideAjax('GroupMembers');
ga.addParam('sysparm_name','getMembers');
ga.addParam('sysparm_gid',newValue);
ga.getXML(membersList);
function membersList(response){
var answer=JSON.parse(response.responseXML.documentElement.getAttribute("answer"));
g_form.setValue('eu_domain',answer);
}
}
Let me know if you have any further queries.
Please mark this as Correct or Helpful if it helps.
Thanks and Regards,
Abhijit
Regards,
Abhijit
ServiceNow MVP
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-08-2022 07:38 AM
Regards,
Abhijit
ServiceNow MVP
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-08-2022 07:26 AM
check my article on how to populate list collector based on another variable; it works in native + portal
try to enhance it as per your requirement
Dynamically set list collector on change of variable
If it helps please mark it helpful and also bookmark it
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-08-2022 07:30 AM
When I use alert it showing sysid's
how to convert to names
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-08-2022 08:32 AM
list collector should refer to sys_user since your script include would return group sys_ids
If you follow my article it will work for both native + portal
Just enhance to show group members.
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader