- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-25-2023 04:45 PM
Hello,
I need to find the "active" department that users are part of. I tried the following code but the answer is null. Could someone help me ?
var deptArr = gs.getUser().getUserByID('sys_id').getDepartmentID();
var myDept = [];
myDept.push(deptArr);
// gs.info("depts are " + typeof myDept+ "users dept are :" +myDept);
for (var i = 0; i < myDept.length; i++) {
var deptGr = new GlideRecord('cmn_department');
deptGr.addQuery('u_active', true);
deptGr.addQuery('sys_id', myDept[i]);
deptGr.query();
if (deptGr.next()) {
var activeDept = [];
activeDept.push(deptGr);
gs.info(activeDept);
}
}
e
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-26-2023 03:10 PM
Found the solution on my own. Thanks to you all.
function getDepartment() {
var user = new GlideRecord('sys_user');
user.get(sys_id);
var dept_list = '';
var departments = [];
departments = user.department.split(',');
// gs.info(departments);
for (var i = 0; i < departments.length; i++) {
dptl = new GlideRecord('cmn_department');
dptl.get(departments[i]);
if (dptl.u_active) {
dept_list += dptl.code + ',';
dept_list.push(dptl.code);
gs.info(dept_list);
}
}
return dept_list;
}
getDepartment();
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-26-2023 05:03 AM
you didn't answer my earlier question. what's your requirement?
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-26-2023 11:16 AM
to get the users in the active department.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-26-2023 12:13 AM
HI @Sathiskumar_D ,
I trust you are doing great.
To find the active department that users are part of in ServiceNow, you can modify your code as follows:
var userId = gs.getUser().getID();
var myDept = [];
// Retrieve the department(s) for the user
var userDeptGr = new GlideRecord('sys_user');
userDeptGr.get(userId);
var departmentID = userDeptGr.getValue('department');
if (departmentID)
myDept.push(departmentID);
// Find the active department(s)
var activeDepts = [];
for (var i = 0; i < myDept.length; i++) {
var deptGr = new GlideRecord('cmn_department');
deptGr.addQuery('u_active', true);
deptGr.addQuery('sys_id', myDept[i]);
deptGr.query();
if (deptGr.next()) {
activeDepts.push(deptGr);
}
}
// Log the active department(s)
gs.info('Active departments for user ' + gs.getUser().getName() + ':');
for (var j = 0; j < activeDepts.length; j++) {
var activeDept = activeDepts[j];
gs.info('Department: ' + activeDept.getValue('name'));
}
Was this answer helpful?
Please consider marking it correct or helpful.
Your feedback helps us improve!
Thank you!
Regards,
Amit Gujrathi
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-26-2023 03:10 PM
Found the solution on my own. Thanks to you all.
function getDepartment() {
var user = new GlideRecord('sys_user');
user.get(sys_id);
var dept_list = '';
var departments = [];
departments = user.department.split(',');
// gs.info(departments);
for (var i = 0; i < departments.length; i++) {
dptl = new GlideRecord('cmn_department');
dptl.get(departments[i]);
if (dptl.u_active) {
dept_list += dptl.code + ',';
dept_list.push(dptl.code);
gs.info(dept_list);
}
}
return dept_list;
}
getDepartment();
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-26-2023 05:00 PM
This would only work if you have customized the OOB sys_user.department data type from 'reference' to a type of list?