We're reclaiming inactive PDIs to keep them available for active builders. Learn what's changing, who's affected, and how to protect your work. Read More

trigger notification from scheduled job

armanoj
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
Tera Guru

Hi @armanoj ,

 

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