How to cancel approvals - if change request got (reset to new) state

thaduri sai
Tera Contributor

Hi Team,

 

We have a requirement in change request - In change request we have UI button (Reset to New).

In change we are added manuall approvals. Now the change is in Assess state waiting for approvals. Some of the groups are "Approved" and other groups are "Requested" state.

If change got (reset to new) state - The approved groups are still showing in groups approvals.

 

How can we acheive to cancel all approvals if change reset new through Ui action button.

thadurisai_0-1687274000914.png

 

Thanks,

Saikrishna

 

2 ACCEPTED SOLUTIONS

Sandeep Rajput
Tera Patron
Tera Patron

@thaduri sai Create a business rule on Change Request table as follows.

 

Screenshot 2023-06-20 at 8.58.34 PM.pngScreenshot 2023-06-20 at 8.58.53 PM.png

 

Here is the BR script.

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

	// Add your code here
	var approvalRec = new GlideRecord('sysapproval_approver');
	approvalRec.addQuery('document_id',current.sys_id);
	approvalRec.query();
	while(approvalRec.next()){
		approvalRec.setValue('state','not_required');
		approvalRec.update();
	}


})(current, previous);

 

View solution in original post

@babbi @thaduri sai Update the BR as follows.

 

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

	// Add your code here
	var approvalRec = new GlideRecord('sysapproval_approver');
	approvalRec.addQuery('document_id',current.sys_id);
	approvalRec.query();
	while(approvalRec.next()){
		approvalRec.setValue('state','not_required');
		approvalRec.update();
	}


	var approvalGroupRec = new GlideRecord('sysapproval_group');
	approvalGroupRec.addQuery('parent',current.sys_id);
	approvalGroupRec.query();
	while(approvalGroupRec.next()){
		approvalGroupRec.setValue('approval','not_required');
		approvalGroupRec.update();
	}

})(current, previous);

Hope this helps.

View solution in original post

15 REPLIES 15

Maruthi Ram
Tera Contributor

Hi @Sandeep Rajput, I have gone through your script. Its really helpful. I have a question, For my change, its updating from new to assess first, then manager approval is triggered and ones it is approved, then it will move to authorize state. Then a group approval will be triggered for CAB approval. Now if I use revert to new, i was able to move it to new state, but by using your code, I am seeing all the approvals are updating to "No longer required" including the approved ones. which is not correct. Cam you help me with this