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

Naveen4
Kilo Guru

Hi,

can you help me out with the type of the fileld calendar_duration

 

Thanks,Naveen

Naveen4
Kilo Guru

In the above script the DUR is returning  in seconds.

 

var dc = new DurationCalculator();


var gr= new GlideRecord('incident');
gr.addQuery('active', false);
//gr.addQuery('calendar_duration',''); //commented for testing
gr.query();
gs.info("Returning"+gr.getRowCount());
while (gr.next())
{
var dur=dc.calcScheduleDuration(gr.sys_created_on, gr.sys_updated_on);
gr.calendar_duration=dur;
//gs.print("test");

gs.print(dur);
var agedur = new GlideDuration(dur);
gs.addInfoMessage(agedur.getDisplayValue());
//gs.addInfoMessage(dur);

 

gr.u_test = agedur.getDisplayValue();//test filed type is duration

gr.update();
}

 

This is working fine for me.

 

Thanks,Naveen

verdakosnett
Tera Expert

Does your script allow you to update the  calendar_duration field that is inherited out of task table? Duration(calendar_duration) is of type duration.

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