Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

fix script to update RITM Record

vivek11
Tera Contributor

Hi Team,
Can someone help to update 500 ritm records fix script

A fix script needs to update the RITM records to:

Approval : Rejected
State Closed incomplete
Stage Closed incomplete

1 ACCEPTED SOLUTION

@vivek11 

you can enhance it further.

// give correct query, correct state, stage value to compare

var gr = new GlideRecord('sc_req_item');
gr.addQuery('state', '!=', 4); // Only update if not already closed incomplete
gr.setLimit(500); // Limit to 500 records
gr.query();

while (gr.next()) {
    gr.approval = 'rejected';
    gr.state = 4; // Closed Incomplete
    gr.stage = 'Closed Incomplete';
    gr.update();

    var gr = new GlideRecord("sysapproval_approver");
    gr.addQuery("sysapproval", gr.getUniqueValue());
    gr.addQuery("state", "requested");
    gr.query();
    while (gr.next()) {
        gr.state = 'rejected';
        gr.comments = 'Auto rejected as RITM is closed';
        gr.update();
    }
}

If my response helped please mark it correct and close the thread so that it benefits future readers.

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

View solution in original post

12 REPLIES 12

Ankur Bawiskar
Tera Patron
Tera Patron

@vivek11 

so what script did you start with and where are you stuck?

something like this

// give correct query, correct state, stage value to compare

var gr = new GlideRecord('sc_req_item');
gr.addQuery('state', '!=', 4); // Only update if not already closed incomplete
gr.setLimit(500); // Limit to 500 records
gr.query();

while (gr.next()) {
    gr.approval = 'rejected';
    gr.state = 4; // Closed Incomplete
    gr.stage = 'Closed Incomplete';
    gr.update();
}

If my response helped please mark it correct and close the thread so that it benefits future readers.

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

Hi @Ankur Bawiskar 
Thank you for your quick reply.

I have one more issue — the related sysapproval_approver records for the same RITM are not being updated to "Rejected." Could you please help me with this?

@vivek11 

you can enhance it further.

// give correct query, correct state, stage value to compare

var gr = new GlideRecord('sc_req_item');
gr.addQuery('state', '!=', 4); // Only update if not already closed incomplete
gr.setLimit(500); // Limit to 500 records
gr.query();

while (gr.next()) {
    gr.approval = 'rejected';
    gr.state = 4; // Closed Incomplete
    gr.stage = 'Closed Incomplete';
    gr.update();

    var gr = new GlideRecord("sysapproval_approver");
    gr.addQuery("sysapproval", gr.getUniqueValue());
    gr.addQuery("state", "requested");
    gr.query();
    while (gr.next()) {
        gr.state = 'rejected';
        gr.comments = 'Auto rejected as RITM is closed';
        gr.update();
    }
}

If my response helped please mark it correct and close the thread so that it benefits future readers.

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

Thank you @Ankur Bawiskar