Using Script add group managers to a specific group

Indup
Tera Expert

Hi all,

There is a group called, Nike Owners. There are four more groups called Nike A, Nike B, Nike C, Nike D.

My requirement is, all the managers of the groups Nike A,B,C,D must populate in Group Members related list of the group Nike owners. Using script i want o achieve this. So should i go with display BR, or something else. Can some one give me script plz

 

Regards,

Indup

1 ACCEPTED SOLUTION

Hi,

@Indup I think this question is still not answered as per your latest comment; so please check

below comments

Are those groups already existing? if yes then currently you will have to manually add the Group Managers of  Nike A, Nike B, Nike C, Nike D to the Group Nike Owners

1) For Existing scenario -> do it manually if less group; if more groups are there then write background script

2) For real-time scenario -> below approach

For making it real-time whenever manager of any of the 4 groups changes you want it to be added and remove the older one

Please use below approach

Business Rule on Group Table

BR Condition: Name is One of those 4 and Manager Changes

find_real_file.png

After Update:

Script: It would get previous manager and current manager

query table and delete record of previous manager and create new record for current manager

var previousManager = previous.manager;

var currentManager = current.manager;

// query Group Member Table

var member = new GlideRecord('sys_user_grmember');
member.addQuery('group', current.sys_id);
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 = current.sys_id;
member1.user = currentManager;
member1.insert();

}

Mark Correct if this solves your issue and also mark 👍 Helpful if you find my response worthy based on the impact.
Thanks
Ankur

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

View solution in original post

15 REPLIES 15

Pratiksha Kalam
Kilo Sage

Hello,

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();
}
}

Modify some script according to requirement.

If answer is useful mark correct!

 

Thanks,

Pratiksha

Hi Pratiksha,

Thanks for the code. Where i have to write this code?

 

Regards,

Indup

Hello,

Try creating After business rule on 'User' table with both Insert and Update checked.

 

Thanks,

Pratiksha

Ok, Will check now