- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-24-2021 01:29 AM
Hello All,
I have a recruitment like Auto- assign Incident between 5 members of one groups and rotate format. When ever a new incident created it auto assign as below
eg:
* Case 1 - assigned to User 1
* Case 2 - assigned to User 2
* Case 3 - assigned to User 3
* Case 4- assigned to User 4
* Case 5- assign to User 5
Repeat again from User 1
it will be like rotate format, can anyone help me on this
Thanks in Advance
Solved! Go to Solution.
- Labels:
-
Incident Management
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-24-2021 11:28 AM
Yes it is entirely possible to do that, I have a business rule that is doing "round robin" assignment of Incidents to our service desk techs; based on the time the Incident is submitted, and who has the least workload.
And I've broken this out a couple of times today on here now:
function executeRule(current, previous /*null when async*/ ) {
//assign to the group check
if (current.active == true) { //removed un-needed assignment group value
var schedRec = new GlideRecord('cmn_schedule');
schedRec.get('name', '8-5 weekdays excluding holidays'); //schedule name
var sched = new GlideSchedule(schedRec.sys_id);
if (sched.isInSchedule(new GlideDateTime()) && current.assigned_to == '') { //check schdule and assign
var grMemRec = new GlideRecord('sys_user_grmember');
grMemRec.addQuery('group', current.assignment_group);
grMemRec.addQuery('user.u_primary_group', 'ca3475badb05b240ec5c3c00ad9619b2'); //only include if primary group is also ISD Service Desk
grMemRec.addQuery('user.u_auto_assign', 'true'); //checkbox on profile
grMemRec.orderBy('u_last_incident_assigned');
grMemRec.query();
if (grMemRec.next()) {
current.assigned_to = grMemRec.user.getDisplayValue();
grMemRec.u_last_incident_assigned = gs.nowDateTime();
grMemRec.setWorkflow(false);
grMemRec.update();
}
}
}
})(current, previous);
There was a "workbook" from a previous Knowledge conference that gave the full step by step process of building this out. I do have an old copy somewhere but if you search for "round robin assignment" or similar you may track down a copy.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-25-2021 04:29 AM
Hi Ravi,
A) I am able to implement same requirement in my developer Instance.
B Create one Integer column in sys_user_grmember.
C) Create One Integer Column in Incident Table
D) you can use Client Script mentioned here or you can create your own version of Script
var assignmentGroup = g_form.getValue("assignment_group");
if (assignmentGroup == '9083bc252fee6010b220bea62799b658') {
alert(true);
var rec = new GlideRecord('incident');
rec.addQuery('assignment_group', '9083bc252fee6010b220bea62799b658');
rec.orderByDesc('sys_updated_on');
rec.setLimit(1);
rec.query();
while(rec.next()) {
var inputvalue = rec.u_incuservalue;
alert(inputvalue);
}
var incvalue = rec.u_incuservalue;
alert("MY");
alert(incvalue);
if (incvalue == 1)
{
alert("I am eqaul to 1 ");
var grMemRec = new GlideRecord('sys_user_grmember');
grMemRec.addQuery('group', '9083bc252fee6010b220bea62799b658');
//alert(myvalue);
grMemRec.addQuery('u_user_value', 2);
grMemRec.query();
while(grMemRec.next()) {
g_form.setValue("assigned_to", grMemRec.user);
g_form.setValue("u_incuservalue", 2);
}
}
if (incvalue == 2)
{
alert("I am eqaul to 2 ");
var grMemRec2 = new GlideRecord('sys_user_grmember');
grMemRec2.addQuery('group', '9083bc252fee6010b220bea62799b658');
//alert(myvalue);
grMemRec2.addQuery('u_user_value', 3);
grMemRec2.query();
while(grMemRec2.next()) {
g_form.setValue("assigned_to", grMemRec2.user);
g_form.setValue("u_incuservalue", 3);
}
}
if (incvalue == 3)
{
alert("I am eqaul to 3 ");
var grMemRec3 = new GlideRecord('sys_user_grmember');
grMemRec3.addQuery('group', '9083bc252fee6010b220bea62799b658');
//alert(myvalue);
grMemRec3.addQuery('u_user_value', 4);
grMemRec3.query();
while(grMemRec3.next()) {
g_form.setValue("assigned_to", grMemRec3.user);
g_form.setValue("u_incuservalue", 4);
}
}
if (incvalue == 4)
{
alert("I am eqaul to 4 ");
var grMemRec4 = new GlideRecord('sys_user_grmember');
grMemRec4.addQuery('group', '9083bc252fee6010b220bea62799b658');
//alert(myvalue);
grMemRec4.addQuery('u_user_value', 5);
grMemRec4.query();
while(grMemRec4.next()) {
g_form.setValue("assigned_to", grMemRec4.user);
g_form.setValue("u_incuservalue", 5);
}
}
if (incvalue == 5)
{
alert("I am Equal to 5 ");
var grMemRec1 = new GlideRecord('sys_user_grmember');
grMemRec1.addQuery('group', '9083bc252fee6010b220bea62799b658');
alert(inputvalue);
grMemRec1.addQuery('u_user_value', 1);
grMemRec1.query();
while(grMemRec1.next()) {
g_form.setValue("assigned_to", grMemRec1.user);
g_form.setValue("u_incuservalue", 1);
}
}
else
alert(false);
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-25-2021 04:46 AM
Hi Vishal,
Thanks for your response.
I have one doubt, if new user is added in the group then code need to update like below
grMemRec1.addQuery('u_user_value', 6);
is it?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-25-2021 04:47 AM
Yes Please.
A) You can do more customization in Script