- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-15-2019 10:52 PM
Hi,
I have a requirement to send 3 approval reminders each a week apart and the request should auto cancel after 3 reminders.
Here I have configured using scheduled job.
How can I send the remaining 2 reminders using the same scheduled job script.
var scApp = new GlideRecord('sysapproval_approver');
scApp.addEncodedQuery('state=requested^sysapproval.sys_class_name=sc_req_item^sys_created_onRELATIVELE@dayofweek@ago@7');
scApp.query();
while(scApp.next()){
gs.eventQueue('sc_reminder1',scApp,scApp.approver);
}
Solved! Go to Solution.
- Labels:
-
Scripting and Coding
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-15-2019 11:42 PM
while (scApp.next()){
if (scApp.sys_created_on <= gs.daysAgo(7)){
gs.eventQueue('sc_reminder1',scApp,scApp.approver);
}
else if (scApp.sys_created_on <= gs.daysAgo(14)){
gs.eventQueue('sc_reminder2',scApp,scApp.approver);
}
else if (scApp.sys_created_on <= gs.daysAgo(21)){
gs.eventQueue('sc_reminder3',scApp,scApp.approver);
var item = new GlideRecord('sc_req_item');
item.addQuery('sys_id',scApp.sysapproval);
item.addEncodedQuery('state!=numeric_value_for_cancel');
item.query();
if(item.next()){
item.state = numeric_value_for_cancel;
item.update();
}
//also update the state of approval record
scApp.state = 'cancelled';
scApp.update();
}
}
Regards
Air
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-16-2019 01:04 AM
I am glad it helped!!
Regards
Air
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-16-2019 03:09 AM
Hi Air,
Only the reminder1 triggers notification the rest all not working. Could you please verify my script once.
var scApp = new GlideRecord('sysapproval_approver');
scApp.addEncodedQuery('state=requested^sysapproval.sys_class_name=sc_req_item');
scApp.query();
while (scApp.next()){
if (scApp.sys_created_on <= gs.daysAgo(7)){
gs.eventQueue('sc_reminder1',scApp,scApp.approver);
}
else if (scApp.sys_created_on <= gs.daysAgo(14)){
gs.eventQueue('sc_reminder2',scApp,scApp.approver);
}
else if (scApp.sys_created_on <= gs.daysAgo(21)){
gs.eventQueue('sc_reminder3',scApp,scApp.approver);
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-16-2019 03:20 AM
Can you try logging created date and daysAgo() value and post the output
var scApp = new GlideRecord('sysapproval_approver');
scApp.addEncodedQuery('state=requested^sysapproval.sys_class_name=sc_req_item');
scApp.query();
while (scApp.next()){
if (scApp.sys_created_on <= gs.daysAgo(7)){
gs.log('Created on 1: '+scApp.sys_created_on+' Days Ago 1: '+gs.daysAgo(7));
gs.eventQueue('sc_reminder1',scApp,scApp.approver);
}
else if (scApp.sys_created_on <= gs.daysAgo(14)){
gs.log('Created on 2: '+scApp.sys_created_on+' Days Ago 2: '+gs.daysAgo(14));
gs.eventQueue('sc_reminder2',scApp,scApp.approver);
}
else if (scApp.sys_created_on <= gs.daysAgo(21)){
gs.log('Created on 3: '+scApp.sys_created_on+' Days Ago 3: '+gs.daysAgo(21));
gs.eventQueue('sc_reminder3',scApp,scApp.approver);
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-16-2019 03:29 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-16-2019 03:33 AM
Do you have records in Approvals table matching the 2nd and 3rd conditions?