Need help with background script to change the state of Change from review to closed in Change request table

Kaushik4
Giga Contributor

Hi Experts,

I need help on background scripting of 5 different change number for change state from review to closed in the change request table.

Change number is like change_request.numberINCHG0010144,CHG0010139,CHG0010138,CHG0010127,CHG0010126.

Thanks 

Kaushik

 

1 ACCEPTED SOLUTION

Pradeep Sharma
ServiceNow Employee
ServiceNow Employee

Hi Kaushik,

Here you go.

var numarray = ["CHG0010144","CHG0010139","CHG0010138","CHG0010127","CHG0010126"];
for (var i = 0; i < numarray.length; i++){
var gr = new GlideRecord("change_request");
gr.addQuery('number', numarray[i]);    
gr.query();
while(gr.next()){
gr.state = '3';
gr.setWorkflow(false);
gr.update();
}
}

- Pradeep Sharma

View solution in original post

7 REPLIES 7

Mouli Praneeth
Mega Expert

Would you like to close the related problems .change tasks,child changes,request if any as well?

Hi Mouli,

Under these change numbers, the ctask numbers like CTASK0010122 are also there which should change its state from open to closed too.

Thanks 

Kaushik

Hi Kaushik,

please find below script to close the change and change task as well

var numbers = 'CHG0010144,CHG0010139,CHG0010138,CHG0010127,CHG0010126';

var gr = new GlideRecord("change_request");
gr.addQuery('number', 'IN', numbers);    
gr.query();
while(gr.next()){

gr.state = '3';
gr.setWorkflow(false);
gr.update();

var task = new GlideRecord('change_task');
task.addQuery('change_request', gr.sys_id);
task.query();
while(task.next()){

task.state = '3';
task.setWorkflow(false);
task.update();

}

}

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Hi Kaushik,

Thanks for the update. Updating the script I shared earlier to accommodate closing of change task as well.

var numarray = ["CHG0010144","CHG0010139","CHG0010138","CHG0010127","CHG0010126"];
for (var i = 0; i < numarray.length; i++){
var gr = new GlideRecord("change_request");
gr.addQuery('number', numarray[i]);    
gr.query();
while(gr.next()){
//close change task first if there are any open
closeChgTask(gr.getValue('sys_id'));
gr.state = '3';
gr.setWorkflow(false);
gr.update();
}
}
function closeChgTask(sysId)
{
var chgtaskGr = new GlideRecord('change_task');
chgtaskGr.addQuery('change_request', sysId);
chgtaskGr.query();
while(chgtaskGr.next()){

chgtaskGr.state = '3';
chgtaskGr.setWorkflow(false);
chgtaskGr.update();
}

- Pradeep Sharma