- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎09-18-2017 12:59 PM
I am struggling to get list of group names based on group type. The "type" column have List type field in sys_user_group table. Type columns can have more than 1 value (Incident, problem, approver, security, etc). I created a script using GlideRecord to print list of group names but it returning empty and I am wondering why.
user variable is a sys_id of Type from sys_user_group_type table. I was able to get string value in groupType variable. Now I added another GlideRecord to use groupType variable to get list of group names based on type however I am getting a empty result. Was that has to do with List type field in type column? I was able to test in different query to see if it able to print results in list and it worked but not with getGroup.addQuery('type', 'CONTAINS', groupType);
Solved! Go to Solution.
- Labels:
-
Scripting and Coding

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎09-19-2017 11:53 AM
Try this and let me know the results. I have added few debugging statements. Please check the system log after running this.
I thought you are sending the user in the user field. Lets see by printing these variables.
else if(option == "grouptype"){
var groupType = '';
var managerName = '';
var list = '';
var groupName = '';
gs.log('+++++++++++++user is '+user);
var getType = new GlideRecord('sys_user_group_type');
getType.addQuery('sys_id', user);
getType.query();
while(getType.next()){
groupType = getType.sys_id+'';
gs.log('++++++++++++++++my group type sys id is ---'+groupType);
var getGroup = new GlideRecord('sys_user_group');
getGroup.addQuery('type', 'CONTAINS', groupType);
getGroup.query();
while(getGroup.next()){
list += getGroup.name + ';\n';
}
gs.log('++++++++++++++++my list is ---'+list);
}
managerEmail = "test";
return list;
managerEmail;
}
Please mark this response as correct or helpful if it assisted you with your question.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎09-18-2017 01:11 PM
Your line number 92 needs correction. the '}' should be at line 101. And you can write return list; at line 104 instead of just 'list'.
Please mark this response as correct or helpful if it assisted you with your question.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎09-18-2017 01:26 PM
I just tried that by moving "}" to line 101 and still getting same empty result. I tried different test using different query like getGroup.addQuery('name', 'admin-group'); and was able to print group name. I think it something has to do with getGroup.addQuery('type', 'CONTAINS', groupType);. Type column is a list type field.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎09-18-2017 01:35 PM
Can you paste the whole code instead of screenshot.
I see lot of issue in your code.
Line 87 should not be there at all.
line 91 should be groupType = getType.sys_id;
Also below should be changed
Your line number 92 needs correction. the '}' should be at line 101. And you can write return list; at line 104 instead of just 'list'.
Please mark this response as correct or helpful if it assisted you with your question.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎09-19-2017 06:54 AM
Here a copy and paste script,
else if(option == "grouptype"){
var groupType = '';
var managerName = '';
var list = '';
var groupName = '';
var getType = new GlideRecord('sys_user_group_type');
getType.addQuery('sys_id', user);
getType.query();
while(getType.next()){
groupType = getType.name;
}
var getGroup = new GlideRecord('sys_user_group');
getGroup.addQuery('type', 'CONTAINS', groupType);
getGroup.query();
while(getGroup.next()){
list += getGroup.name + ';\n';
}
managerEmail = "test";
list;
managerEmail;
}
user variable come from var user = RP.getParameterValue('sysparm_role'); where it got value from <g:ui_reference> in Jelly.
I don't understand why you said line 87 should not be there at all. That line is where user have sys_id of group type. I use that to get the string name of group type instead of sys_id I can try use that to run in another GlideRecord in sys_user_group table to get list of group names by using groupType variable.
I just tried your way by change code on line 91 and move '}' to line 101 but I end up receive javascript error, "The reference to entity "E" must end with the ';' delimiter."