Dynamic filter one of my group members
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
8 hours ago
Hi,
Im trying to create a dynamic filter that will return all users from my groups but i had no luch. What am I doing wrong?
var OneOfMyGroupMembers = Class.create();
OneOfMyGroupMembers.prototype = {
initialize: function() {},
getMyGroupMembers: function() {
var groups = gs.getUser().getMyGroups();
var groupQuery = groups && groups.join ? groups.join(',') : String(groups || '');
if (!groupQuery)
return '';
var users = [];
var seen = {};
var member = new GlideRecord('sys_user_grmember');
member.addQuery('group', 'IN', groupQuery);
member.addQuery('user.active', true);
member.query();
while (member.next()) {
var userId = member.getValue('user');
if (userId && !seen[userId]) {
seen[userId] = true;
users.push(userId);
}
}
return users.join(',');
},
type: 'OneOfMyGroupMembers'
};
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
an hour ago
my thoughts
-> When used in a reference field, ServiceNow expects an encoded query, like return "sys_idIN" + users.join(',');
-> When used in a list filter dynamic operator, ServiceNow expects only the value(s) to compare against, not a field query. return users works because the platform internally generates something similar to: assigned_to IN (<returned values>)
💡 If my response helped, please mark it as correct ✅ and close the thread 🔒— this helps future readers find the solution faster! 🙏
Ankur
✨ Certified Technical Architect || ✨ 10x ServiceNow MVP || ✨ ServiceNow Community Leader
