- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-31-2020 12:06 AM
Hello Guys,
I need to send a reminder notification on HR case ticket .
For example: If I was assigned a case on Monday 1st June and the State is “Ready “or “Work in Progress” .
I would receive a reminder on the 5th business day after it’s been opened (6th July) and again 2 days after that (Wednesday, 8th July).
I would continue to receive the reminder every 2 business days until the State is changed to “closed complete”, “closed incomplete” or “suspended”.
Someone help me here schedule job script. Please.
Thank you.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-01-2020 12:22 AM
Hi Naveen,
Something like this; updated the script for 5, 7, 9 days
HRreminder();
function HRreminder() {
var task = new GlideRecord('hr_task');
task.addQuery('short_description', 'receive draft');
task.addQuery('active', true);
task.query();
while(task.next()){
var isToday5BusinessDays = checkBusinessDays(task.sys_created_on, 5);
if(isToday5BusinessDays){
gs.eventQueue('event.name', task, gs.getUserID(), gs.username()); // your event name for 5 days reminder email
}
var isToday7BusinessDays = checkBusinessDays(task.sys_created_on, 7);
if(isToday7BusinessDays){
gs.eventQueue('event.name', task, gs.getUserID(), gs.username()); // your event name for 7 days reminder email
}
var isToday9BusinessDays = checkBusinessDays(task.sys_created_on, 9);
if(isToday9BusinessDays){
gs.eventQueue('event.name', task, gs.getUserID(), gs.username()); // your event name for 9 days reminder email
}
}
}
function checkBusinessDays(createdTime, days){
var gdt = new GlideDateTime(createdTime);
var dc = new DurationCalculator();
dc.setSchedule('090eecae0a0a0b260077e1dfa71da828'); // Schedule sys_id I have used 8-5 weekdays excluding holidays
dc.setStartDateTime(gdt);
dc.calcDuration(days*9*3600); // 9 hours is the schedule time from 8 to 5
var edt = new GlideDateTime(dc.getEndDateTime());
var nowTime = new GlideDateTime();
if(nowTime.getNumericValue() == edt.getNumericValue())
return true;
else
return false;
}
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
08-31-2020 10:16 AM
Hi Naveen,
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
08-31-2020 11:47 PM
Don't worry ,
Will mark once its working for me.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-03-2020 10:39 PM
Change in requirement.
This should be achieved from SLA workflow now.
Any suggestions please.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-03-2020 11:04 PM
Hi Naveen,
So your requirement changed.
Can you close this question as answered by marking my response as correct and helpful as the solution/approach has been provided.
It would be nice to open a new thread for the new requirement as it would confuse users later on who read this question.
Have a nice day.
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
09-03-2020 11:30 PM
Hi Ankur,
I marked the answer correct.
I have raised a new question .
Please help me on this requirement to achieve .
Link to new question.