The CreatorCon Call for Content is officially open! Get started here.

How to Auto Reject an approval

sk59
Tera Expert

Hi,

Approval should get rejected if it is not approved within 5 minutes. Please let me know how to achieve this?

Thanks in Advance

1 ACCEPTED SOLUTION

Raju Koyagura
Tera Guru

Write a scheduled job and query the sysapproval_approver table to check which are requested 5min back and set the state to rejected.


or


Write set timer (wait/if) conditions on workflow to check the requested time if it is greater than 5min set the state to rejected.





View solution in original post

5 REPLIES 5

Hi Sk,



For this write one scheduled job as follows:



run: Periodically


repeat Interval : 5 minutes


Conditional : checked


Condition   :


var gchg1 = new GlideAggregate('sysapproval_approver');


gchg1.addAggregate('COUNT');


gchg1.addQuery('state','requested');


gchg1.addQuery('source_table','sc_req_item');


gchg1.query();


gchg1.next();


gchg1.getAggregate('COUNT') !== '0';



Run this Script :



var appPending= new GlideRecord('sysapproval_approver');


appPending.addQuery('state','requested');


appPending.addQuery('source_table','sc_req_item');


appPending.addQuery('sys_created_on', '<=' , gs.minutesAgo(5));


appPending.query();


while(chgPending.next()){



var implementDate = new GlideDateTime();


implementDate.setDisplayValue(chgPending.sys_created_on.getDisplayValue()); // Created date time


var todaysDate = new GlideDateTime();


todaysDate.setDisplayValue(gs.nowDateTime()); // Now date time


 


var resetNum1 = implementDate.getNumericValue();


var todaysNum1 = todaysDate.getNumericValue();


var Age1 = todaysNum1 - resetNum1;


 


        if (Age1 >= 300000 && Age1 <=540000 ){



chgPending.state = rejected ;


chgPending.comments= 'rejected by system by 5 minutes' ; // provide some comments here what ever you like


chgPeding.update();


}



}



Hope this helps you.



Regards,


Govind Sharma



** Please mark correct/Helpful/Like based on impact of answer **