Dynamically fill Assignment Group based on Location and group type
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-10-2017 01:07 PM
Hello ,
How to auto populate assignment group dynamically in incident based on user profile?
I will have hundred of locations and for each location I will have several user groups.
My requirement is for example:
I have a user that has location (e.g. Washington). I have user group (Washington IT) that has location covered (Washington) and also group type (incident_it).
I want if user is from Location Washington and incident is related to IT to be assigned to Washington IT group.
I want to create a business rule to fill assignment group based user's location. From location to filter groups that covered that location and have group type 'incident_it'.
Thank you
- Labels:
-
Incident Management

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-11-2017 01:13 PM
Hello Enver,
You can create a BEFORE business rule with script as. You can have the condition filter as well per your req.
(function executeRule(current, previous /*null when async*/) {
// Add your code here
var userLoc = current.caller_id.location;
var gr = new GlideRecord('sys_user_group');
gr.addQuery('PASS LOCATION FEILD COLUMN HERE', userLoc); //Assuming this field is a reference field
gr.addQuery('PASS GROUP TYPE FIELD COLUMN NAME HERE', "CHOICE VALUE");
gr.query();
if(gr.next());
{
current.assignment_group = gr.sys_id;
}
})(current, previous);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-12-2017 04:50 AM
Thank you Pradeep,
I tried but for some reason it is not working. Below is the script. User group has a related list with table Group Location Coverage [sys_group_covers_location] and then location field on this table is reference to Location table. Please advise.
Thank you
(function executeRule(current, previous /null when async/) {
// Add your code herevar userLoc = current.caller_id.location;var gr = new GlideRecord('sys_user_group');gr.addQuery('sys_group_covers_location.location', userLoc); //This field is a related list on the user groupsgr.addQuery('type', "mission_it");gr.query();if(gr.next());{current.assignment_group = gr.sys_id;
}
})(current, previous);
On Wednesday, October 11, 2017, 4:13:40 PM EDT, pradeepksharma <community-no-reply@servicenow.com> wrote:
|
|
|
Dynamically fill Assignment Group based on Location and group type
reply from Pradeep Sharma in IT Service Management - View the full discussion
Hello Enver,
You can create a BEFORE business rule with script as. You can have the condition filter as well per your req.
(function executeRule(current, previous /null when async/) {
// Add your code here
var userLoc = current.caller_id.location;
var gr = new GlideRecord('sys_user_group');
gr.addQuery('PASS LOCATION FEILD COLUMN HERE', userLoc); //Assuming this field is a reference field
gr.addQuery('PASS GROUP TYPE FIELD COLUMN NAME HERE', "CHOICE VALUE");
gr.query();
if(gr.next());
{
current.assignment_group = gr.sys_id;
}
})(current, previous);
Reply to this message by replying to this email, or go to the message on ServiceNow Community |
Start a new discussion in IT Service Management by email or at ServiceNow Community |
Following Dynamically fill Assignment Group based on Location and group type in these streams: Inbox |
|
This email was sent by ServiceNow Community because you are a registered user. You may unsubscribe instantly from ServiceNow Community, or adjust email frequency in your email preferences |
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-19-2017 11:38 AM
Thank you Pradeep,
I tried but for it is not working. User group has a related list with table Group Location Coverage [sys_group_covers_location] and then location field on this table is referenced to Location table. Please advise.
Thank you
Below is the script that I'm using !.
(function executeRule(current, previous /null when async/) {
// Add your code here
var userLoc = current.caller_id.location;
var gr = new GlideRecord('sys_user_group');
gr.addQuery('sys_group_covers_location.location', userLoc); //This field is a related list on the user groups
gr.addQuery('type', "mission_it");
gr.query();
if(gr.next());
{current.assignment_group = gr.sys_id;
}
})(current, previous);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-19-2017 11:39 AM
Thank you Pradeep,
I tried but for it is not working. User group has a related list with table Group Location Coverage [sys_group_covers_location] and then location field on this table is referenced to Location table. Please advise.
Thank you
Below is the script that I'm using !.
(function executeRule(current, previous /null when async/) {
// Add your code here
var userLoc = current.caller_id.location;
var gr = new GlideRecord('sys_user_group');
gr.addQuery('sys_group_covers_location.location', userLoc); //This field is a related list on the user groups
gr.addQuery('type', "mission_it");
gr.query();
if(gr.next());
{current.assignment_group = gr.sys_id;
}
})(current, previous);