- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-11-2018 07:39 AM
I have a checkbox on the user table to indicate whether or not a user is a manager. I would like a business rule to maintain a group for managers by adding and deleting users from the group based on wether or not this box is checked.
The add script seems to be working correctly. But the delete script is deleting users from any group they are a member of. Here is the faulty script:
var gt = new GlideRecord('sys_user_grmember');
gt.addQuery('user',current.sys_id);
gt.addQuery('656d28f81386570031f25e7f3244b0be','sys_id_if_group');
gt.query();
while(gt.next())
{
gt.deleteRecord();
}
Help me to understand what I am doing wrong!
Thank you so much!
Daniel
Solved! Go to Solution.
- Labels:
-
Operational Intelligence

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-11-2018 11:31 AM
Daniel,
Try with the below-edited one and let me know if it worked.
if(current.checkbox_name == true)
{
var grp = new GlideRecord('sys_user_grmember');
grp.addQuery('group','sysid_of_managers_group');
grp.addQuery('user',current.sys_id);
grp.query();
if(!grp.next())
{
grp.initialize();
grp.group = sysid_of_managers_group;
grp.user = current.sys_id;
grp.insert();
}}
else
{
var grp1 = new GlideRecord('sys_user_grmember');
grp1.addQuery('group','sysid_of_managers_group');
grp1.addQuery('user',current.sys_id);
grp1.query();
if(grp1.next())
{
grp1.deleteRecord();
}
}
Thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-11-2018 08:20 AM
Can you explain about the below line.
gt.addQuery('656d28f81386570031f25e7f3244b0be','sys_id_if_group');

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-11-2018 09:31 AM
Hi Daniel,
Try creating After business rule on 'User' table with both Insert and Update checked. This should work.
if(current.checkbox_name == true)
{
var grp = new GlideRecord('sys_user_grmember');
grp.addQuery('group','sysid_of_managers_group');
grp.addQuery('user',current.sys_id);
grp.query();
if(gr.next())
{
return;
}
else
{
grp.initialize();
grp.group = sysid_of_managers_group;
grp.user = current.sys_id;
grp.insert();
}}
else
{
var grp1 = new GlideRecord('sys_user_grmember');
grp1.addQuery('group','sysid_of_managers_group');
grp1.addQuery('user',current.sys_id);
grp1.query();
if(gr1.next())
{
grp1.deleteRecord();
}
else
{
return;
}}
}
Mark the answer as Correct/Helpful based on its impact.
Thanks,
Archana
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-11-2018 11:03 AM
That looks good Thanks! -But I'm getting an invalid return at line 9
this is what it looks like after modification:
if(current.u_manager_check == true)
{
var grp = new GlideRecord('sys_user_grmember');
grp.addQuery('group','656d28f81386570031f25e7f3244b0be');
grp.addQuery('user',current.sys_id);
grp.query();
if(gr.next())
{
return;
}
else
{
grp.initialize();
grp.group = '656d28f81386570031f25e7f3244b0be';
grp.user = current.sys_id;
grp.insert();
}}
else
{
var grp1 = new GlideRecord('sys_user_grmember');
grp1.addQuery('group','656d28f81386570031f25e7f3244b0be');
grp1.addQuery('user',current.sys_id);
grp1.query();
if(gr1.next())
{
grp1.deleteRecord();
}
else
{
return;
}
}
but I'm getting an invalid return at line 9...
thoughts?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-11-2018 11:31 AM
Daniel,
Try with the below-edited one and let me know if it worked.
if(current.checkbox_name == true)
{
var grp = new GlideRecord('sys_user_grmember');
grp.addQuery('group','sysid_of_managers_group');
grp.addQuery('user',current.sys_id);
grp.query();
if(!grp.next())
{
grp.initialize();
grp.group = sysid_of_managers_group;
grp.user = current.sys_id;
grp.insert();
}}
else
{
var grp1 = new GlideRecord('sys_user_grmember');
grp1.addQuery('group','sysid_of_managers_group');
grp1.addQuery('user',current.sys_id);
grp1.query();
if(grp1.next())
{
grp1.deleteRecord();
}
}
Thanks