diff --git a/Specialized Areas/Fix scripts/Replace inactive group managers with group members/script.js b/Specialized Areas/Fix scripts/Replace inactive group managers with group members/script.js new file mode 100644 index 0000000000..d9c2d894c9 --- /dev/null +++ b/Specialized Areas/Fix scripts/Replace inactive group managers with group members/script.js @@ -0,0 +1,31 @@ +/* +Check if manager of group is inactive. +Replace the manager with oldest group member. +*/ +function replacewithActiveManager() { + var inactiveMgrGrp = new GlideRecord('sys_user_group'); // Glide group Table + inactiveMgrGrp.addEncodedQuery('manager.active=false'); // get groups with inactive managers + inactiveMgrGrp.query(); + while (inactiveMgrGrp.next()) { + inactiveMgrGrp.setValue('manager', getOlderGroupMember(inactiveMgrGrp).sys_id); // set inactive manager with active group member. + inactiveMgrGrp.autoSysFields(false); + inactiveMgrGrp.update(); + gs.info("Group " + inactiveMgrGrp.name + " manager changed to " + getOlderGroupMember(inactiveMgrGrp).name); + } + + /* + input: group, type = string. + Function return the older group member user record + */ + function getOlderGroupMember(grp) { + var getUser = new GlideRecord('sys_user_grmember'); // Glide group member table + getUser.addEncodedQuery('user.active=true^group=' + grp.getUniqueValue()); // encoded query to get group member. + getUser.orderByAsc('sys_created_on'); // get oldest added group member + getUser.query(); + if (getUser.next()) + return getUser.user.getRefRecord(); + else + gs.info("Group " + grp.name + " does not have any active user"); // incase there is no active user in group + } +} +replacewithActiveManager(); // main function to replace inactive manager. diff --git a/Specialized Areas/Fix scripts/updateMultipleRecords/readme.md b/Specialized Areas/Fix scripts/updateMultipleRecords/readme.md new file mode 100644 index 0000000000..fac705ce21 --- /dev/null +++ b/Specialized Areas/Fix scripts/updateMultipleRecords/readme.md @@ -0,0 +1,8 @@ +************* +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. + +Logs: If no active members are there in group //gs.info("Group " + grp.name + " does not have any active user"); + +After manager is replaced : gs.info("Group " + inactiveMgrGrp.name + " manager changed to " + getOlderGroupMember(inactiveMgrGrp).name); + +*************