Skip to content

Commit cbc92bc

Browse files
Replace inactive group managers (#2001)
* Create Replace inactive group managers with group members * Update README.md * Create readme.md * Update readme.md * Update Replace inactive group managers with group members * Update README.md * Create Replace Inactive managers with active members * Delete Specialized Areas/Fix scripts/Replace Inactive managers with active members * Update Replace inactive group managers with group members * Update readme.md * Rename Replace inactive group managers with group members to script.js --------- Co-authored-by: Ivan Betev <ivan.betev@outlook.com>
1 parent c898a9e commit cbc92bc

File tree

2 files changed

+39
-0
lines changed
  • Specialized Areas/Fix scripts

2 files changed

+39
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/*
2+
Check if manager of group is inactive.
3+
Replace the manager with oldest group member.
4+
*/
5+
function replacewithActiveManager() {
6+
var inactiveMgrGrp = new GlideRecord('sys_user_group'); // Glide group Table
7+
inactiveMgrGrp.addEncodedQuery('manager.active=false'); // get groups with inactive managers
8+
inactiveMgrGrp.query();
9+
while (inactiveMgrGrp.next()) {
10+
inactiveMgrGrp.setValue('manager', getOlderGroupMember(inactiveMgrGrp).sys_id); // set inactive manager with active group member.
11+
inactiveMgrGrp.autoSysFields(false);
12+
inactiveMgrGrp.update();
13+
gs.info("Group " + inactiveMgrGrp.name + " manager changed to " + getOlderGroupMember(inactiveMgrGrp).name);
14+
}
15+
16+
/*
17+
input: group, type = string.
18+
Function return the older group member user record
19+
*/
20+
function getOlderGroupMember(grp) {
21+
var getUser = new GlideRecord('sys_user_grmember'); // Glide group member table
22+
getUser.addEncodedQuery('user.active=true^group=' + grp.getUniqueValue()); // encoded query to get group member.
23+
getUser.orderByAsc('sys_created_on'); // get oldest added group member
24+
getUser.query();
25+
if (getUser.next())
26+
return getUser.user.getRefRecord();
27+
else
28+
gs.info("Group " + grp.name + " does not have any active user"); // incase there is no active user in group
29+
}
30+
}
31+
replacewithActiveManager(); // main function to replace inactive manager.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
*************
2+
This script will query the group table and look for groups with inactive members. The script will replace the inactive manager with the oldest active member of the group.
3+
4+
Logs: If no active members are there in group //gs.info("Group " + grp.name + " does not have any active user");
5+
6+
After manager is replaced : gs.info("Group " + inactiveMgrGrp.name + " manager changed to " + getOlderGroupMember(inactiveMgrGrp).name);
7+
8+
*************

0 commit comments

Comments
 (0)