No longer required sometimes work sometimes not
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-23-2025 08:18 AM
(function executeRule(current, previous /*null when async*/ ) {
var ritm = current.parent;
var approver = new GlideRecord('sysapproval_approver');
approver.addQuery('document_id', ritm);
approver.addQuery('state', 'approved');
approver.query();
while (approver.next()) {
var user = [];
user = approver.approver;
gs.log('user-' + user);
}
var userGroup = new GlideRecord('sys_user_grmember');
userGroup.addQuery('user', 'IN', user);
userGroup.query();
var groupSysIds = [];
while (userGroup.next()) {
var grpsysid = userGroup.getValue('group');
gs.log('grpsysid -' + grpsysid);
groupSysIds.push(grpsysid);
}
var foundGroup = false;
for (var i = 0; i < groupSysIds.length; i++) {
if (groupSysIds[i] == current.assignment_group) {
foundGroup = true;
break;
}
}
if (foundGroup) {
current.active = false;
current.approval = 'not_required';
current.short_description = 'Skipped due to duplicates';
current.work_notes = "Group Approval marked as 'No Longer Required' due to a previous approval on the same record by the same user.";
} else {
gs.log('No group approvals to update.');
}
wrote this script to update the state to no longer required but it works some times and sometimes not
1 REPLY 1
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-23-2025 10:48 AM
Hi @shruti2bhosale.,
Try this
(function executeRule(current, previous /*null when async*/ ) {
var ritm = current.parent;
var approver = new GlideRecord('sysapproval_approver');
approver.addQuery('document_id', ritm);
approver.addQuery('state', 'approved');
approver.query();
var user = [];
while (approver.next()) {
user.push(approver.approver.toString());
gs.log('user-' + approver.approver);
}
if (user.length > 0) {
var userGroup = new GlideRecord('sys_user_grmember');
userGroup.addQuery('user', 'IN', user);
userGroup.query();
var groupSysIds = [];
while (userGroup.next()) {
var grpsysid = userGroup.getValue('group');
gs.log('grpsysid -' + grpsysid);
groupSysIds.push(grpsysid);
}
var foundGroup = false;
for (var i = 0; i < groupSysIds.length; i++) {
if (groupSysIds[i] == current.assignment_group.toString()) {
foundGroup = true;
break;
}
}
if (foundGroup) {
current.active = false;
current.approval = 'not_required';
current.short_description = 'Skipped due to duplicates';
current.work_notes = "Group Approval marked as 'No Longer Required' due to a previous approval on the same record by the same user.";
} else {
gs.log('No group approvals to update.');
}
} else {
gs.log('No approved users found.');
}
})(current, previous);
Please mark my answer as helpful/correct if it resolves your query.
Regards,
Chaitanya