- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-18-2024 03:38 AM
Hi Team,
I have a variable that needs to reference data from the user table.
In this case, I need to implement a reference qualifier. If the currently logged-in user is a manager, the variable should populate with the users managed by that person. Additionally, the variable should include the users managed by the logged-in manager's direct reports (ex:manger(3users)>> manger of manger(4users) = 7 Usrs need to populate)
For example:
- If a manager (X) has 3 direct reports, the variable should return 3 users.
- If another manager (Y) has 3 direct reports, and one of those users has a manager (Z) who oversees 4 users, the variable should return a total of 7 users (3 users from Y + 4 users from Z).
Thank you in advance
Sivananda reddy
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-18-2024 05:51 AM - edited ‎12-18-2024 05:53 AM
use this and pass the logged in user sysId
var UserUtils = Class.create();
UserUtils.prototype = {
initialize: function() {},
getAllReportees: function(managerSysId) {
var allReports = [];
// Start collecting from the given manager
this.collectReports(managerSysId, allReports);
return allReports.toString();
},
// Recursive function to collect reports
collectReports: function(managerId, allReports) {
var directReports = this.getDirectReports(managerId);
while (directReports.next()) {
allReports.push(directReports.sys_id.toString());
this.collectReports(directReports.sys_id, allReports); // Recursively collect indirect reports
}
},
// Function to get direct reports
getDirectReports: function(managerId) {
var gr = new GlideRecord('sys_user');
gr.addQuery('manager', managerId);
gr.query();
return gr;
},
type: 'UserUtils'
};
use this in ref qualifier
javascript: 'sys_idIN' + new UserUtils().getAllReportees(gs.getUserID());
If my response helped please mark it correct and close the thread so that it benefits future readers.
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-18-2024 04:47 AM
Hi @Ankur Bawiskar,
Could you please help on this requriment
I have a variable that needs to reference data from the user table.
In this case, I need to implement a reference qualifier. If the currently logged-in user is a manager, the variable should populate with the users managed by that person. Additionally, the variable should include the users managed by the logged-in manager's direct reports (ex:manger(3users)>> manger of manger(4users) = 7 Usrs need to populate)
For example:
- If a manager (X) has 3 direct reports, the variable should return 3 users.
- If another manager (Y) has 3 direct reports, and one of those users has a manager (Z) who oversees 4 users, the variable should return a total of 7 users (3 users from Y + 4 users from Z).
Thank you in advance
Sivananda reddy
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-18-2024 04:58 AM
When you say variable... are you talking about a variable in an existing script?
Or are you talking about a service catalog variable that contains a glide list or something?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-18-2024 05:09 AM
Hi @Uncle Rob
Thank you for your response.
I am talking about catalog variable. The variable type is reference (sys_user table).
Thank you
Siva
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-18-2024 05:11 AM
A reference can only hold one reference at a time. What you describe sounds like its holding multiple references.