Need to look up all employees under a Manager's hierarchy
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-14-2023 08:49 AM
Use Case: Our HRReps support everyone within a leader's heirarchy and we need the HRRep designated on each user record. I am creating a FLOW to populate the field on new users and upon leadership changes.
(EX: HR Bob supports everyone in John Smith's heirarchy, so anyone who's Manager is John Smith or Manager's Manager is John Smith or Manager's Manager's Manager is John Smith, etc...)
I found a Script Include for getManagerEmployees on another forum, but I believe they were wanting to show all employees reporting to the logged in user. Can someone help out?
Script Include that is Client Callable in Global:
var getManagerEmployees = Class.create();
GetManagerEmployees.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getEmployees: function(user) {
var userList = [];
var maxLevel = 10; //Adjust for levels you want to recurse
var level = 1;
var grUser1 = new GlideRecord('sys_user');
user = user === undefined ? gs.getUserID() : gs.getUser().getUserByID(user).getID();
if (grUser1.get(user)) {
this._recurseUsers(grUser1.sys_id.toString(), level, maxLevel, userList);
}
return userList.join(',');
},
_recurseUsers: function(manager, level, maxLevel, userList) {
var grUser2 = new GlideRecord('sys_user');
grUser2.addQuery('manager', manager);
grUser2.addActiveQuery();
grUser2.query();
while (grUser2.next()) {
userList.push(grUser2.sys_id.toString());
if (level + 1 <= maxLevel) {
this._recurseUsers(grUser2.sys_id.toString(), level + 1, maxLevel, userList);
}
}
return userList;
},
type: 'getManagerEmployees'
});
0 REPLIES 0