
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-30-2020 07:33 AM
Hi Everyone,
I have a requirement from client to send 3 days incremental reminder notifications when the record is unattended by the respective users. For accomplishing this I have written a schedule job but unsure How I can have a increment variable which gets factored when the schedule job runs and check if the record was unattended and sends notification on every 3 days, 6 days, 9 days so on until the record is actioned.
Below is the script that I have written to attain it - which is not complete. Any suggestion to meet the above requirement is highly appreciated.
(function(){
var startDate = '';
var incrementaldays = 3;
var counter = 1;
var nDate = '';
var gr = new GlideRecord('table_name');
gr.addQuery('workflow_state','3');
gr.query();
while(gr.next()){
startDate = new GlideDateTime(gr.start_state);
startDate.getDate();
nDate(startDate.addDaysUTC(incrementaldays));
}
if(nDate == new GlideDate()){
gs.eventQueue('3_incremental_sme',gr);
}
})();
(function(){
var startDate = '';
var incrementaldays = 3;
var counter = 1;
var nDate = '';
var gr = new GlideRecord('table_name');
gr.addQuery('workflow_state','6');
gr.query();
while(gr.next()){
startDate = new GlideDateTime(gr.start_state);
startDate.getDate();
nDate(startDate.addDaysUTC(incrementaldays));
}
if(nDate == new GlideDate()){
gs.eventQueue('3_incremental_tl',gr);
}
})();
Thank You for time and effort
Regards,
Imran
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-30-2020 07:44 AM
Hi,
try something like this in your schedule job script
enhance it as per your need
var gr = new GlideRecord('table_name');
gr.addQuery('workflow_state','3');
gr.query();
while(gr.next()){
var termiDate = new GlideDateTime(gr.start_state);
var today = new GlideDateTime();
var dur = new GlideDuration();
dur = GlideDateTime.subtract(today, termiDate);
var dayCt = dur.getNumericValue();
dayCt = (dayCt / (60 * 60 * 24 * 1000));
dayCt = Math.round(dayCt);
gs.info(dayCt, 'dayCT');
if (dayCt == 3 || dayCt == 6 || dayCt == 9) {// if the difference between date is 3, 6 and 9.
if(dayCT == 3){
gs.eventQueue('event name 3 days', gr, );
}
if(dayCT == 6){
gs.eventQueue('event name 6 days', gr, );
}
if(dayCT == 9){
gs.eventQueue('event name 9 days', gr, );
}
}
}
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-30-2020 07:44 AM
Hi,
try something like this in your schedule job script
enhance it as per your need
var gr = new GlideRecord('table_name');
gr.addQuery('workflow_state','3');
gr.query();
while(gr.next()){
var termiDate = new GlideDateTime(gr.start_state);
var today = new GlideDateTime();
var dur = new GlideDuration();
dur = GlideDateTime.subtract(today, termiDate);
var dayCt = dur.getNumericValue();
dayCt = (dayCt / (60 * 60 * 24 * 1000));
dayCt = Math.round(dayCt);
gs.info(dayCt, 'dayCT');
if (dayCt == 3 || dayCt == 6 || dayCt == 9) {// if the difference between date is 3, 6 and 9.
if(dayCT == 3){
gs.eventQueue('event name 3 days', gr, );
}
if(dayCT == 6){
gs.eventQueue('event name 6 days', gr, );
}
if(dayCT == 9){
gs.eventQueue('event name 9 days', gr, );
}
}
}
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎10-31-2020 10:18 PM
Hi Imran,
Hope you are doing good.
Let me know if I have answered your question.
If so, please mark appropriate response as correct & helpful so that this thread can be closed and others can be benefited by this.
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-02-2020 04:32 AM
Hi Ankur,
Just checking if I could have the script a perpetual one with 3 days intervals (without any n'th value)
I have modified the script as below and it worked for me taking clue from your script
reminderSME();
function reminderSME() {
var startDate = '';
var day3 = 3,
day6 = 6,
day9 = 9,
day12 = 12;
var nDate3, nDate6, nDate9, nDate12;
var toDay = new GlideDate();
var gr = new GlideRecord('table_name');
gr.addQuery('workflow_state', '3');
gr.addNotNullQuery('state_start');
gr.query();
while (gr.next()) {
var derivedDate = gr.state_start;
startDate = new GlideDate();
startDate.setValue(derivedDate);
nDate3 = new GlideDate();
nDate3.setValue(startDate);
nDate3.addDaysUTC(day3);
nDate6 = new GlideDate();
nDate6.setValue(startDate);
nDate6.addDaysUTC(day6);
nDate9 = new GlideDate();
nDate9.setValue(startDate);
nDate9.addDaysUTC(day9);
nDate12 = new GlideDate();
nDate12.setValue(startDate);
nDate12.addDaysUTC(day12);
if (nDate3.getValue() == toDay.getValue()) {
gs.eventQueue('3_incremental_sme', gr);
}
if (nDate6.getValue() == toDay.getValue()) {
gs.eventQueue('3_incremental_sme', gr);
}
if (nDate9.getValue() == toDay.getValue()) {
gs.eventQueue('3_incremental_sme', gr);
}
if (nDate12.getValue() == toDay.getValue()) {
gs.eventQueue('3_incremental_sme', gr);
}
}
}
Regards,
Imran
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-02-2020 04:46 AM
Glad to hear
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader