- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-19-2024 01:30 AM
Per current setup all the requests are auto rejected with 8 days except for one group lets name is A.
Script is already in place of it.
New requirement is to set exception for three group, lets name them A,B,C
How to update existing script to add B, C also.
Current script:
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-19-2024 02:05 AM
Hi @Nikita50 ,
Please replace the code as below and try
var ca = new GlideRecord('sysapproval_approver');
ca.addQuery('state', 'requested');
ca.addQuery('sys_created_on', '<', gs.daysAgo(8));
//Update: Adding condition
// **Update the below line to addEncodedQuery condition**
var cancelOR = ca.addQuery('group.assignment_group.name', '!=', 'A');
//Updated Query
var cancelOR = ca.addEncodedQuery("group.assignment_group.name!=AORgroup.assignment_group.name!=BORgroup.assignment_group.name!=C");
cancelOR.addOrCondition('group', '');
Please Mark ✅Correct if this solves your query and also mark 👍Helpful if you find my response worthy based on the impact.
Mark this as Helpful / Accept the Solution if this helps.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-19-2024 04:00 AM
Thanks for providing the code:
I believe you are missing the group.assignment_group.name here
var cancelOR = cancelApprovals.addEncodedQuery("assignment_group.name!=A^ORassignment_group.name!=B^ORassignment_group.name!=C");
Updated Code:
var cancelApprovals = new GlideRecord('sysapproval_approver');
cancelApprovals.addQuery('state', 'requested');
cancelApprovals.addQuery('sys_created_on', '<', gs.minutesAgo(2));
var cancelOR = cancelApprovals.addEncodedQuery("group.assignment_group.name!=A^ORgroup.assignment_group.name!=B^ORgroup.assignment_group.name!=C");
cancelOR.addOrCondition('group', '');
//END Update
var caOR = cancelApprovals.addQuery('sysapproval.sys_class_name', 'sc_request');
caOR.addOrCondition('sysapproval.sys_class_name', 'sc_req_item');
caOR.addOrCondition('sysapproval.sys_class_name', 'sc_task');
cancelApprovals.query();
while(cancelApprovals.next()){
cancelApprovals.state = 'rejected';
cancelApprovals.comments = 'cancel.';
cancelApprovals.update();
}
Mark this as Helpful / Accept the Solution if this helps.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-19-2024 04:14 AM
A,B,C are replaced with group names in encoded query but it is not working.
i tried to use below syntax as well but it is working for first condition only.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-19-2024 05:18 AM
Hi @Nikita50 ,
Could you please try in the background script with below and check whether it is printing the log or not? This will help to understand where it is getting stuck
var cancelApprovals = new GlideRecord('sysapproval_approver');
cancelApprovals.addQuery('state', 'requested');
cancelApprovals.addQuery('sys_created_on', '<', gs.minutesAgo(2));
var cancelOR = cancelApprovals.addEncodedQuery("group.assignment_group.name!=A^ORgroup.assignment_group.name!=B^ORgroup.assignment_group.name!=C");
cancelOR.addOrCondition('group', '');
//END Update
/*var caOR = cancelApprovals.addQuery('sysapproval.sys_class_name', 'sc_request');
caOR.addOrCondition('sysapproval.sys_class_name', 'sc_req_item');
caOR.addOrCondition('sysapproval.sys_class_name', 'sc_task');*/
cancelApprovals.query();
while(cancelApprovals.next()){
gs.info('Printing1');
}
Mark this as Helpful / Accept the Solution if this helps.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-19-2024 03:58 AM
Hi @Nikita50 ,
Can you please try below script may be this will help you
var ca = new GlideRecord('sysapproval_approver');
ca.addEncodedQuery("state=requested^sys_created_on<javascript:gs.dateGenerate('2024-04-10','00:00:00')^group.assignment_group=8a4dde73c6112278017a6a4baf547aa7^ORgroup.assignment_groupISNOTEMPTY");
ca.query();
gs.print("CC = "+ ca.getRowCount());
while(ca.next()){
ca.state = 'rejected';
ca.update()
}
I'm using group as Software
Please mark my answer correct and helpful if this works for you
Thanks and Regards
Sarthak