- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-31-2023 01:40 AM
Hi,
I have to create a custom related list, where Manager Hierarchy (Manager > Manager's manager and so on) should be displayed.
Relationships:
My Code:
(function refineQuery(current, parent) {
var employeeID = parent.u_reference_1;
var managerID = employeeID.manager;
var level = 0;
gs.addInfoMessage("ManageID: " + managerID);
while (managerID != null && managerID != '') {
current.addQuery("sys_id", managerID);
employeeID = managerID;
managerID = employeeID.manager;
gs.addInfoMessage("ManageID: " + managerID);
}
})(current, parent);
Output:
All the manager's sys_ids are getting displayed (gs command). However, nothing is getting added to the related list. What am I missing here?
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-31-2023 02:12 AM - edited 03-31-2023 02:17 AM
@vidhya_mouli - Please try the below code and let us know the result. Your code's while loop simply adds AND condition of manager's sysid which is causing the problem.
(function refineQuery(current, parent) {
var employeeID = parent.u_reference_1;
var managerID = employeeID.manager;
var level = 0;
var managerStsids = getManagerIDs(employeeID, managerID);
current.addEncodedQuery("sys_idIN" + managerStsids);
function getManagerIDs(employeeID, managerID) {
var managers = [];
while (managerID != null && managerID != '') {
if (managerID != null & managerID != '') {
managers.push(managerID.toString());
}
employeeID = managerID;
managerID = employeeID.manager;
}
gs.addInfoMessage("ManageIDs are : " + managers.join());
return managers.join();
}
})(current, parent);
Thanks & Regards,
Vasanth
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-31-2023 02:12 AM - edited 03-31-2023 02:17 AM
@vidhya_mouli - Please try the below code and let us know the result. Your code's while loop simply adds AND condition of manager's sysid which is causing the problem.
(function refineQuery(current, parent) {
var employeeID = parent.u_reference_1;
var managerID = employeeID.manager;
var level = 0;
var managerStsids = getManagerIDs(employeeID, managerID);
current.addEncodedQuery("sys_idIN" + managerStsids);
function getManagerIDs(employeeID, managerID) {
var managers = [];
while (managerID != null && managerID != '') {
if (managerID != null & managerID != '') {
managers.push(managerID.toString());
}
employeeID = managerID;
managerID = employeeID.manager;
}
gs.addInfoMessage("ManageIDs are : " + managers.join());
return managers.join();
}
})(current, parent);
Thanks & Regards,
Vasanth
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-31-2023 02:59 AM
Thank you. it worked.