Add or remove multiple users from the group

Lakshmi56
Tera Contributor

Requirement is manager of a particular group should be able to add multiple users to the selected group or remove multiple users from the selected group using catalog item.

when manager submits the request, users in "Add members to group" should be added and

users in "Remove members from group" should be removed from the group.

what should be the script in workflow("run Script").

find_real_file.png

find_real_file.png

1 ACCEPTED SOLUTION

Hi,

update as this and test

var usersToAdd = current.variables.add_users; // give correct variable name here
var usersToRemove = current.variables.remove_users;  // give correct variable name here

var group = current.variables.group;  // give correct variable name here

var rec = new GlideRecord('sys_user_grmember');
rec.addQuery("group", group);
rec.addQuery("user", "IN", usersToRemove.toString());
rec.query();
rec.deleteMultiple();

var arr = usersToAdd.toString().split(',');

for(var i=0;i<arr.length;i++){
	var addRec = new GlideRecord('sys_user_grmember');
	addRec.addQuery("user", arr[i]);
	addRec.addQuery("group", group);
	addRec.query();
	if(!addRec.hasNext()){
		addRec.initialize();
		addRec.user = arr[i];
		addRec.group = group;
		addRec.insert();
	}
}

Regards
Ankur

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

View solution in original post

25 REPLIES 25

Ankur Bawiskar
Tera Patron
Tera Patron

Hi,

should be simple enough

what did you start with?

Regards
Ankur

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

Hi,

should be something like this

var usersToAdd = current.variables.add_users; // give correct variable name here
var usersToRemove = current.variables.remove_users;  // give correct variable name here

var group = current.variables.group;  // give correct variable name here

var rec = new GlideRecord('sys_user_grmember');
rec.addQuery("group", group);
rec.addQuery("user", "IN", usersToRemove.toString());
rec.query();
rec.deleteMultiple();

var arr = usersToAdd.split(',');

for(var i in arr){
	var addRec = new GlideRecord('sys_user_grmember');
	addRec.addQuery("user", arr[i]);
	addRec.addQuery("group", group);
	addRec.query();
	if(!addRec.hasNext()){
		addRec.initialize();
		addRec.user = arr[i];
		addRec.group = group;
		addRec.insert();
	}
}

Regards
Ankur

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

Hi,

It's recommended to use deleteMultiple() for faster deletion

It's recommended to first check while adding the user if that user is not already part of the group.

Regards
Ankur

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

Hi @Ankur Bawiskar 

Tried the script.

removing users from group is working but users in "Add members to group" are not getting added into the selected group.