Scheduled job not triggering

Arun_Manoj
Mega Sage

hi,

 

I'm facing an issue with scheduled job, it is not triggering .

 

(function() {

 

    var gr = new GlideRecord('sn_grc_task');

 

    gr.addQuery('active', true);

 

    gr.addQuery('state', 'NOT IN', '3,4,7,9');

 

    gr.addQuery('end_date', '!=', '');

 

    gr.query();

 

    var now = new GlideDateTime();

 

    var currentDate = now.getDate().toString(); // e.g., '2025-08-18'

 

    var sevenDaysBefore = new GlideDate();

 

    sevenDaysBefore.addDays(-7);

 

    var sevenDaysBeforeDate = sevenDaysBefore.toString(); // e.g., '2025-08-11'

 

    var sevenDaysAfter = new GlideDate();

 

    sevenDaysAfter.addDays(7);

 

    var sevenDaysAfterDate = sevenDaysAfter.toString(); // e.g., '2025-08-25'

 

    while (gr.next()) {

 

        var endDateStr = gr.getValue('end_date'); // e.g., '2025-08-18 00:00:00'

 

        var dueDateOnly = endDateStr.split(' ')[0]; // extract '2025-08-18'

 

        if (dueDateOnly == sevenDaysBeforeDate || dueDateOnly == currentDate || dueDateOnly == sevenDaysAfterDate) {

 

            var assignedTo = gr.getValue('assigned_to'); // sys_id of assigned user

 

            gs.eventQueue('sn_grc.due.date.overdue', gr, assignedTo, dueDateOnly);

 

        }

 

    }

 

})();

 

running daily

24 REPLIES 24

all are in same scope

I am looking at functions available in scoped GlideDate API. I can not see addDays. There is 

addDaysLocalTime(Number days) and addDaysUTC(Number days) available in GlideDateTime. Try using available function in the scope instead

https://developer.servicenow.com/dev.do#!/reference/api/yokohama/server/no-namespace/c_GlideDateTime...

Arun_Manoj_0-1756034512477.pngArun_Manoj_1-1756034596456.pngArun_Manoj_2-1756034745730.png

 

(function() {

 

    var gr = new GlideRecord('sn_grc_task');

 

    gr.addQuery('active', true);

 

    gr.addQuery('state', 'NOT IN', '3,4,7,9');

 

    gr.addQuery('end_date', '!=', '');

 

    gr.query();

 

    var now = new GlideDateTime();

 

    var currentDate = now.getDate().toString(); // e.g., '2025-08-18'

 

    var sevenDaysBefore = new GlideDate();

 

    sevenDaysBefore.addDays(-7);

 

    var sevenDaysBeforeDate = sevenDaysBefore.toString(); // e.g., '2025-08-11'

 

    var sevenDaysAfter = new GlideDate();

 

    sevenDaysAfter.addDays(7);

 

    var sevenDaysAfterDate = sevenDaysAfter.toString(); // e.g., '2025-08-25'

 

    while (gr.next()) {

 

        var endDateStr = gr.getValue('end_date'); // e.g., '2025-08-18 00:00:00'

 

        var dueDateOnly = endDateStr.split(' ')[0]; // extract '2025-08-18'

 

        if (dueDateOnly == sevenDaysBeforeDate || dueDateOnly == currentDate || dueDateOnly == sevenDaysAfterDate) {

 

            var assignedTo = gr.getValue('assigned_to'); // sys_id of assigned user

 

            gs.eventQueue('sn_grc.due.date.overdue', gr, assignedTo, dueDateOnly);

 

        }

 

    }

 

})();



The highlighted function addDays that you are accessing using GlideDate() are not available in the Scoped App GlideDate() API. I meant you need to use  GlideDateTime() API in scoped app to add Days, That could be the reason your script is not running from scheduled job. 

Also, when you access your dates in your script use sevenDaysAfter.getValue(). as addDays method does not return the date.

Ct111
Tera Sage

@Arun_Manoj 

 

Try the below script and let me know the outcome:

 

(function() {
var gr = new GlideRecord('sn_grc_task');
gr.addQuery('active', true);
gr.addQuery('state', 'NOT IN', '3,4,7,9');
gr.addQuery('end_date', '!=', '');
gr.query();

// Current date/time
var now = new GlideDateTime();

// 7 days before
var sevenDaysBefore = new GlideDateTime(now);
sevenDaysBefore.addDaysUTC(-7);

// 7 days after
var sevenDaysAfter = new GlideDateTime(now);
sevenDaysAfter.addDaysUTC(7);

while (gr.next()) {
var endDateStr = gr.getValue('end_date'); // '2025-08-18 00:00:00'
var dueDate = new GlideDateTime(endDateStr);

// Check if due date falls in the ±7 day window
if (dueDate >= sevenDaysBefore && dueDate <= sevenDaysAfter) {
var assignedTo = gr.getValue('assigned_to'); // sys_id of assigned user
var dueDateOnly = dueDate.getDate().toString(); // YYYY-MM-DD

gs.eventQueue('sn_grc.due.date.overdue', gr, assignedTo, dueDateOnly);
}
}
})();