Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Set a single group Team Leads to match the set of Team Members for that group

Set the GroupName to the group you wish to modify, and then run this as a background script.

Code Block
var groupName='INF Unix Systems';
// set groupName to the group where you want to synchronize team leads to be the same
// as the set of all members of the group
// this is especially useful for CTS STC groups
var gr1 = new GlideRecord('sys_user_group');
gr1.addQuery('name',groupName);
gr1.query();
while ( gr1.next() ) {
 gs.log("group name: "+ gr1.name + " and group full name: " + gr1.u_full_name + " and sys_id: " + gr1.sys_id);
 gs.log("ORIGINAL group u_team_leads: " + gr1.u_team_leads);

 var leadsString='';
 var gr2 = new GlideRecord('sys_user_grmember');
 gr2.addQuery('group',gr1.sys_id);
 gr2.query();
 while ( gr2.next() ) {
//  gs.log("user sys_id is: " + gr2.user);
  if ( leadsString.length > 0 ) {
   leadsString+=',';
  }
  leadsString+=gr2.user;
 }
 gs.log("PROPOSED group leads: " + leadsString);
 
 var gr3 = new GlideRecord('sys_user_group');
 gr3.addQuery('name',groupName);
 gr3.query();
 while (gr3.next()){
  gr3.u_team_leads = leadsString;
  gr3.update();
 }

 var gr4 = new GlideRecord('sys_user_group');
 gr4.addQuery('name',groupName);
 gr4.query();
 while (gr4.next()){
  gs.log("UPDATED group u_team_leads: " + gr4.u_team_leads);
 }
}