
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-22-2023 06:02 AM
Hi!
I'm trying to implement a service catalog item with variable set containing two variables. The first one is requested for type dropdown of users and the other is a reference dropdown to group table.
The idea is to filter the list of groups in groups dropdown to match the groups where the user selected in the requested for dropdown is a member of by using script include getting sys_id of selected user as a parameter.
Is there any way to get the selected user from the user dropdown? I've tried pretty much everything with no success.
All help be appreciated. Thanks!
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-04-2023 02:32 PM - edited ‎03-05-2023 02:08 AM
Hi,
1. Go to the group variable > type specification > use reference qualifier as advanced and reference qualifier as
javascript: new getUserGroups(). getGroupSysid(current.variables.requested_for); //use the right variable name for user
2. Create a script include like below
var getUserGroups = Class.create();
getUserGroups.prototype = {
initialize: function() {},
getGroupSysid: function(requested_for) {
var grp = [];
var usrmember = new GlideRecord('sys_user_grmember');
usrmember.addQuery('user',requested_for);
usrmember.query();
while (usrmember.next()) {
grp.push(usrmember.group.toString());
}
if (grp.toString() != '')
return 'sys_idIN' + grp.toString();
else
return 'sys_id=NULL';
},
type: 'getUserGroups'
};
please try this and let me know.
Thanks,
Faizeal.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-04-2023 02:32 PM - edited ‎03-05-2023 02:08 AM
Hi,
1. Go to the group variable > type specification > use reference qualifier as advanced and reference qualifier as
javascript: new getUserGroups(). getGroupSysid(current.variables.requested_for); //use the right variable name for user
2. Create a script include like below
var getUserGroups = Class.create();
getUserGroups.prototype = {
initialize: function() {},
getGroupSysid: function(requested_for) {
var grp = [];
var usrmember = new GlideRecord('sys_user_grmember');
usrmember.addQuery('user',requested_for);
usrmember.query();
while (usrmember.next()) {
grp.push(usrmember.group.toString());
}
if (grp.toString() != '')
return 'sys_idIN' + grp.toString();
else
return 'sys_id=NULL';
},
type: 'getUserGroups'
};
please try this and let me know.
Thanks,
Faizeal.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-05-2023 10:41 PM
Thanks for Your help Faizeal
Your solution works. Only thing needs to be changed is name of variable in the function parameter. It should be current.variables.requested_for instead of current.requested_for,