- 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:36 AM
Hi,
Replace
if (gr.user != null){
line with
if (gr.user != ''){
Thanks,
Mihir
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-13-2016 10:37 AM
Also your If statement will never execute if the query criteria isn't met. So if the record doesn't exist with the queried user and group then the while statement will never execute because the query criteria wasn't matched.
- 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
10-25-2016 06:29 AM
HI All,
Even Iam using such kind of script in User criteria section of KB. Somehow its not working. Can you please look into this and let me kniow if iam missing something:
accessviagroup();
function accessviagroup(){
var x = '';
var loggedin = gs.getUserID();
var m_member = new GlideRecord('sys_user_grmember');
m_member.addQuery('group',"f71cdf4d0ff8a640c11e306be1050e37");
m_member.addQuery('user',loggedin);
m_member.query();
if(m_member.next()){
x = true;
}
else{
x = false;
}
return x;
}