- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-13-2016 09:53 AM
i am trying to query in a business rule to see if the opened by user of a change is a part of a group. i cant seem to use current.opened_by.isMemberOf()
so i am querying the group table but i am not returning any results
var usr = current.opened_by.getDisplayValue();
var gr = new GlideRecord('sys_user_grmember');
gr.addQuery('group','group name');
gr.addQuery('user',usr);
gr.query();
while (gr.next()){
gs.log('query ran');
if (gr.user != null){
gs.log('query found' + gr.user);
//do processing
}else{
gs.log('no user found')
}
}
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-13-2016 10:42 AM
var gr2 = new GlideRecord('sys_user_group');
gr2.addQuery('name', 'Desktop Support');
gr2.query();
while (gr2.next()){
var groupsys = gr2.sys_id;
gs.log('The GroupSys ' +groupsys);
}
var gr = new GlideRecord('sys_user_grmember');
gr.addQuery('group', groupsys);
gr.addQuery('user',current.opened_by);
gr.query();
if (gr.next()) {
gs.log('query ran');
gs.log('This person is ' + gr.user + ' is a member');
}
else
{
gs.log('the query still ran');
gs.log('No user');
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-13-2016 10:00 AM
So it gives 'no user found'?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-13-2016 10:11 AM
no i put a log at the start and end and i get business rule started, business rule ended without any logs between them thats why i am confused
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-13-2016 10:02 AM
.getDisplayvalue gives name results like 'Robert', But while querying you have to give sys_id.
SO in your case give
gr.addQuery('user',current.opened_by); which passes the sys_id to query
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-13-2016 10:04 AM
Hi,
I have modified the script.Please try it
var usr = current.opened_by;
var gr = new GlideRecord('sys_user_grmember');
gr.addQuery('group','sys_id of the group you want');
gr.addQuery('user',usr);
gr.query();
while (gr.next()){
gs.log('query ran');
if (gr.user != null){
gs.log('query found' + gr.user);
//do processing
}else{
gs.log('no user found')
}
}
You can also achieve this by using isMemberOf() function.
Thanks,
Mihir