- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-08-2025 04:50 AM
write a back ground script to set incident to resolve state while change priority to 5 to 4 and set assignment group to “network” in ServiceNow
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-08-2025 07:23 AM
Hi @snowsid88,
You can achieve this using a background script in System Definition → Scripts – Background. The script below updates all incidents with priority 5, sets them to Resolved, changes priority to 4, and assigns them to the Network group:
(function() {
var gr = new GlideRecord('incident');
gr.addQuery('priority', 5);
gr.query();
var groupGR = new GlideRecord('sys_user_group');
groupGR.addQuery('name', 'Network');
groupGR.query();
if (!groupGR.next()) {
gs.print('Assignment group "Network" not found!');
return;
}
var networkGroupSysId = groupGR.sys_id.toString();
while (gr.next()) {
gr.priority = 4;
gr.assignment_group = networkGroupSysId;
gr.state = 6; // Resolved
gr.update();
gs.print('Updated incident: ' + gr.number);
}
gs.print('Script execution completed.');
})();
Thanks & Regards,
Muhammad Iftikhar
If my response helped, please mark it as the accepted solution so others can benefit as well.
Muhammad Iftikhar
If my response helped, please mark it as the accepted solution so others can benefit as well.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-08-2025 07:23 AM
Hi @snowsid88,
You can achieve this using a background script in System Definition → Scripts – Background. The script below updates all incidents with priority 5, sets them to Resolved, changes priority to 4, and assigns them to the Network group:
(function() {
var gr = new GlideRecord('incident');
gr.addQuery('priority', 5);
gr.query();
var groupGR = new GlideRecord('sys_user_group');
groupGR.addQuery('name', 'Network');
groupGR.query();
if (!groupGR.next()) {
gs.print('Assignment group "Network" not found!');
return;
}
var networkGroupSysId = groupGR.sys_id.toString();
while (gr.next()) {
gr.priority = 4;
gr.assignment_group = networkGroupSysId;
gr.state = 6; // Resolved
gr.update();
gs.print('Updated incident: ' + gr.number);
}
gs.print('Script execution completed.');
})();
Thanks & Regards,
Muhammad Iftikhar
If my response helped, please mark it as the accepted solution so others can benefit as well.
Muhammad Iftikhar
If my response helped, please mark it as the accepted solution so others can benefit as well.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-08-2025 07:30 AM
Hi @snowsid88,
Priority is calculated as per values in Impact and Urgency, so in your code update the two fields instead of Priority as it is auto-calculated...
Remove:
gr.priority = 4;
and replace it with:
gr.urgency = 2;
gr.impact = 3;
//or
gr.urgency = 3;
gr.impact = 2;
Note: also, "gr" is also not recommended variable name but it's not for scope of this question ;))
/* If my response wasn’t a total disaster ↙️ ⭐ drop a Kudos or Accept as Solution ✅ ↘️ Cheers! */
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-08-2025 07:42 AM
and also when you Resolve an incident, Close code and notes are mandatory:
so add:
gr.close_notes = 'Closed by a script';
gr.close_code = 'Solution provided';
/* If my response wasn’t a total disaster ↙️ ⭐ drop a Kudos or Accept as Solution ✅ ↘️ Cheers! */
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-08-2025 07:47 AM
Hi @snowsid88 ,
Use below working code and ensure the you have added the correct filter on incident table. In script it is processing Active incident record with priority=5.
// Bulk update active Incidents: priority 5 -> 4, set Resolved, assign to "Network"
(function() {
// Look up the "Network" group sys_id once
var networkGroupId = '';
var grp = new GlideRecord('sys_user_group');
grp.addQuery('name', 'Network'); // adjust name if different or you can directly give the sys_id of your network group to above networkGroupId variable
grp.addActiveQuery();
grp.setLimit(1);
grp.query();
if (grp.next()) {
networkGroupId = grp.getUniqueValue();
} else {
gs.error('Assignment group "Network" not found or inactive. Aborting.');
return;
}
var inc = new GlideRecord('incident');
inc.addActiveQuery(); // only active
inc.addQuery('priority', '5'); // current priority is 5
// Set desired values before updateMultiple()
//inc.setValue('priority', '4'); //Directly it won't work
inc.setValue('impact','2');
inc.setValue('urgency','3'); // change priority 5 -> 4
inc.setValue('incident_state', '6'); // 6 is Resolved
inc.setValue('state', '6'); // keep in sync, helpful in some UIs
inc.setValue('assignment_group', networkGroupId);
// Optional: populate required resolution fields to satisfy business rules
inc.setValue('close_code', 'Solved (Work Around)');
inc.setValue('close_notes', 'Bulk auto-resolve on priority change 5→4.');
// Optional safety: prevent workflows/notifications for mass change
// inc.setWorkflow(false);
// inc.autoSysFields(false); // if not wanting sys_updated_* to change
var updated = inc.updateMultiple(); // applies to all records matching the query
gs.info('Incidents updated (priority 5→4, resolved, assigned to Network): ' + updated);
})();
Thanks,
Bhimashankar H
-------------------------------------------------------------------------------------------------
If my response points you in the right directions, please consider marking it as 'Helpful' & 'Correct'. Thanks!
