Calendar_duration

verdakosnett
Tera Expert

I wrote this background script but the results don't seem to update calendar_duration field. I find 54 qualified records. Durations are written in logs.

 

Why?

 

var dc = new DurationCalculator(); 
var completedVisitRequests= new GlideRecord('u_visit_request_tasker'); 
completedVisitRequests.addQuery('active', false); 
completedVisitRequests.addQuery('calendar_duration', ''); 
completedVisitRequests.query(); 
gs.info("Returning"+completedVisitRequests.getRowCount()); 
while (completedVisitRequests.next()) 

var dur=dc.calcScheduleDuration(completedVisitRequests.sys_created_on, completedVisitRequests.sys_updated_on); 
completedVisitRequests.calendar_duration=dur; 
completedVisitRequests.update(); 
}

find_real_file.png

15 REPLIES 15

Modified the above query,

not using the scriptinclude here insted using gs.dateDiff

//var dc = new DurationCalculator();
var gr= new GlideRecord('incident');
gr.addQuery('number','INC0010019');
//gr.addQuery('active', false);
//gr.addQuery('calendar_duration','');
gr.query();
gs.info("Returning"+gr.getRowCount());
while (gr.next())
{

//GlideDateTime.subtract(gdt1, gdt2);
gs.print(gr.sys_created_on);
gs.print(gr.sys_updated_on)

var dur=gs.dateDiff(gr.sys_created_on,gr.sys_updated_on);

gs.print(dur);
gs.print(gr.u_time);//before update
gr.u_time = dur; ----------->u_time type duration
gr.update();
gs.print(gr.u_time.getDisplayValue());//after Update

 

}

 Hope this Helps you.

 

Thanks,Naveen

Mike Patel
Tera Sage

Sinec you are on custom table "u_visit_request_tasker" all your field will be like u_calendar_duration and u_active

Mike Patel
Tera Sage

try changing below

var dur=dc.calcScheduleDuration(completedVisitRequests.sys_created_on.getGlideObject(), completedVisitRequests.sys_updated_on.getGlideObject());
completedVisitRequests.calendar_duration=dur;
completedVisitRequests.update();

or

var dur=dc.calcScheduleDuration(completedVisitRequests.sys_created_on.getDisplayValue(), completedVisitRequests.sys_updated_on.getDisplayValue());
completedVisitRequests.calendar_duration=dur;
completedVisitRequests.update();

verdakosnett
Tera Expert

Mike,

Thanks for the update but adding getDisplayValue() did not change the value of variable dur. But calendar_duration still did not get updated...

 

Did you tried below

var dur=dc.calcScheduleDuration(completedVisitRequests.sys_created_on.getGlideObject(), completedVisitRequests.sys_updated_on.getGlideObject());
completedVisitRequests.calendar_duration=dur;
completedVisitRequests.update();