Add/remove users from group using BR

Jenjoe12
Tera Contributor

I have a requirement to add/remove manager from a group when the group manager field changes
I tried the below code through BR
Run :after
condition: manager changes

var previousManager = previous.manager;

var currentManager = current.manager;

var myGroup = 'sys id of the group';

// query Group Member Table

var member = new GlideRecord('sys_user_grmember');
member.addQuery('group', myGroup);
member.addQuery('user', previousManager);
member.query();
if(member.next()){

member.deleteRecord(); // this will delete old manager

// now you need to add new manager to this group as member

var member1 = new GlideRecord('sys_user_grmember');
member1.initialize();
member1.group = myGroup;
member1.user = currentManager;
member1.insert();

}


I noticed the code is working when adding but while removing it is only removing the user from the record and not deleting the record in sys_user_grmember table. Please help

3 REPLIES 3

Brad Bowman
Kilo Patron
Kilo Patron

Log previousManager right after declaring and and assigning the value to see if that has the expected value, or if it does when changing the trigger to before Update.

Eshwar Reddy
Kilo Sage

Hi @Jenjoe12 

Add logging to see if the member.deleteRecord() is being reached:

 

gs.info("Deleting member: " + previousManager);

Thanks
Esh

Runjay Patel
Giga Sage

Hi @Jenjoe12 ,

 

I have checked your code in background script and its working fine.

But you need to add a condition before deleting to check existence of previous manager, it does exists then it will through an error.

 

Also check any other BR is preventing to delete the record in "sys_user_grmember" table.

 

var previousManager = 'd64b9bd783095210a9589780deaad3c6';

var currentManager = '62826bf03710200044e0bfc8bcbe5df1'; 

var myGroup = '679434f053231300e321ddeeff7b12d8';

// query Group Member Table

var member = new GlideRecord('sys_user_grmember');
member.addQuery('group', myGroup);
member.addQuery('user', previousManager);
member.query();
if(member.next()){

member.deleteRecord(); // this will delete old manager

// now you need to add new manager to this group as member

var member1 = new GlideRecord('sys_user_grmember');
member1.initialize();
member1.group = myGroup;
member1.user = currentManager;
member1.insert();

}

 

Please Mark Correct if this solves your query and also mark Helpful if you find my response worthy based on the impact.