Business Rule is not working properly

Nani6
Mega Guru

Hi all,

I have a requirement to send survey reminder after 12 hours of creation. So i created an onAfter() BR but that is not working as intended.

Any help would be greatly appreciable.

Thanks in Advance

When : After, Insert

Table : Assessment Instance

logic : 

(function executeRule(current, previous /*null when async*/) {

    var sys_id = current.getValue('sys_id');
    var gdt = new GlideDateTime('current.sys_created_on.getDisplayValue()');
//     gdt.addSeconds(43200);
    gdt.addSeconds(300);  // for testing
    
    var s = new GlideRecord('sysauto_script');
    s.initialize();
    s.name = "Survey Reminder for : "+current.number;
    s.active = true;
    s.run_type = 'once';
    s.run_start = gdt.getValue();
    
     var script = "sendReminder();/n  function sendReminder() {/n var gr = new GlideRecord('asmt_assessment_instance');/n gr.get('"+sys_id+"');/n if (gr.metric_type == '*****sys_id*****' && gr.state == 'ready') {/n gs.eventQueue('assessment.inc.reminder', gr, gr.user);/n } else if (gr.metric_type == '*****sys_id*****' && gr.state == 'ready') {/n gs.eventQueue('assessment.req.reminder', gr, gr.user);/n }/n }";  
    
     s.script = script;
    s.insert();

})(current, previous);

 

5 REPLIES 5

Aman Kumar S
Kilo Patron

I think there is quotes in your GlideDateTime function, remove them as below:

var gdt = new GlideDateTime(current.sys_created_on.getDisplayValue());

Best Regards
Aman Kumar