- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-23-2017 07:28 AM
Hi All,
Below is my business rule which is trying to fetch Assignee Group role however it is not working, grRole.getDisplayValue('role') is not fetching any value.
(function executeRule(current, previous /*null when async*/) {
//var temVar = new HelloWorldSN();
//var assinGrp = temVar.func2();
var assigneeGroup = current.getDisplayValue('assignment_group');
gs.log("assigneeGroup" + assigneeGroup);
var grRole = new GlideRecord('sys_group_has_role');
grRole.addQuery('group',assigneeGroup);
grRole.query();
var temRoel = grRole.getDisplayValue('role');
gs.log("temRoel "+ temRoel);
if(grRole.next()){
current.setValue('x_95063_servicenow_assigneegrouprole',"itsm");
current.update();
}
})(current, previous);
Regards
Kapil Shinde
Solved! Go to Solution.
- Labels:
-
Incident Management

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-23-2017 07:47 AM
Hello Kapil,
Create a BEFORE business rule with the below modified script. Don't use current.update(); in before business rule to avoid performance issues.
(function executeRule(current, previous /*null when async*/) {
var assigneeGroup = current.getDisplayValue('assignment_group');
gs.log("assigneeGroup" + assigneeGroup);
var grRole = new GlideRecord('sys_group_has_role');
grRole.addQuery('group.name',assigneeGroup);
grRole.query();
if(grRole.next())
{
var temRoel = grRole.getDisplayValue('role');
gs.log("temRoel "+ temRoel);
current.setValue('x_95063_servicenow_assigneegrouprole',"itsm");
}
})(current, previous);
Reference:
http://wiki.servicenow.com/index.php?title=GlideRecord

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-23-2017 07:31 AM
Hi Kapil,
Try below
var assigneeGroup = current.assignment_group;
gs.log("assigneeGroup" + assigneeGroup);
var grRole = new GlideRecord('sys_group_has_role');
grRole.addQuery('group',assigneeGroup);
grRole.query();
var temRoel = grRole.getDisplayValue('role');
gs.log("temRoel "+ temRoel);
if(grRole.next()){
current.setValue('x_95063_servicenow_assigneegrouprole',"itsm");
current.update();
}
})(current, previous);
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
05-23-2017 07:31 AM
var assigneeGroup = current.getDisplayValue('assignment_group');
gs.log("assigneeGroup" + assigneeGroup);
var grRole = new GlideRecord('sys_group_has_role');
grRole.addQuery('group',assigneeGroup);
grRole.query();
if(grRole.next()){ // you need to add next() function
var temRoel = grRole.getDisplayValue('role');
gs.log("temRoel "+ temRoel);
if(grRole.next()){
current.setValue('x_95063_servicenow_assigneegrouprole',"itsm");
current.update();
}
}
})(current, previous);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-23-2017 07:32 AM
Try this one,
(function executeRule(current, previous /*null when async*/) {
//var temVar = new HelloWorldSN();
//var assinGrp = temVar.func2();
gs.log("assigneeGroup" + assigneeGroup);
var grRole = new GlideRecord('sys_group_has_role');
grRole.addQuery('group',current.assignment_group); // if assignment group is reference
grRole.query();
if(gr.next()){
var temRoel = grRole.getValue('role');;
gs.log("temRoel "+ temRoel);
if(grRole.next()){
current.setValue('x_95063_servicenow_assigneegrouprole',"itsm");
current.update(); // if it is before business rule do not required current.update
}
})(current, previous);

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-23-2017 07:47 AM
Hello Kapil,
Create a BEFORE business rule with the below modified script. Don't use current.update(); in before business rule to avoid performance issues.
(function executeRule(current, previous /*null when async*/) {
var assigneeGroup = current.getDisplayValue('assignment_group');
gs.log("assigneeGroup" + assigneeGroup);
var grRole = new GlideRecord('sys_group_has_role');
grRole.addQuery('group.name',assigneeGroup);
grRole.query();
if(grRole.next())
{
var temRoel = grRole.getDisplayValue('role');
gs.log("temRoel "+ temRoel);
current.setValue('x_95063_servicenow_assigneegrouprole',"itsm");
}
})(current, previous);
Reference:
http://wiki.servicenow.com/index.php?title=GlideRecord