When incident is resolved i need to update the Outage table with Outage type,Begin and End values

Rajamouly
Tera Expert

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.

BR1.jpg

BR2.jpg

1 ACCEPTED SOLUTION

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.

If it helps please click Accept as Solution/hit the Thumb Icon.
ServiceNow Community MVP 2024.
Thanks,
Pavankumar

View solution in original post

11 REPLIES 11

Hi Mike,

 

I am just updating the outage record (Which is already created) here with the below code 

 

 

Rajamouly_0-1666026226116.png

 

 

in line 4, remove the quotes around current.sys_id

Pavankumar_1
Mega Patron

Hi @Rajamouly ,

Script would something like below

 

Script:

(function executeRule(current, previous /*null when async*/ ) {

var outageGr = new GlideRecord('cmdb_ci_outage');
outageGr.addQuery('incidnet_refernce_field', sys_id); //you need to filter the outage which has same incident
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);
If it helps please click Accept as Solution/hit the Thumb Icon.
ServiceNow Community MVP 2024.
Thanks,
Pavankumar

He Pavan,

 

Thanks for your response, i have modified the code as per your suggestion but still not working

 

(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);

If i remove Add Query & Query from script then it is creating the new record in Outage table rather to update.

 

Am i missing something here, please help?