- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-17-2022 08:08 AM
Upon Incident Resolution, the assignee will fill out Actual Start/Actual End and Outage Record type fields on the incident form and these fields will be populated automatically on the Outage record.
For this i have created after business rule, and mentioned the condition
Condition:urrent.incident_state.changesTo (6)
Script:
(function executeRule(current, previous /*null when async*/) {
var outageGr = new GlideRecord('cmdb_ci_outage');
outageGr.setValue('begin', current.getValue('work_start'));
outageGr.setValue('end', current.getValue('work_end'));
outageGr.setValue('type', current.getValue('u_outage_record_type'));
outageGr.update();
})(current, previous);
Am i missing anything here, Please help me.
Solved! Go to Solution.
- Labels:
-
Incident Management
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-18-2022 08:25 AM
Hi @Rajamouly ,
Your script is correct and you can create one incident and make it to In progress. Then update actual start and actual end, configuration and then resolve it.
It will update all the fields to that outage record.
ServiceNow Community MVP 2024.
Thanks,
Pavankumar
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-17-2022 08:10 AM
Is the Outage record already created at this point and related to the Incident, or are you attempting to create the Outage record through this business rule?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-17-2022 08:16 AM
if the outage record is already created/associated, you can try this
var outageGr = new GlideRecord('cmdb_ci_outage');
outageGr.get('task_number', current.sys_id);
outageGr.setValue('begin', current.getValue('work_start'));
outageGr.setValue('end', current.getValue('work_end'));
outageGr.setValue('type', current.getValue('u_outage_record_type'));
outageGr.update();
If you are attempting to create the outage record, i would create a flow instead of a business rule.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-17-2022 09:28 AM
Hello Mike,
Thanks for response, Yes Outage is created automatically through business rule,i have tried the code below but no luck
(function executeRule(current, previous /*null when async*/) {
var outageGr = new GlideRecord('cmdb_ci_outage');
outageGr.addQuery('task_number','current.sys_id');
outageGr.query();
if (outageGr.next()) {
outageGr.begin = current.work_start;
outageGr.end = current.work_end;
outageGr.type = current.u_outage_record_type;
outageGr.update();
}
})(current, previous);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-17-2022 09:33 AM
Since you are trying to create a new record, try this
var outageGr = new GlideRecord('cmdb_ci_outage');
outageGr.initialize();
outageGr.setValue('task_number', current.sys_id);
outageGr.setValue('begin', current.getValue('work_start'));
outageGr.setValue('end', current.getValue('work_end'));
outageGr.setValue('type', current.getValue('u_outage_record_type'));
outageGr.insert();