on select of group all user from same group is not map on list collector field
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-17-2023 04:17 AM
On reference type of field when group is selected then that group member should be map on list collector field it is map but only one user map not map other user what will be the issue?.
Script Include:
var checkGroupMember = Class.create();
checkGroupMember.prototype = Object.extendsObject(AbstractAjaxProcessor, {
checkMember: function() {
var arr =[];
var member = this.getParameter('sysparm_member');
var gr = new GlideRecord('sys_user_grmember');
gr.addQuery('group', member);
gr.query();
while (gr.next()) {
arr.push(gr.user);
}
return arr.toString();
},
type: 'checkGroupMember'
});
client script:
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
// var abc = g_form.getValue('group');
var gr = new GlideAjax('global.checkGroupMember');
gr.addParam('sysparm_name', 'checkMember');
gr.addParam('sysparm_member', newValue);
gr.getXMLAnswer(pop);
function pop(response) {
var answer = response.split(",");
alert(answer);
g_form.clearValue('user_add');
g_form.setValue('user_add', answer);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-17-2023 07:59 AM
while pushing into the array use toString() and it will push all the group members
Update your script as this
var checkGroupMember = Class.create();
checkGroupMember.prototype = Object.extendsObject(AbstractAjaxProcessor, {
checkMember: function() {
var arr =[];
var member = this.getParameter('sysparm_member');
var gr = new GlideRecord('sys_user_grmember');
gr.addQuery('group', member);
gr.query();
while (gr.next()) {
arr.push(gr.user.toString());
}
return arr.toString();
},
type: 'checkGroupMember'
});
Client script:
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
// var abc = g_form.getValue('group');
var gr = new GlideAjax('global.checkGroupMember');
gr.addParam('sysparm_name', 'checkMember');
gr.addParam('sysparm_member', newValue);
gr.getXMLAnswer(pop);
function pop(response) {
var answer = response;
g_form.clearValue('user_add');
g_form.setValue('user_add', answer);
}
}
If my response helped please mark it correct and close the thread so that it benefits future readers.
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-17-2023 08:07 AM
Hi,
@rmaroti it is good to use setter/getter methods.
You can like below-
arr.push(gr.getValue('user'));
Thanks and Regards,
Saurabh Gupta
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-17-2023 07:55 PM