The CreatorCon Call for Content is officially open! Get started here.

Need to look up all employees under a Manager's hierarchy

Melissa Bennett
Tera Expert

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