- 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 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 05:51 AM
Hi Abhijit,
Thanks for reply,
I have used below codes,but Its not worked.
Script Include:
var GroupMembers = Class.create();
GroupMembers.prototype = Object.extendsObject(AbstractAjaxProcessor, {
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'
});
Client Script:
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);
}
}
Please check.
Thanks,
Raj
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-08-2022 06:22 AM
Hi,
Try below, I have tested it in my PDI, it is working fine.
var GroupMembers = Class.create();
GroupMembers.prototype = Object.extendsObject(AbstractAjaxProcessor, {
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 user_sys_ids;
},
type: 'GroupMembers'
});
Client Script :
Client Script:
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.getXMLAnswer(membersList);
function membersList(response) {
g_form.setValue('eu_domain', response);
}
}
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:20 AM
I am not sure,I have used the same code .
On change of assignment group,no user list is populating .
can you suggest.
Regards,
Raj