on select of group all user from same group is not map on list collector field

rmaroti
Tera Contributor

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);

7 REPLIES 7

Ankur Bawiskar
Tera Patron
Tera Patron

@rmaroti 

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.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Saurabh Gupta
Kilo Patron
Kilo Patron

Hi,
@rmaroti it is good to use setter/getter methods.
You can like below-
arr.push(gr.getValue('user'));


Thanks and Regards,

Saurabh Gupta

still using your solution I'm not getting group value I can see only  sys_id on select of group in the description.

 

Please find attached document