How to exclude group members from Users list?

prasannakumard
Tera Guru

Hi Team,

 

Please provide me your valuable solution for below query:

We have two fields on Catalog form:

Group - Reference to Group table

Add Users: Glide List Reference to Sys_user table

When ever I'm selecting group from Group field, need to exclude those group members from Sys_user table, and this field should show only Not member of the above selected group. 

Please provide me your valuable suggestions/scripts to fulfill this requirement.

Thanks & Regards,

Prasanna Kumar

@Ankur Bawiskar, Please suggest me if any script include related to above requirement.

1 ACCEPTED SOLUTION

swathisarang98
Giga Sage
Giga Sage

Hi @prasannakumard ,

 

You can create a reference qualifier,

swathisarang98_1-1716213371339.png

 

 

javascript: new getNotGroupMem().getMem(current.variables.select_group); //change it to your variable 'Group' name  

 

script include:

swathisarang98_0-1716213334791.png

 

var getNotGroupMem = Class.create();
getNotGroupMem.prototype = {
    initialize: function() {},

    getMem: function(sysID) {

		var gr = new GlideRecord('sys_user_grmember');
		gr.addQuery('group',sysID);
		var arr = [];
		gr.query();
		while(gr.next()){
			arr.push(gr.getValue('user'));
		}
		gs.info('arr' + arr);
		var groupmember = new GlideRecord('sys_user');
		groupmember.addQuery('sys_id','NOT IN',arr.toString());
		var notMem =[];
		groupmember.query();
		while(groupmember.next()){
			gs.info('inside user while');
			notMem.push(groupmember.getValue('sys_id'));
		}
		gs.info('not mem' + notMem);
			return 'sys_idIN' + notMem;
    },

    type: 'getNotGroupMem'
};

 

 

Please mark this comment as Correct Answer/Helpful if it helped you.

Regards,

Swathi Sarang

View solution in original post

3 REPLIES 3

Sandeep Rajput
Tera Patron
Tera Patron

@prasannakumard You need to use a Reference qualifier on Add Users field which will return the sys_ids of those users which are not part of the group mentioned in the group field. For more information on the reference qualifier please refer to https://docs.servicenow.com/bundle/washingtondc-platform-administration/page/script/server-scripting...

 

Hope this helps.

@Sandeep Rajput Yes, You are correct,  but, My need is to how we exclude the group users from Adding user glide list. Please provide me if any related script include is available. 

Thanks & Regards,

Prasanna Kumar

swathisarang98
Giga Sage
Giga Sage

Hi @prasannakumard ,

 

You can create a reference qualifier,

swathisarang98_1-1716213371339.png

 

 

javascript: new getNotGroupMem().getMem(current.variables.select_group); //change it to your variable 'Group' name  

 

script include:

swathisarang98_0-1716213334791.png

 

var getNotGroupMem = Class.create();
getNotGroupMem.prototype = {
    initialize: function() {},

    getMem: function(sysID) {

		var gr = new GlideRecord('sys_user_grmember');
		gr.addQuery('group',sysID);
		var arr = [];
		gr.query();
		while(gr.next()){
			arr.push(gr.getValue('user'));
		}
		gs.info('arr' + arr);
		var groupmember = new GlideRecord('sys_user');
		groupmember.addQuery('sys_id','NOT IN',arr.toString());
		var notMem =[];
		groupmember.query();
		while(groupmember.next()){
			gs.info('inside user while');
			notMem.push(groupmember.getValue('sys_id'));
		}
		gs.info('not mem' + notMem);
			return 'sys_idIN' + notMem;
    },

    type: 'getNotGroupMem'
};

 

 

Please mark this comment as Correct Answer/Helpful if it helped you.

Regards,

Swathi Sarang