Add or remove member from the group

Michael51
Tera Guru

Hello All,

I have an requirement to Automate request for Add or remove member to group Item ,  we have two list collector fields 

one is for Adding members and the other one for removing members , here my challenge is sometimes if user is already included in the group we need to Auto complete the request by adding work notes as "request already exists " in the group  , need your help in understanding how we can tackle this Scenario 

 

I have following script for adding and removing members from the group for run script 

var group = current.variables.group_name;

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

var usersToRemove = current.variables.removememberlist;
 
var grp1 = new GlideRecord('sys_user_grmember');
grp1.addQuery('group',group);
grp1.addQuery('user',usersToRemove);
grp1.query();
while(grp1.next())
{
grp1.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()) {
        gs.info("getting into if loop");
        addRec.initialize();
        addRec.user = arr[i];
        addRec.group = group;
        addRec.insert();
    }
}

can you please give some suggestion how we can develop this kind of automation 

@Ankur Bawiskar @jaheerhattiwale 

25 REPLIES 25

@Michael51 

so you are removing user from those groups selected?

is it always not deleting that 1 record?

Example: if you selected Abel Tuter and selected 5 groups then there would be 5 records into sys_user_grmember

Then is it not deleting all 5 records from sys_user_grmember table?

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

@Ankur , here we select only Single group and multiple users to remove , so this has to remove corresponding entry of user from group member table related to selected group

 

I have ran the following script in Background script and this works fine , no empty record is getting appeared, it is removing everything

 

var users = ['6816f79cc0a8016401c5a33be04be441','62826bf03710200044e0bfc8bcbe5df1'];
var groupid = 'cfcbad03d711110050f5edcb9e61038f';

var seperated = users.toString().split(',');
for (var i = 0; i < seperated.length; i++){

    var gr = new GlideRecord('sys_user_grmember');
    gr.addQuery('group',groupid);
    gr.addQuery('user',seperated[i]);
    gr.query();
    while(gr.next()){
        gr.deleteMultiple();
        gs.addInfoMessage("user records got deleted")
    }
}

Hello @Ankur Bawiskar, did you get any chance to look into recent script? Which i shared

@Michael51 

try this

var users = ['6816f79cc0a8016401c5a33be04be441','62826bf03710200044e0bfc8bcbe5df1'];
var groupid = 'cfcbad03d711110050f5edcb9e61038f';

var gr = new GlideRecord('sys_user_grmember');
gr.addQuery('group',groupid);
gr.addQuery('user','IN', users.toString());
gr.query();
gr.deleteMultiple();
Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

@Ankur Bawiskar , above script is working fine for me already when I manually pass the sys id and do 

but i want this script in dynamic as I get remove members list from variable

 

this below script is not working

variable

 

variable

 

var group = current.variables.group_name;
gs.log("group name is: " + group);

var usersToAdd = current.variables.addmemberlist;
var usersToRemove = current.variables.removememberlist;
gs.log("users to be removed: " + usersToRemove);

var arra = usersToRemove.toString().split(',');

for (var k = 0; k < arra.length; k++) {
gs.log("entered into for loop");
var grp1 = new GlideRecord('sys_user_grmember');
grp1.addQuery('group', group);
grp1.addQuery('user', "IN", arra[k]);
gs.log("user information is: " + arra[k]);
grp1.query();
if (grp1.hasNext()) { // Check if there are records to delete
while (grp1.next()) {
grp1.deleteMultiple();
}

can you please help me in making change’s