trigger notification from scheduled job

Arun_Manoj
Mega Sage

Hi,

I create event register,scheduled job and notification for sn_grc_task for planned end date field(end_date)

notification needs to trigger 7 days before and after planned end date, on the planned end date.But notification not triggering.

 

scheduled job:

(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();

 

    var sevenDaysBefore = new GlideDateTime();
    sevenDaysBefore.addDaysUTC(-7);
    var sevenDaysBeforeDate = sevenDaysBefore.getDate();

 

    var sevenDaysAfter = new GlideDateTime();
    sevenDaysAfter.addDaysUTC(7);
    var sevenDaysAfterDate = sevenDaysAfter.getDate();

 

    while (gr.next()) {
        var dueDateTime = gr.getValue('end_date');
        var dueDateOnly = dueDateTime.split(' ')[0];

 

        if (dueDateOnly == sevenDaysBeforeDate || dueDateOnly == currentDate || dueDateOnly == sevenDaysAfterDate) {
            var assignedTo = gr.getValue('assigned_to.email');

 

            // Fire event passing only assignedToSysId
            gs.eventQueue('sn_grc.due.date', gr, assignedTo);
        }
    }

 

})();

1 REPLY 1

G Ponsekar
Mega Guru

Hi @Arun_Manoj ,

 

Can you update your script like below and check once?

(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();

var sevenDaysBefore = new GlideDateTime();
sevenDaysBefore.addDaysUTC(-7);
var sevenDaysBeforeDate = sevenDaysBefore.getDate();

var sevenDaysAfter = new GlideDateTime();
sevenDaysAfter.addDaysUTC(7);
var sevenDaysAfterDate = sevenDaysAfter.getDate();

while (gr.next()) {
var dueDateTime = gr.getValue('end_date');
var dueDate = new GlideDateTime(dueDateTime); // Convert end_date to GlideDateTime object
var dueDateOnly = dueDate.getDate(); //Get date part only.


if (dueDateOnly.equals(sevenDaysBeforeDate) || dueDateOnly.equals(currentDate) || dueDateOnly.equals(sevenDaysAfterDate)) {
var assignedTo = gr.getValue('assigned_to.email');
gs.eventQueue('sn_grc.due.date', gr, assignedTo);
}
}
})();

 

If I could help you with your Query then, please hit the Thumb Icon and mark as Correct !!

 

Thanks, GP