Add/remove users from group using BR
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-21-2024 06:07 AM
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-21-2024 06:15 AM - edited ‎10-21-2024 06:23 AM
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-21-2024 06:17 AM
Hi @Jenjoe12
Add logging to see if the member.deleteRecord() is being reached:
gs.info("Deleting member: " + previousManager);
Thanks
Esh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-21-2024 06:23 AM
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.