- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ā07-03-2020 06:14 AM
Hi
I want to make a scoped BR run a conditon:
Suppose the BR is on incident table, then the BR should only run when the caller in the caller_id field is a member of a particular group.
I tried the below code in the condition field
gs.getUser(current.caller_id).isMemberOf(<group name>)
But this gives false, because instead of taking the user in caller field it takes logged in user.
Any solution for this?
Note: If similar code is user in background script as below in a gliderecord: gs.getUser(gr.caller_id).isMemberOf(<group name>) It returns the expected output. |
Solved! Go to Solution.
- Labels:
-
Scripting and Coding

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ā07-04-2020 05:09 AM
HI
isMemberOf() will only work for loggedin users but as your requirement is to use the script in BR CONDITION. To achieve this you need to write a Script include and GlideRecord Group Member table and check if Caller is member of group then return true otherwise return false. Let me give you a sample.
BR CONDITION [if script include is in SAME scope]
javascript: new groupMemberUtility().member(current.caller_id);
BR CONDITION [if script include is in GLOBAL scope i.e call it by its API name]
javascript: new global.groupMemberUtility().member(current.caller_id);
SCRIPT INCLUDE
NAME - groupMemberUtility
var groupMemberUtility = Class.create(); //(auto generated)
groupMemberUtility.prototype = Object.extendsObject(AbstractAjaxProcessor, { //(auto generated)
member: function(data) {
gs.info("$$SH ---> Script include called!!! " + data);
var gr = new GlideRecord("sys_user_grmember");
gr.addQuery("user", data);
gr.setLimit(1);
gr.query();
if (gr.next())
return true;
return false;
},
});
Please mark this CORRECT & HELPFUL, if it answered your question.
Thanks & Regards,
Sharjeel
Muhammad
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ā07-03-2020 06:49 AM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ā07-03-2020 06:55 AM
Hi,
Thats correct, but this will check the current logged in user and not caller id of the incident.
Regards,
Anirban

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ā07-03-2020 07:51 AM
Hi,
Yes, as he was using logged in user that why I took that.
If you want based on caller then below script will work in BR.
var caller=current.caller_id.getDisplayValue();
if(caller.isMemberOf('Database')){
alert("caller is part of group");
}
else{
alert("caller is not part of group");
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ā07-04-2020 01:05 AM
if the background script is done with
gs.getUser(gr.caller_id).isMemberOf(<group name>)
It checks for the user in the particular field instead of logged in user.
But the issue is same is not happening in BR with
gs.getUser(current.caller_id).isMemberOf(<group name>)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ā07-04-2020 12:58 AM
This will check for the logged in user right, but should be able to do it for the user in caller field.
That too in scoped application.