- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-26-2019 08:43 AM
Hi Experts,
I want to generate an event when due date of any request ( sc_request ) is due in next 7 dyas. The type of Due Date is Date not DateTime. I have already tried addDays and it is not working.
Can someone help ?
Thanks!
Solved! Go to Solution.
- Labels:
-
Scripting and Coding

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-27-2019 12:17 AM
Hi,
Try this code and let me know the output.
var gdt = new GlideDateTime();
gdt.addDaysUTC(7);
var gr = new GlideRecord("sc_request");
gr.query();
while(gr.next()) {
gs.print("U date is "+ gr.getValue("u_due_date")+"---"+new GlideDateTime(gr.getValue("u_due_date")).getDate().toString());
if(new GlideDateTime(gr.getValue("u_due_date")).getDate().toString().equals(gdt.getDate().toString())) {
//trigger event here.
gs.print("Reques due"+gr.number+"--"+new GlideDateTime(gr.due_date).getDate());
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-26-2019 10:55 AM
1. Make sure you have an event defined in the Event Registry
2. Make sure you have a query that captures "sc_requests due in the next 7 days"
3. Create a Scheduled Script
4. Use your query as a the basis for a gliderecord lookup.
5. Loop through your query results and fire the gs.eventQueue('event_name', record, parm1,parm2)
Since I hate working with dates in queries, I just went to a list view to create the query I wanted:
Then I copied the query from the list view breadcrumbs.
From there I used THE BEST SERVICENOW DEVELOPER TOOL ON THE PLANET: XPLORE to built a script that I know works.
Two outputs, just as I expected. Time to uncomment the gs.eventQueue line, put in the real event name and whatever I like for parameters, then copy that and toss it into a Scheduled Script.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-27-2019 12:17 AM
Hi,
Try this code and let me know the output.
var gdt = new GlideDateTime();
gdt.addDaysUTC(7);
var gr = new GlideRecord("sc_request");
gr.query();
while(gr.next()) {
gs.print("U date is "+ gr.getValue("u_due_date")+"---"+new GlideDateTime(gr.getValue("u_due_date")).getDate().toString());
if(new GlideDateTime(gr.getValue("u_due_date")).getDate().toString().equals(gdt.getDate().toString())) {
//trigger event here.
gs.print("Reques due"+gr.number+"--"+new GlideDateTime(gr.due_date).getDate());
}
}

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-27-2019 02:18 AM
Hi,
Try this code
var gdt = new GlideDateTime();
gdt.addDaysUTC(7);
var gr = new GlideRecord("sc_request");
gr.addNotNullQuery('u_due_date');
gr.query();
while(gr.next()) {
//gs.print("U date is "+ gr.getValue("u_due_date")+"---"+new GlideDateTime(gr.getValue("u_due_date")).getDate().toString());
if(new GlideDateTime(gr.getValue("u_due_date")).getDate().toString().equals(gdt.getDate().toString())) {
//trigger event here.
gs.print("Reques due"+gr.number+"--"+new GlideDateTime(gr.due_date).getDate());
}
}
Mark the comment as a correct answer and helpful once worked.